nowadays, APs are busy running when installing MP protocol in multiple processors environment. so it whould consume much power resource unnecessary. this patchs put APs to sleep when not procedure to run, then via sending NMI IPI by BSP to wake up AP with hlt state.
there is a proposal several months ago. pls see: http://feishare.com/efimail/message/20141126-1910-_edk2_UefiCpuPkg _CpuMp_improvement_idea_-_Put_APs_to_sleep_whennot_busy-Jordan_Justen_.html Chen Fan (4): Apic: introduce SendNmiIpi() for trigger NMI IPI interrupt UefiCpuPkg/MpService: register NMI handler for wake up AP with hlt state UefiCpuPkg/MpService: update idt table entrance for APs UefiCpuPkg/MpService: Put APs to sleep when not busy UefiCpuPkg/CpuDxe/CpuMp.c | 49 ++++++++++++++++++++++ UefiCpuPkg/Include/Library/LocalApicLib.h | 16 ++++++- UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c | 21 ++++++++++ .../BaseXApicX2ApicLib/BaseXApicX2ApicLib.c | 21 ++++++++++ 4 files changed, 106 insertions(+), 1 deletion(-) -- 1.9.3 ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel