Hi Laszlo, > > > > The patch looks OK to me, but: > > > > - I would like to test it with CPU hotplug (later, likely under v2), and > >
Sure, I can wait the update from you. > > - I think this should be two patches. > > > > First, the SmmAddProcessor() function should be extended just to > > complete commit 1fadd18d. (BTW I highly appreciate the reference to > > commit 1fadd18d; otherwise I couldn't find where the *coldplugged* CPUs' > > locations were retrieved!) > > > > Then the Package calculations should be updated separately -- mostly > > because I would appreciate a concrete description in that separate > > commit message why the difference matters. Clearly you have a use case > > where the v1 and v2 package numbers differ, and recording that in the > > commit history would be great. Sure, let me explain more, there are 2 reason I did this change: 1. the processor package ID retrieved from CPUID 0x0Bh may be not correct/accurate if CPU has the module & die info, it depends on the CPUID implementation. See SDM statement: EAX Bits 04 - 00: Number of bits to shift right on x2APIC ID to get a unique topology ID of the *next level type* ECX Bits 15 - 08: *Level type* Level type field has the following encoding: 0: Invalid. 1: SMT. 2: Core. 3-255: Reserved So, if level type returned from ECX Bits 15 - 08 is 2 (Core), then what's the next level mean? Module or Die or Package? SDM doesn't has explanation for the next level of Core. If so, the value will be decided by implementation. The value can be package info for compatibility consideration, but it's not standardized. That's the reason we suggest use the leaf 1Fh. 2. And according SDM declaration, "CPUID leaf 1FH is a preferred superset to leaf 0BH. Intel recommends first checking for the existence of CPUID leaf 1FH before using leaf 0BH." This is perfect match the existing GetProcessorLocation2ByApicId() implementation. That's the main reasons we switch to EFI_CPU_PHYSICAL_LOCATION2. > > Side note, just for completeness: the x2apic lib instance performs the > v2 feature detection correctly since Gerd's commit 170d4ce8e90a > ("UefiCpuPkg/BaseXApicX2ApicLib: fix CPUID_V2_EXTENDED_TOPOLOGY > detection", 2023-10-25). Furthermore, OVMF uses the x2apic lib instance > since commit decb365b0016 ("OvmfPkg: select LocalApicLib instance with > x2apic support", 2015-11-30). Therefore, this patch looks fine for OVMF. > > However, for platforms that use the old xapic lib instance, there could > be problems, as the v2 feature detection in *that* instance is not fixed > -- it does not check EBX. > Great catch this! I can create the patch 3 for this porting to old xapic lib instance if you no objection. Thanks, Jiaxin -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110893): https://edk2.groups.io/g/devel/message/110893 Mute This Topic: https://groups.io/mt/102436095/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-