On 2014-11-06 17:23:01, Fan, Jeff wrote: > Chen, > > Thanks your contribution. I will check-in your patch if there is no > further comments from other guys. > > Reviewed-by: Jeff Fan <jeff....@intel.com>
Chen, I committed your series (r16345-r16371) for Jeff (to preserve the separate patches). Thanks for all your work on this! Let me know if you are interested in working on some follow up MP tasks. (I have 2 ideas. :) Jeff, Thanks for your review of this big series! -Jordan > -----Original Message----- > From: Chen, Fan [mailto:chen.fan.f...@cn.fujitsu.com] > Sent: Thursday, November 06, 2014 5:13 PM > To: Fan, Jeff > Cc: Izumi, Taku; edk2-devel@lists.sourceforge.net; Jordan Justen > Subject: Re: [RFC PATCH V7 00/27] Introduce Mp Service protocol to UefiCpuPkg > > On Thu, 2014-11-06 at 06:11 +0000, Fan, Jeff wrote: > > Chen, > > > > Thanks your updating. I attached one addition updating based on you're the > > latest patches. Please evaluate and sync it into your patches. > > > > BTW, please delete ApStartup.asm from CpuDxe, it seems to be one dummy file. > Thanks for you review. > I had merged the changes to my patches as you attachment said. see at: > https://github.com/ChenFanFnst/edk2/tree/cpu-mp-service > > and as for file ApStartup.asm, I moved the asm code to ApStartup.c as > comments for guiding to create startup code, then deleted ApStartup.asm. > > > Thanks, > Chen > > > > > > Thanks! > > Jeff > > -----Original Message----- > > From: Chen Fan [mailto:chen.fan.f...@cn.fujitsu.com] > > Sent: Tuesday, November 04, 2014 5:59 PM > > To: edk2-devel@lists.sourceforge.net > > Cc: Jordan Justen; Fan, Jeff; izumi.t...@jp.fujitsu.com > > Subject: [RFC PATCH V7 00/27] Introduce Mp Service protocol to > > UefiCpuPkg > > > > This series patchsets try to implement Mp Service protocol in UefiCpuPkg, > > Jordan had implemented the startup APs code, and I try to add more > > initialization code to let all APs work up, this Mp Service protocol's > > implementation used EmulatorPkg/MpService for reference. > > this patches works on my github: > > https://github.com/ChenFanFnst/edk2/tree/cpu-mp-service > > > > and made StartCorePkg app for testing Mp Service Protocol on: > > https://github.com/ChenFanFnst/edk2/tree/startcore > > > > I had tested the Mp protocol with the test code, and all cases passed. > > > > v6-v7: > > 1. fix some trivial bugs pointed out by Jeff. > > 2. free unused cpu buffer data. > > > > v5-v6: > > 1. using only one timer to check all APs status instead of timers for > > each AP. > > 2. cancel timer each time avoid timer handler reentrancy. > > 3. some bug fix. > > > > v4-v5: > > 1. introduce PcdCpuMaxLogicalProcessorNumber to pre-allocate > > stack buffer before starting the APs. > > 2. implement the function that if procedure routine timeout, > > reset AP by sending init ipi. > > 3. some bug fix. > > > > v3-v4: > > 1. change the order of the patches. > > 2. update some minor format suggested by Jeff. > > 3. add a PCD value to configure StackSize. > > 4. the last patch add assembly code for MSFT, but didn't > > test. > > > > V3-V3.1: > > 1. use AcquireSpinLockOrFail() intead of AcquireSpinLock() > > to avoid ASSERT sugguested by Jeff. > > > > V2-V3: > > 1. rebase codes due to Jordan'tree updated: > > https://github.com/jljusten/edk2/tree/ap-startup-example > > 2. add supported on Ia32 arch > > 3. add a new Lock to replace present SpinLock mechanisms in mutilple > > processors, maybe the SpinLock mechanisms is not MP safe. > > 4. add function header > > 5. add StartupAllAPs() supported > > 6. add SwitchBSP() function, which is unsupported. > > > > V1-V2: > > 1. do not call anything EFI API from APs. > > 2. add AP busy-wait for task assignment from BSP and get rid of > > IPI sent mechanism. > > > > Chen Fan (22): > > UefiCpuPkg/CpuDxe: introduce two PCD value > > UefiCpuPkg/CpuDxe: Switch Ap Stack to NewStack > > UefiCpuPkg/CpuDxe: introduce EFI_MP_SERVICES_PROTOCOL > > UefiCpuPkg/CpuDxe: introduce MP_SYSTEM_DATA for Mp Service Protocol > > UefiCpuPkg/CpuDxe: implement Mp Protocol: WhoAmI() > > UefiCpuPkg/CpuDxe: implement Mp Protocol:GetNumberOfProcessors() > > UefiCpuPkg/CpuDxe: implement Mp Services:GetProcessorInfo() > > UefiCpuPkg/CpuDxe: implement Mp Protocol:EnableDisableAP() > > UefiCpuPkg/CpuDxe: implement Mp Protocol:StartupThisAP() > > UefiCpuPkg/CpuDxe: implement Mp Services:StartupAllAPs() > > UefiCpuPkg/CpuDxe: implement Mp Services:SwitchBSP() > > UefiCpuPkg/CpuDxe: Ap do loop routine to execute procedure > > UefiCpuPkg/MpService: move settimer out to InitMpSystemData > > UefiCpuPkg/MpService: Simply Lock usage > > UefiCpuPkg/MpService: avoid next timer getting into > > CheckAllAPsStatus() > > UefiCpuPkg/CpuDxe: split out StartupCode from StartApsStackless() > > UefiCpuPkg/CpuDxe: introduce ResetApStackless() > > UefiCpuPkg/MpService: free the unused cpu data buffer > > UefiCpuPkg/MpService: avoid reset AP still hold a lock > > UefiCpuPkg/MpService: avoid dead lock caused by CheckAllAPsStatus > > UefiCpuPkg/CpuDxe: Startup APs > > UefiCpuPkg/CpuDxe: install Mp Service protocol > > > > Jordan Justen (5): > > UefiCpuPkg/CpuDxe: Add no-op InitializeMpSupport > > UefiCpuPkg/CpuDxe: Add ApEntryPointInC > > UefiCpuPkg/CpuDxe: Add stackless assembly AP entry points > > UefiCpuPkg/CpuDxe: Move GDT structures into CpuGdt.h > > UefiCpuPkg/CpuDxe: Add StartApsStackless routine > > > > UefiCpuPkg/CpuDxe/ApStartup.asm | 111 +++ > > UefiCpuPkg/CpuDxe/ApStartup.c | 252 ++++++ > > UefiCpuPkg/CpuDxe/CpuDxe.c | 3 + > > UefiCpuPkg/CpuDxe/CpuDxe.h | 1 + > > UefiCpuPkg/CpuDxe/CpuDxe.inf | 17 + > > UefiCpuPkg/CpuDxe/CpuGdt.c | 52 +- > > UefiCpuPkg/CpuDxe/CpuGdt.h | 72 ++ > > UefiCpuPkg/CpuDxe/CpuMp.c | 1534 > > +++++++++++++++++++++++++++++++++++++ > > UefiCpuPkg/CpuDxe/CpuMp.h | 642 ++++++++++++++++ > > UefiCpuPkg/CpuDxe/Ia32/MpAsm.asm | 75 ++ > > UefiCpuPkg/CpuDxe/Ia32/MpAsm.nasm | 68 ++ > > UefiCpuPkg/CpuDxe/X64/MpAsm.asm | 76 ++ > > UefiCpuPkg/CpuDxe/X64/MpAsm.nasm | 70 ++ > > UefiCpuPkg/UefiCpuPkg.dec | 7 + > > UefiCpuPkg/UefiCpuPkg.dsc | 1 + > > 15 files changed, 2930 insertions(+), 51 deletions(-) create mode > > 100644 UefiCpuPkg/CpuDxe/ApStartup.asm create mode 100644 > > UefiCpuPkg/CpuDxe/ApStartup.c create mode 100644 > > UefiCpuPkg/CpuDxe/CpuGdt.h create mode 100644 > > UefiCpuPkg/CpuDxe/CpuMp.c create mode 100644 > > UefiCpuPkg/CpuDxe/CpuMp.h create mode 100644 > > UefiCpuPkg/CpuDxe/Ia32/MpAsm.asm create mode 100644 > > UefiCpuPkg/CpuDxe/Ia32/MpAsm.nasm create mode 100644 > > UefiCpuPkg/CpuDxe/X64/MpAsm.asm create mode 100644 > > UefiCpuPkg/CpuDxe/X64/MpAsm.nasm > > > > -- > > 1.9.3 > > > > ------------------------------------------------------------------------------ > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel