public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] [Patch V2 0/2] Change the usage of input parameter ProcessorNumber in MpInitLibGetProcessorInfo() of MpInitLibUp
@ 2024-01-08  3:55 duntan
  2024-01-08  3:55 ` [edk2-devel] [Patch V2 1/2] UefiCpuPkg: set EXTENDED_PROCESSOR_INFORMATION to 0 duntan
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: duntan @ 2024-01-08  3:55 UTC (permalink / raw)
  To: devel

In the V2 patch set:
In "set EXTENDED_PROCESSOR_INFORMATION to 0", set EXTENDED_PROCESSOR_INFORMATION to 0 in API MpInitLibGetProcessorInfo() of MpInitLibUp. This commit use ZeroMem() to set all fileds in output EFI_PROCESSOR_INFORMATION to 0 before StatusFlag field is reassigned.

In "Check lower 24 bits of ProcessorNumber", use BIT24 instead of CPU_V2_EXTENDED_TOPOLOGY to clearly tell that processor number only occupies the lower 24 bits.

Dun Tan (2):
  UefiCpuPkg: set EXTENDED_PROCESSOR_INFORMATION to 0
  UefiCpuPkg: Check lower 24 bits of ProcessorNumber

 UefiCpuPkg/Include/Library/MpInitLib.h       |  2 ++
 UefiCpuPkg/Library/MpInitLib/MpLib.c         |  2 ++
 UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c | 19 +++++++++++--------
 3 files changed, 15 insertions(+), 8 deletions(-)

-- 
2.31.1.windows.1



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



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

* [edk2-devel] [Patch V2 1/2] UefiCpuPkg: set EXTENDED_PROCESSOR_INFORMATION to 0
  2024-01-08  3:55 [edk2-devel] [Patch V2 0/2] Change the usage of input parameter ProcessorNumber in MpInitLibGetProcessorInfo() of MpInitLibUp duntan
@ 2024-01-08  3:55 ` duntan
  2024-01-08  3:55 ` [edk2-devel] [Patch V2 2/2] UefiCpuPkg: Check lower 24 bits of ProcessorNumber duntan
  2024-01-08 12:20 ` [edk2-devel] [Patch V2 0/2] Change the usage of input parameter ProcessorNumber in MpInitLibGetProcessorInfo() of MpInitLibUp Laszlo Ersek
  2 siblings, 0 replies; 5+ messages in thread
From: duntan @ 2024-01-08  3:55 UTC (permalink / raw)
  To: devel; +Cc: Ray Ni, Laszlo Ersek, Rahul Kumar, Gerd Hoffmann, Min Xu

Set EXTENDED_PROCESSOR_INFORMATION to 0 in API
MpInitLibGetProcessorInfo() of MpInitLibUp. This
commit use ZeroMem() to set all fileds in output
EFI_PROCESSOR_INFORMATION to 0 before StatusFlag
field is reassigned.

Previously EXTENDED_PROCESSOR_INFORMATION in the API
MpInitLibGetProcessorInfo() of MpInitLibUp is ignored.
In PEI/DXE MpInitLib, EXTENDED_PROCESSOR_INFORMATION
will be retrived when BIT24 of input ProcessorNumber
is set. This commit can avoid garbage in the output
structure in MpInitLibGetProcessorInfo() of MpInitLibUp.

Signed-off-by: Dun Tan <dun.tan@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Min Xu <min.m.xu@intel.com>
---
 UefiCpuPkg/Include/Library/MpInitLib.h       |  2 ++
 UefiCpuPkg/Library/MpInitLib/MpLib.c         |  2 ++
 UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c | 14 +++++++-------
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/UefiCpuPkg/Include/Library/MpInitLib.h b/UefiCpuPkg/Include/Library/MpInitLib.h
index 1853c46415..842c6f7ff9 100644
--- a/UefiCpuPkg/Include/Library/MpInitLib.h
+++ b/UefiCpuPkg/Include/Library/MpInitLib.h
@@ -63,6 +63,8 @@ MpInitLibGetNumberOfProcessors (
   instant this call is made. This service may only be called from the BSP.
 
   @param[in]  ProcessorNumber       The handle number of processor.
+                                    Lower 24 bits contains the actual processor number.
+                                    BIT24 indicates if the EXTENDED_PROCESSOR_INFORMATION will be retrived.
   @param[out] ProcessorInfoBuffer   A pointer to the buffer where information for
                                     the requested processor is deposited.
   @param[out] HealthData            Return processor health data.
diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c
index a359906923..cdfb570e61 100644
--- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
+++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
@@ -2333,6 +2333,8 @@ MpInitLibInitialize (
   instant this call is made. This service may only be called from the BSP.
 
   @param[in]  ProcessorNumber       The handle number of processor.
+                                    Lower 24 bits contains the actual processor number.
+                                    BIT24 indicates if the EXTENDED_PROCESSOR_INFORMATION will be retrived.
   @param[out] ProcessorInfoBuffer   A pointer to the buffer where information for
                                     the requested processor is deposited.
   @param[out]  HealthData            Return processor health data.
diff --git a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c
index 86f9fbf903..ea9a45c9c6 100644
--- a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c
+++ b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c
@@ -77,6 +77,8 @@ MpInitLibGetNumberOfProcessors (
   instant this call is made. This service may only be called from the BSP.
 
   @param[in]  ProcessorNumber       The handle number of processor.
+                                    Lower 24 bits contains the actual processor number.
+                                    BIT24 indicates if the EXTENDED_PROCESSOR_INFORMATION will be retrived.
   @param[out] ProcessorInfoBuffer   A pointer to the buffer where information for
                                     the requested processor is deposited.
   @param[out] HealthData            Return processor health data.
@@ -108,13 +110,11 @@ MpInitLibGetProcessorInfo (
     return EFI_NOT_FOUND;
   }
 
-  ProcessorInfoBuffer->ProcessorId = 0;
-  ProcessorInfoBuffer->StatusFlag  = PROCESSOR_AS_BSP_BIT  |
-                                     PROCESSOR_ENABLED_BIT |
-                                     PROCESSOR_HEALTH_STATUS_BIT;
-  ProcessorInfoBuffer->Location.Package = 0;
-  ProcessorInfoBuffer->Location.Core    = 0;
-  ProcessorInfoBuffer->Location.Thread  = 0;
+  ZeroMem (ProcessorInfoBuffer, sizeof (*ProcessorInfoBuffer));
+  ProcessorInfoBuffer->StatusFlag = PROCESSOR_AS_BSP_BIT  |
+                                    PROCESSOR_ENABLED_BIT |
+                                    PROCESSOR_HEALTH_STATUS_BIT;
+
   if (HealthData != NULL) {
     GuidHob = GetFirstGuidHob (&gEfiSecPlatformInformationPpiGuid);
     if (GuidHob != NULL) {
-- 
2.31.1.windows.1



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



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

* [edk2-devel] [Patch V2 2/2] UefiCpuPkg: Check lower 24 bits of ProcessorNumber
  2024-01-08  3:55 [edk2-devel] [Patch V2 0/2] Change the usage of input parameter ProcessorNumber in MpInitLibGetProcessorInfo() of MpInitLibUp duntan
  2024-01-08  3:55 ` [edk2-devel] [Patch V2 1/2] UefiCpuPkg: set EXTENDED_PROCESSOR_INFORMATION to 0 duntan
@ 2024-01-08  3:55 ` duntan
  2024-01-08 12:20 ` [edk2-devel] [Patch V2 0/2] Change the usage of input parameter ProcessorNumber in MpInitLibGetProcessorInfo() of MpInitLibUp Laszlo Ersek
  2 siblings, 0 replies; 5+ messages in thread
From: duntan @ 2024-01-08  3:55 UTC (permalink / raw)
  To: devel; +Cc: Ray Ni, Laszlo Ersek, Rahul Kumar, Gerd Hoffmann, Min Xu

Check lower 24 bits of ProcessorNumber instead of
the value of ProcessorNumber in the API
MpInitLibGetProcessorInfo() of MpInitLibUp instance.
Lower 24 bits of ProcessorNumber contains the actual
processor number.
The BIT24 of input ProcessorNumber might be set to
indicate if the EXTENDED_PROCESSOR_INFORMATION will
be retrived.

Signed-off-by: Dun Tan <dun.tan@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Min Xu <min.m.xu@intel.com>
---
 UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c
index ea9a45c9c6..30bdd8cfdd 100644
--- a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c
+++ b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c
@@ -106,7 +106,10 @@ MpInitLibGetProcessorInfo (
     return EFI_INVALID_PARAMETER;
   }
 
-  if (ProcessorNumber != 0) {
+  //
+  // Lower 24 bits contains the actual processor number.
+  //
+  if ((ProcessorNumber & (BIT24 - 1)) != 0) {
     return EFI_NOT_FOUND;
   }
 
-- 
2.31.1.windows.1



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



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

* Re: [edk2-devel] [Patch V2 0/2] Change the usage of input parameter ProcessorNumber in MpInitLibGetProcessorInfo() of MpInitLibUp
       [not found] <17A84312702919FE.1387@groups.io>
@ 2024-01-08  5:16 ` duntan
  0 siblings, 0 replies; 5+ messages in thread
From: duntan @ 2024-01-08  5:16 UTC (permalink / raw)
  To: devel@edk2.groups.io, Tan, Dun
  Cc: Ni, Ray, Laszlo Ersek, Kumar, Rahul R, Gerd Hoffmann, Xu, Min M

Please ignore the V2 patch set and help review the following V3 patch set. 
" [Patch V3 2/2] UefiCpuPkg: Check lower 24 bits of ProcessorNumber"
" [Patch V3 1/2] UefiCpuPkg: set EXTENDED_PROCESSOR_INFORMATION to 0"

There was build error in the v2 patch series and  the error was fixed in V3 patch set.

Thanks,
Dun
-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of duntan
Sent: Monday, January 8, 2024 11:56 AM
To: devel@edk2.groups.io
Subject: [edk2-devel] [Patch V2 0/2] Change the usage of input parameter ProcessorNumber in MpInitLibGetProcessorInfo() of MpInitLibUp

In the V2 patch set:
In "set EXTENDED_PROCESSOR_INFORMATION to 0", set EXTENDED_PROCESSOR_INFORMATION to 0 in API MpInitLibGetProcessorInfo() of MpInitLibUp. This commit use ZeroMem() to set all fileds in output EFI_PROCESSOR_INFORMATION to 0 before StatusFlag field is reassigned.

In "Check lower 24 bits of ProcessorNumber", use BIT24 instead of CPU_V2_EXTENDED_TOPOLOGY to clearly tell that processor number only occupies the lower 24 bits.

Dun Tan (2):
  UefiCpuPkg: set EXTENDED_PROCESSOR_INFORMATION to 0
  UefiCpuPkg: Check lower 24 bits of ProcessorNumber

 UefiCpuPkg/Include/Library/MpInitLib.h       |  2 ++
 UefiCpuPkg/Library/MpInitLib/MpLib.c         |  2 ++
 UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c | 19 +++++++++++--------
 3 files changed, 15 insertions(+), 8 deletions(-)

-- 
2.31.1.windows.1








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



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

* Re: [edk2-devel] [Patch V2 0/2] Change the usage of input parameter ProcessorNumber in MpInitLibGetProcessorInfo() of MpInitLibUp
  2024-01-08  3:55 [edk2-devel] [Patch V2 0/2] Change the usage of input parameter ProcessorNumber in MpInitLibGetProcessorInfo() of MpInitLibUp duntan
  2024-01-08  3:55 ` [edk2-devel] [Patch V2 1/2] UefiCpuPkg: set EXTENDED_PROCESSOR_INFORMATION to 0 duntan
  2024-01-08  3:55 ` [edk2-devel] [Patch V2 2/2] UefiCpuPkg: Check lower 24 bits of ProcessorNumber duntan
@ 2024-01-08 12:20 ` Laszlo Ersek
  2 siblings, 0 replies; 5+ messages in thread
From: Laszlo Ersek @ 2024-01-08 12:20 UTC (permalink / raw)
  To: devel, dun.tan

On 1/8/24 04:55, duntan wrote:
> In the V2 patch set:
> In "set EXTENDED_PROCESSOR_INFORMATION to 0", set EXTENDED_PROCESSOR_INFORMATION to 0 in API MpInitLibGetProcessorInfo() of MpInitLibUp. This commit use ZeroMem() to set all fileds in output EFI_PROCESSOR_INFORMATION to 0 before StatusFlag field is reassigned.
> 
> In "Check lower 24 bits of ProcessorNumber", use BIT24 instead of CPU_V2_EXTENDED_TOPOLOGY to clearly tell that processor number only occupies the lower 24 bits.
> 
> Dun Tan (2):
>   UefiCpuPkg: set EXTENDED_PROCESSOR_INFORMATION to 0
>   UefiCpuPkg: Check lower 24 bits of ProcessorNumber
> 
>  UefiCpuPkg/Include/Library/MpInitLib.h       |  2 ++
>  UefiCpuPkg/Library/MpInitLib/MpLib.c         |  2 ++
>  UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c | 19 +++++++++++--------
>  3 files changed, 15 insertions(+), 8 deletions(-)
> 

Reviewed-by: Laszlo Ersek <lersek@redhat.com>



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



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

end of thread, other threads:[~2024-01-08 12:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-08  3:55 [edk2-devel] [Patch V2 0/2] Change the usage of input parameter ProcessorNumber in MpInitLibGetProcessorInfo() of MpInitLibUp duntan
2024-01-08  3:55 ` [edk2-devel] [Patch V2 1/2] UefiCpuPkg: set EXTENDED_PROCESSOR_INFORMATION to 0 duntan
2024-01-08  3:55 ` [edk2-devel] [Patch V2 2/2] UefiCpuPkg: Check lower 24 bits of ProcessorNumber duntan
2024-01-08 12:20 ` [edk2-devel] [Patch V2 0/2] Change the usage of input parameter ProcessorNumber in MpInitLibGetProcessorInfo() of MpInitLibUp Laszlo Ersek
     [not found] <17A84312702919FE.1387@groups.io>
2024-01-08  5:16 ` duntan

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