On 14/06/2018 07:39, Ni, Ruiyu wrote: > > > Thanks/Ray > >> -----Original Message----- >> From: edk2-devel <edk2-devel-boun...@lists.01.org> On Behalf Of Paolo >> Bonzini >> Sent: Thursday, June 14, 2018 4:52 AM >> To: Laszlo Ersek <ler...@redhat.com>; Leo Duran <leo.du...@amd.com>; >> edk2-devel@lists.01.org >> Cc: Justen, Jordan L <jordan.l.jus...@intel.com>; Brijesh Singh >> <brijesh.si...@amd.com>; Jeff Fan <jeff....@intel.com>; Gao, Liming >> <liming....@intel.com> >> Subject: Re: [edk2] [PATCH] UefiCpuPkg/LocalApicLib: Exclude second >> SendIpi sequence on AMD processors. >> >> On 13/06/2018 22:49, Laszlo Ersek wrote: >>> Hello Leo, >>> >>> On 06/13/18 22:11, Leo Duran wrote: >>>> On AMD processors the second SendIpi in the SendInitSipiSipi and >>>> SendInitSipiSipiAllExcludingSelf routines is not required, and may >>>> cause undesired side-effects during MP initialization. >>>> >>>> This patch leverages the StandardSignatureIsAuthenticAMD check to >>>> exclude the second SendIpi and its associated MicroSecondDelay (200). >>> >>> QEMU and KVM emulate some AMD processors too; of particular interest >>> is the recent EPYC addition, I believe (for SME/SEV, minimally). >>> >>> Did you check whether the StandardSignatureIsAuthenticAMD() check >>> applies to those QEMU VCPU models, and if so, whether omitting the >>> second Startup IPI interferes with *V*CPU startup in OVMF guests? (In >>> multiprocessing modules, such as CpuMpPei, CpuDxe, and >>> PiSmmCpuDxeSmm.) >>> >>> Adding Brijesh, Paolo and Igor. >> >> Actually I would be surprised if any recent processor needs the >> INIT-SIPI-SIPI >> (though I'm not sure what undesired side effects it might trigger). > > Why the recent processors don't need INIT-SIPI-SIPI? > I thought it is the only way to wake up processors when it's halted (HLT).
INIT-SIPI should be enough. The second SIPI is just in case the first one was missed. Paolo _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel