-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 03/31/2014 06:27 PM, Peter Maydell wrote:
On 31 March 2014 23:07, Michael Casadevall michael.casadevall@linaro.org wrote:
On 03/28/2014 07:40 PM, Peter Maydell wrote:
There's a bug in QEMU's AArch64 KVM support which means we don't do the right thing with SP on syncing state to/from the kernel, so don't trust that.... (Fixed either in master or in my a64-system patchset, I forget which).
My initial attempts at getting ASSERT to give me useful information failed; is this patchset for KVM or the kernel, and where can I find it?
It's for QEMU. https://lists.nongnu.org/archive/html/qemu-devel/2014-03/msg05588.html
Patch 16 is the one I'm talking about, though it probably depends on some of the preceding ones (mostly textual conflicts if you try to apply it on its own I suspect). You can also find that in git://git.linaro.org/people/peter.maydell/qemu-arm.git branch a64-system but beware: that is my work-in-progress branch and it may rebase, break arbitrarily, etc etc.
thanks -- PMM
I took your branch, added the UEFI patch to it, and then with some fiddling:
(gdb) reload-uefi -o GdbSyms.dll
EFI_SYSTEM_TABLE @ 0xff7cff18 Connected to KVM EFI Mar 31 2014 17:46:10 (Rev. 0x0) ConfigurationTable @ 0xff7b7e18, 0x6 entries DebugImageInfoTable @ 0xc007e018, 0x1b entries
Loading new symbols... add-symbol-file /home/mcasadevall/uefi/Build/AArch64Virtualization-KVM/DEBUG_ARMLINUXGCC/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll 0xff7f1260 add symbol table from file "/home/mcasadevall/uefi/Build/AArch64Virtualization-KVM/DEBUG_ARMLINUXGCC/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll" at
(sip a LOT of output) Program received signal SIGINT, Interrupt.
(gdb) bt 0x00000000ff80bba8 in SetMemN (Buffer=0x0, Length=0, Value=0) at /home/mcasadevall/uefi/ArmPkg/Library/BaseMemoryLibStm/SetMemWrapper.c:87 87 return SetMem64 (Buffer, Length, (UINT64)Value); (gdb) bt #0 0x00000000ff80bba8 in SetMemN (Buffer=0x0, Length=0, Value=0) at /home/mcasadevall/uefi/ArmPkg/Library/BaseMemoryLibStm/SetMemWrapper.c:87 #1 0x0000000000000000 in ?? () (gdb)
Its a fairly major improvement, and I managed to use GdbSyms.dll to load ALL the symbol files in a single go, but I'm still having issues with the stack. At least now i can get the frame we're currently in reliably, but the backtrace remains busted.
reload-uefi also is incredibly slow, probably because its going through three SSH proxies to dump out the DebugImageInfoTable. I can combine this though with printing points out and get a reasonable idea of where stuff is breaking.