[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] EFI GetNextVariableName crashes when running under Xen, but not under Linux. efi-rs=0 works. No memmap issues

On 26/01/15 16:27, Konrad Rzeszutek Wilk wrote:
> Hey Jan, Andrew,
> I am hoping you can help me in directing me where I ought to go next
> in debugging this.
> This is a Lenovo Thinkpad x230 with the latest BIOS and Xen 4.6 (todays
> 'staging' + my patches). Initially when I installed Xen the first time
> it would hang when loading the efi_vars module in Linux. Debugging
> a bit more and I found out that the issue is that we crash when
> calling GetNextVariableName (works fine with GetTime/SetTime, hand't
> tried GetVariable).
> I decided to implement in the hypervisor a little loop that would
> call GetNextVariableName and it works on my ASUS M5A87 board nicely.
> (attached at the bottom for comparison)
> However on this laptop it keeps on crashing. I've also added
> a bit of code to get the binary code from the GetNextVariableName
> to see if it looks legit - and it looks OK (obviously different
> from what the ASUS has implemented).
> Anyhow I am bit stuck:
>  1) It works with Linux, so what is it that Linux does that
>     Xen does not?
>  2). I can't make sense of the stack trace.

The efi firmware doesn't use frame pointers, but Xen does, which causes
its stack tracing to get confused.  This is on my todo list to fix since
the last stack trace you submitted.

You could see about creating a debug xen with frame_pointer=n during the
build, which will cause Xen to use the non-frame pointer aware stack
trace algorithm.

That would help analyse the issue.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.