Gabriel,

After APs initialized, APs will run one loop in ProcessorToIdleState() to check 
the if BSP assigned task to them.

After ExitBootService() invoked, the boot services data will not be safe and 
the AP running code maybe corrupted. 

Could you check if ExitBootService() is invoked or not when issue happened?

Jeff
-----Original Message-----
From: Gabriel Somlo [mailto:gso...@gmail.com] 
Sent: Friday, November 14, 2014 1:15 PM
To: Justen, Jordan L
Cc: edk2-devel@lists.sourceforge.net
Subject: [edk2] qemu + osx + smp vs. dee9376ffc6e5522bb5e50512b521952a5421fa5

Jordan,

Commit dee9376ffc6e5522bb5e50512b521952a5421fa5 appears to break osx smp mode 
(single-cpu on Mavericks seems to still work fine).

Fedora 20 and 21 live still work fine in either single- or multi-cpu 
configurations.

I realize this must be an annoying bug report, since starting a qemu osx guest 
requires not-yet-committed patches (e.g. Reza's pending ahci series, and 
another bunch of osx specific stuff)...

For the record, my command line is:

bin/qemu-system-x86_64 -enable-kvm -m 2048 -cpu core2duo -smp 4,cores=2 \
  -machine q35 -device ide-drive,bus=ide.2,drive=MacHDD \
  -drive id=MacHDD,if=none,snapshot=on,file=./mac_10.9.img \
  -device isa-applesmc,osk="secret-smc-osk-string" \
  -netdev user,id=usr0 -device e1000-82545em,netdev=usr0,id=vnet0 \
  -usb -device usb-kbd -device usb-mouse \
  -bios OVMF.fd \
  -smbios type=0,vendor="ovmf",version="svn.16189",date="09/29/14",uefi=on \
  -debugcon file:debug.log -global isa-debugcon.iobase=0x402 \
  -monitor stdio

And it hangs right before switching to graphics mode (so probably during 
apple's boot.efi) with the following message:


efiboot loaded from device: 
Acpi(PNP0A03,0)/Pci(1F|2)/SATA(2,0)/HD(Part2,SigF402FAFD-C5D8-49C3-953C-91354746C321)
boot file path:
.Loading kernel cache file
'System\Library\Caches\com.apple.kext.caches\Startup\kernelcache'.....
root device uuid is 'D3720931-EC86-377F-8606-DB54F76A1050'


To boot with PIIX instead of q35, simply

   s/-machine q35/-device ahci,id=ide/

in the command line above. Then, it reboots after logging a similar message.


The patch in question is a one-liner adding a "StartApsStackless()"
call to UefiCpuPkg/CpuDxe/CpuMp.c, and osx obviously dislikes
*something* about the state of the APs when it finds them, but beyond that I 
have no idea what might be wrong.


Jordan, if by any chance you have a hunch and would like me to test an 
alternative way of doing things for qemu/osx guest compatibility, I'd be happy 
to.


Otherwise, this should serve as a heads-up for Reza: now that ovmf q35 support 
is upstream, once your ahci patches are applied, this will be something you'll 
end up running into when submitting osx patches next :)

Thanks again,
--Gabriel

------------------------------------------------------------------------------
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

------------------------------------------------------------------------------
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

Reply via email to