[edk2-devel] PATCH v1 1/1 MdePkg: Remove Itanium leftover data structure

Paweł Poławski ppolawsk at redhat.com
Tue Jan 17 12:46:22 UTC 2023


Hi all,

Just to let you know: I performed a test with this modified version
of EDK2 and 1500 vCPU set in Qemu config. The test ended up with 
success. I can confirm that space saved by removing Itanium data 
structure allows to allocate more than 1024 vCPU using KVM accelerator.

On thing to note - to test this KVM needs to be modified, the same with 
Qemu. Both - by default has vCPU limits so low that they will be 
bottleneck for vCPU now.

Best regards,
Pawel

W dniu 10.01.2023 o 16:32, Lendacky, Thomas via groups.io pisze:
> + Garret
> 
> On 1/10/23 03:36, Ni, Ray via groups.io wrote:
>>>>>> The challenge is that the non-Itanium CPU archs that may depend on 
>>>>>> the
>>>>>> current binary layout of these structures.  This could be a binary
>>>>>> PEI CPU module, DXE CPU module, SMM CPU module, MM CPU modules,
>>>>>> UEFI App/Shell App that use the PPI or HOB.
>>
>> The CPU health record is stored in PPI first by SecCore, then saved to 
>> HOB by CpuMpPei module.
>> Then CpuDxe gets the record from HOB.
>>
>> If SecCore, CpuMpPei, CpuDxe are built with different structure 
>> definition,
>> the compatibility issue appears.
>>
>> The very well know binary separation module today for x86 is Intel's FSP.
>> I am not sure if today customer might use a pre-built FSP binary which 
>> is built from
>> version #1 of edk2 while the SecCore and CpuDxe in platform binary are 
>> built from
>> a different version of edk2.
>> I don't know how AMD distributes the binary module. + Tom
>>
>> If binary distribution is not adopted yet by industry, I prefer we 
>> just update the
>> structure definition.
>>
>>>>>>
>>>>>> Even if we define a new HOB format, we have to decide when it is
>>>>>> used to support compatibility.  Perhaps always keep the current
>>>>>> logic if < 1024 CPUs.  If number of CPUs >= 1024, then produce
>>>>>> the new format of CPU information and update all consumers to
>>>>>> look for new format and use that with higher priority than the
>>>>>> old format.
>>
>> I don't like this approach because it still breaks the case when CPU 
>> >=1024 and binary
>> distribution is used.
>>
>>>>>>
>>>>>> Another option is to keep the current format and allow multiple
>>>>>> HOBs to be produced if the CPU information does not fit in the
>>>>>> single HOB size limit of 64KB.  Then update all consumers to
>>>>>> look for 1 or more HOBs to collect all the information.  This
>>>>>> approach removes the CPU number limit as long as there is enough
>>>>>> temp RAM for the multiple HOBs.
>>
>> CpuDxe driver is one of the consumers.
>> 1. Old CpuMpPei (in FSP binary) + new CpuDxe (In Platform binary)
>>       This doesn't work because CpuMpPei still cannot produce the 
>> huge-size HOB.
>> 2. New CpuMpPei (in FSP binary) + old CpuDxe (In Platform binary)
>>       This doesn't work because old CpuDxe doesn't look for multiple 
>> HOBs.
>>
>>
>>
>>> -----Original Message-----
>>> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of Pawel 
>>> Polawski
>>> Sent: Tuesday, January 10, 2023 4:19 PM
>>> To: devel at edk2.groups.io; Ni, Ray <ray.ni at intel.com>; Kinney, Michael 
>>> D <michael.d.kinney at intel.com>; Zimmer, Vincent
>>> <vincent.zimmer at intel.com>
>>> Cc: Gao, Liming <gaoliming at byosoft.com.cn>; Liu, Zhiguang 
>>> <zhiguang.liu at intel.com>
>>> Subject: Re: [edk2-devel] PATCH v1 1/1 MdePkg: Remove Itanium 
>>> leftover data structure
>>>
>>> Hi everyone,
>>>
>>> If there is a chance you have some evaluation about this problem 
>>> already?
>>>
>>> Best regards,
>>> Pawel
>>>
>>
>>
>>
>>
>>
>>
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#98682): https://edk2.groups.io/g/devel/message/98682
Mute This Topic: https://groups.io/mt/95384808/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list