public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Non-zero start/stop values in XhcGetElapsedTicks
@ 2024-02-06 15:29 Henz, Patrick
  2024-02-07 21:00 ` Laszlo Ersek
  0 siblings, 1 reply; 4+ messages in thread
From: Henz, Patrick @ 2024-02-06 15:29 UTC (permalink / raw)
  To: devel; +Cc: hao.a.wu, ray.ni, Patrick Henz

From: Patrick Henz <patrick.henz@hpe.com>

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4578

The implementation of XhcGetElapsedTicks did not account for
non-zero start and stop values for the performance counter
timer, potentially resulting in an incorrect elapsed tick
count getting returned to the caller. Account for non-zero
start and stop values when calculating the elapsed tick
count.

Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Signed-off-by: Patrick Henz <patrick.henz@hpe.com>
Reviewed-by:
---
 MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
index f4e61d223c..ff641d0130 100644
--- a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
+++ b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
@@ -2389,7 +2389,7 @@ XhcGetElapsedTicks (
     // Counter counts upwards, check for an overflow condition
     //
     if (*PreviousTick > CurrentTick) {
-      Delta = (mXhciPerformanceCounterEndValue - *PreviousTick) + CurrentTick;
+      Delta = (CurrentTick - mXhciPerformanceCounterStartValue) + (mXhciPerformanceCounterEndValue - *PreviousTick);
     } else {
       Delta = CurrentTick - *PreviousTick;
     }
@@ -2398,7 +2398,7 @@ XhcGetElapsedTicks (
     // Counter counts downwards, check for an underflow condition
     //
     if (*PreviousTick < CurrentTick) {
-      Delta = (mXhciPerformanceCounterStartValue - CurrentTick) + *PreviousTick;
+      Delta = (mXhciPerformanceCounterStartValue - CurrentTick) + (*PreviousTick - mXhciPerformanceCounterEndValue);
     } else {
       Delta = *PreviousTick - CurrentTick;
     }
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Non-zero start/stop values in XhcGetElapsedTicks
  2024-02-06 15:29 [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Non-zero start/stop values in XhcGetElapsedTicks Henz, Patrick
@ 2024-02-07 21:00 ` Laszlo Ersek
  2024-02-07 21:07   ` Henz, Patrick
  0 siblings, 1 reply; 4+ messages in thread
From: Laszlo Ersek @ 2024-02-07 21:00 UTC (permalink / raw)
  To: devel, patrick.henz
  Cc: hao.a.wu, ray.ni, Michael Kinney, Liming Gao (Byosoft address)

Hi Patrick,

(CC Liming, Mike)

On 2/6/24 16:29, Henz, Patrick wrote:
> From: Patrick Henz <patrick.henz@hpe.com>
> 
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4578
> 
> The implementation of XhcGetElapsedTicks did not account for
> non-zero start and stop values for the performance counter
> timer, potentially resulting in an incorrect elapsed tick
> count getting returned to the caller. Account for non-zero
> start and stop values when calculating the elapsed tick
> count.
> 
> Cc: Hao A Wu <hao.a.wu@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Signed-off-by: Patrick Henz <patrick.henz@hpe.com>
> Reviewed-by:
> ---
>  MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

How does this patch differ from your v1, from October last year:

https://edk2.groups.io/g/devel/message/110434
message-id:
<c3038878c4d30c54e60cce7192cf1aa60c30ad2e.1698770394.git.patrick.henz@hpe.com>

That version was:

Acked-by: Hao A Wu <hao.a.wu@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>

If this patch is the same (effectively a repost), then I have two comments:

- the Reviewed-by line on v2 is incomplete, plus the patch is missing
Hao's Acked-by

- I'm really sorry that your v1 patch didn't get merged. I think we
should just apply v1, with the feedback tags given back then. IMO the
patch certainly qualifies for the feature freeze (even the hard one),
because it is a bugfix.

At this development phase, I can't merge your v1, but Liming or Mike
could. Mike, Liming: can you git-am Patrick's v1, and pick up the
feedback tags, for merging?

Thanks!
Laszlo


> 
> diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
> index f4e61d223c..ff641d0130 100644
> --- a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
> +++ b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
> @@ -2389,7 +2389,7 @@ XhcGetElapsedTicks (
>      // Counter counts upwards, check for an overflow condition
>      //
>      if (*PreviousTick > CurrentTick) {
> -      Delta = (mXhciPerformanceCounterEndValue - *PreviousTick) + CurrentTick;
> +      Delta = (CurrentTick - mXhciPerformanceCounterStartValue) + (mXhciPerformanceCounterEndValue - *PreviousTick);
>      } else {
>        Delta = CurrentTick - *PreviousTick;
>      }
> @@ -2398,7 +2398,7 @@ XhcGetElapsedTicks (
>      // Counter counts downwards, check for an underflow condition
>      //
>      if (*PreviousTick < CurrentTick) {
> -      Delta = (mXhciPerformanceCounterStartValue - CurrentTick) + *PreviousTick;
> +      Delta = (mXhciPerformanceCounterStartValue - CurrentTick) + (*PreviousTick - mXhciPerformanceCounterEndValue);
>      } else {
>        Delta = *PreviousTick - CurrentTick;
>      }



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115253): https://edk2.groups.io/g/devel/message/115253
Mute This Topic: https://groups.io/mt/104199605/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Non-zero start/stop values in XhcGetElapsedTicks
  2024-02-07 21:00 ` Laszlo Ersek
@ 2024-02-07 21:07   ` Henz, Patrick
  2024-02-09  9:42     ` Laszlo Ersek
  0 siblings, 1 reply; 4+ messages in thread
From: Henz, Patrick @ 2024-02-07 21:07 UTC (permalink / raw)
  To: Laszlo Ersek, devel@edk2.groups.io
  Cc: hao.a.wu@intel.com, ray.ni@intel.com, Michael Kinney,
	Liming Gao (Byosoft address)

Hi Laszlo,

> How does this patch differ from your v1, from October last year:

There's a conflict with my previous changes and those found in commit ff4c49a5ee38d613384fb2e318d891a800d32999, some global variables in Xhci.c were renamed, adding an Xhci prefix. My V2 patch is the same as V1, just with the updated globals.

> I'm really sorry that your v1 patch didn't get merged.

No worries! 

Thanks,
Patrick Henz

-----Original Message-----
From: Laszlo Ersek <lersek@redhat.com> 
Sent: Wednesday, February 7, 2024 3:00 PM
To: devel@edk2.groups.io; Henz, Patrick (IMC Firmware Engineering) <patrick.henz@hpe.com>
Cc: hao.a.wu@intel.com; ray.ni@intel.com; Michael Kinney <michael.d.kinney@intel.com>; Liming Gao (Byosoft address) <gaoliming@byosoft.com.cn>
Subject: Re: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Non-zero start/stop values in XhcGetElapsedTicks

Hi Patrick,

(CC Liming, Mike)

On 2/6/24 16:29, Henz, Patrick wrote:
> From: Patrick Henz <patrick.henz@hpe.com>
> 
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4578
> 
> The implementation of XhcGetElapsedTicks did not account for non-zero 
> start and stop values for the performance counter timer, potentially 
> resulting in an incorrect elapsed tick count getting returned to the 
> caller. Account for non-zero start and stop values when calculating 
> the elapsed tick count.
> 
> Cc: Hao A Wu <hao.a.wu@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Signed-off-by: Patrick Henz <patrick.henz@hpe.com>
> Reviewed-by:
> ---
>  MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

How does this patch differ from your v1, from October last year:

https://edk2.groups.io/g/devel/message/110434
message-id:
<c3038878c4d30c54e60cce7192cf1aa60c30ad2e.1698770394.git.patrick.henz@hpe.com>

That version was:

Acked-by: Hao A Wu <hao.a.wu@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>

If this patch is the same (effectively a repost), then I have two comments:

- the Reviewed-by line on v2 is incomplete, plus the patch is missing Hao's Acked-by

- I'm really sorry that your v1 patch didn't get merged. I think we should just apply v1, with the feedback tags given back then. IMO the patch certainly qualifies for the feature freeze (even the hard one), because it is a bugfix.

At this development phase, I can't merge your v1, but Liming or Mike could. Mike, Liming: can you git-am Patrick's v1, and pick up the feedback tags, for merging?

Thanks!
Laszlo


> 
> diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c 
> b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
> index f4e61d223c..ff641d0130 100644
> --- a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
> +++ b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
> @@ -2389,7 +2389,7 @@ XhcGetElapsedTicks (
>      // Counter counts upwards, check for an overflow condition
>      //
>      if (*PreviousTick > CurrentTick) {
> -      Delta = (mXhciPerformanceCounterEndValue - *PreviousTick) + CurrentTick;
> +      Delta = (CurrentTick - mXhciPerformanceCounterStartValue) + 
> + (mXhciPerformanceCounterEndValue - *PreviousTick);
>      } else {
>        Delta = CurrentTick - *PreviousTick;
>      }
> @@ -2398,7 +2398,7 @@ XhcGetElapsedTicks (
>      // Counter counts downwards, check for an underflow condition
>      //
>      if (*PreviousTick < CurrentTick) {
> -      Delta = (mXhciPerformanceCounterStartValue - CurrentTick) + *PreviousTick;
> +      Delta = (mXhciPerformanceCounterStartValue - CurrentTick) + 
> + (*PreviousTick - mXhciPerformanceCounterEndValue);
>      } else {
>        Delta = *PreviousTick - CurrentTick;
>      }



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115256): https://edk2.groups.io/g/devel/message/115256
Mute This Topic: https://groups.io/mt/104199605/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Non-zero start/stop values in XhcGetElapsedTicks
  2024-02-07 21:07   ` Henz, Patrick
@ 2024-02-09  9:42     ` Laszlo Ersek
  0 siblings, 0 replies; 4+ messages in thread
From: Laszlo Ersek @ 2024-02-09  9:42 UTC (permalink / raw)
  To: Henz, Patrick (IMC Firmware Engineering), devel@edk2.groups.io
  Cc: hao.a.wu@intel.com, ray.ni@intel.com, Michael Kinney,
	Liming Gao (Byosoft address)

On 2/7/24 22:07, Henz, Patrick (IMC Firmware Engineering) wrote:
> Hi Laszlo,
> 
>> How does this patch differ from your v1, from October last year:
> 
> There's a conflict with my previous changes and those found in commit ff4c49a5ee38d613384fb2e318d891a800d32999, some global variables in Xhci.c were renamed, adding an Xhci prefix. My V2 patch is the same as V1, just with the updated globals.
> 
>> I'm really sorry that your v1 patch didn't get merged.
> 
> No worries! 

OK, I guess the feedback tags given for v1 should carry over such a
context change / rename. Do you want to post a v3 with the v1 feedback
tags correctly picked up? (This is a question I could be asking for
Liming's or Ray's sake, because I believe they're supposed to merge the
patch.)

Thanks
Laszlo

> 
> Thanks,
> Patrick Henz
> 
> -----Original Message-----
> From: Laszlo Ersek <lersek@redhat.com> 
> Sent: Wednesday, February 7, 2024 3:00 PM
> To: devel@edk2.groups.io; Henz, Patrick (IMC Firmware Engineering) <patrick.henz@hpe.com>
> Cc: hao.a.wu@intel.com; ray.ni@intel.com; Michael Kinney <michael.d.kinney@intel.com>; Liming Gao (Byosoft address) <gaoliming@byosoft.com.cn>
> Subject: Re: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Non-zero start/stop values in XhcGetElapsedTicks
> 
> Hi Patrick,
> 
> (CC Liming, Mike)
> 
> On 2/6/24 16:29, Henz, Patrick wrote:
>> From: Patrick Henz <patrick.henz@hpe.com>
>>
>> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4578
>>
>> The implementation of XhcGetElapsedTicks did not account for non-zero 
>> start and stop values for the performance counter timer, potentially 
>> resulting in an incorrect elapsed tick count getting returned to the 
>> caller. Account for non-zero start and stop values when calculating 
>> the elapsed tick count.
>>
>> Cc: Hao A Wu <hao.a.wu@intel.com>
>> Cc: Ray Ni <ray.ni@intel.com>
>> Signed-off-by: Patrick Henz <patrick.henz@hpe.com>
>> Reviewed-by:
>> ---
>>  MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> How does this patch differ from your v1, from October last year:
> 
> https://edk2.groups.io/g/devel/message/110434
> message-id:
> <c3038878c4d30c54e60cce7192cf1aa60c30ad2e.1698770394.git.patrick.henz@hpe.com>
> 
> That version was:
> 
> Acked-by: Hao A Wu <hao.a.wu@intel.com>
> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
> 
> If this patch is the same (effectively a repost), then I have two comments:
> 
> - the Reviewed-by line on v2 is incomplete, plus the patch is missing Hao's Acked-by
> 
> - I'm really sorry that your v1 patch didn't get merged. I think we should just apply v1, with the feedback tags given back then. IMO the patch certainly qualifies for the feature freeze (even the hard one), because it is a bugfix.
> 
> At this development phase, I can't merge your v1, but Liming or Mike could. Mike, Liming: can you git-am Patrick's v1, and pick up the feedback tags, for merging?
> 
> Thanks!
> Laszlo
> 
> 
>>
>> diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c 
>> b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
>> index f4e61d223c..ff641d0130 100644
>> --- a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
>> +++ b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c
>> @@ -2389,7 +2389,7 @@ XhcGetElapsedTicks (
>>      // Counter counts upwards, check for an overflow condition
>>      //
>>      if (*PreviousTick > CurrentTick) {
>> -      Delta = (mXhciPerformanceCounterEndValue - *PreviousTick) + CurrentTick;
>> +      Delta = (CurrentTick - mXhciPerformanceCounterStartValue) + 
>> + (mXhciPerformanceCounterEndValue - *PreviousTick);
>>      } else {
>>        Delta = CurrentTick - *PreviousTick;
>>      }
>> @@ -2398,7 +2398,7 @@ XhcGetElapsedTicks (
>>      // Counter counts downwards, check for an underflow condition
>>      //
>>      if (*PreviousTick < CurrentTick) {
>> -      Delta = (mXhciPerformanceCounterStartValue - CurrentTick) + *PreviousTick;
>> +      Delta = (mXhciPerformanceCounterStartValue - CurrentTick) + 
>> + (*PreviousTick - mXhciPerformanceCounterEndValue);
>>      } else {
>>        Delta = *PreviousTick - CurrentTick;
>>      }
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115292): https://edk2.groups.io/g/devel/message/115292
Mute This Topic: https://groups.io/mt/104199605/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-02-09  9:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-06 15:29 [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Non-zero start/stop values in XhcGetElapsedTicks Henz, Patrick
2024-02-07 21:00 ` Laszlo Ersek
2024-02-07 21:07   ` Henz, Patrick
2024-02-09  9:42     ` Laszlo Ersek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox