* [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; 4+ 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] 4+ 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; 4+ 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] 4+ 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; 4+ 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] 4+ 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; 4+ 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] 4+ messages in thread
end of thread, other threads:[~2024-01-08 12:20 UTC | newest]
Thread overview: 4+ 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox