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

Re: [Xen-devel] EFI Xen unstable crashes on Dell E6410 when calling efi_get_time.



>>> On 22.10.14 at 15:12, <konrad.wilk@xxxxxxxxxx> wrote:
> On Wed, Oct 22, 2014 at 11:22:17AM +0100, Jan Beulich wrote:
>> >>> On 22.10.14 at 11:45, <andrew.cooper3@xxxxxxxxxx> wrote:
>> > On 22/10/14 01:29, Marcos E. Matsunaga wrote:
>> >> I went out and got the serial cable. Attached is the full output.
>> >>
>> >>
>> >> On 10/21/2014 05:06 PM, Marcos E. Matsunaga wrote:
>> >>> Folks,
>> >>>
>> >>> I am trying to boot Xen using efibootmgr on a Dell E6410 laptop with
>> >>> 4GB RAM, running an Intel I5 dual core with VT and all the
>> >>> virtualization options enabled.
>> >>>
>> >>> It crashes almost immediately. I am working on getting the serial
>> >>> console up so that I can get a more detailed stack.
>> >>>
>> >>> A screenshot of the console is attached.
>> >>>
>> >>> The xen.cfg file is:
>> >>>
>> >>> [global]
>> >>> default=xen
>> >>>
>> >>> [xen]
>> >>> options=console=vga,com1 com1=115200,8n1 dom0_max_vcpus=2 vga="qxl"
>> >>> kernel=vmlinuz-3.8.13-48.el7uek.Other_EFI_v1.x86_64
>> >>> root=UUID=917bfc7f-8d9c-4acf-a98a-a9f558daccf2  ro console=hvc0
>> >>> enforcing=0 biosdevname=0 earlyprintk=xen nomodeset
>> >>> ramdisk=initramfs-3.8.13-48.el7uek.Other_EFI_v1.x86_64.img
>> >>>
>> >>>
>> >>> The codepath is "(gdb) x/20i get_cmos_time
>> >>>    0xffff82d080188825 <get_cmos_time>:  push   %rbp
>> >>>    0xffff82d080188826 <get_cmos_time+1>:        mov %rsp,%rbp
>> >>>    0xffff82d080188829 <get_cmos_time+4>:        push   %r12
>> >>>    0xffff82d08018882b <get_cmos_time+6>:        push   %rbx
>> >>>    0xffff82d08018882c <get_cmos_time+7>:        cmpb
>> >>> $0x0,0xb620d(%rip)        # 0xffff82d08023ea40 <efi_enabled>
>> >>>    0xffff82d080188833 <get_cmos_time+14>:       je 0xffff82d080188843
>> >>> <get_cmos_time+30>
>> >>>    0xffff82d080188835 <get_cmos_time+16>:       callq
>> >>> 0xffff82d080100069 <efi_get_time>"
>> >>>
>> >>
>> > 
>> > Ok - there are two separate bugs here.
>> > 
>> > The first is that we call into the efi runtime via efi_rs->GetTime, and
>> > a pagefault happens for the instruction at 0x00000000db25a33d for the
>> > virtual address 0x00000000fed1f410
>> > 
>> > The memory map looks quite weird, but the faulting address is covered in
>> > this range.
>> > 
>> > (XEN)  00000fed1c000-00000fed1ffff type=11 attr=8000000000000000
> 
> type 11 is 
>> > 
>> > So I would expect it to be mapped into the EFI pagetables.
>> 
>> Then you must have missed
>> 
>> (XEN) Unknown cachability for MFNs 0xfed1c-0xfed1f
>> 
>> which means no mapping got established (as we don't know what
>> cachability attributes to give to it).
>> 
>> This is a firmware bug.
> 
> Could we use the UC- by default? Looking at the Linux code
> (efi_enter_virtual_mode_generic, it will pick 'efi_ioremap' which
> calls 'ioremap' (which calls ioremap_nocache)

I intentionally didn't follow Linux'es model here. There are dedicated
flags for all caching modes (including UC), so if the UC flag is off we
shouldn't be using that caching mode. You may be able to convince
me to make this command line triggerable behavior, but I really think
firmware folks should get their act together rather than make us
invent bogus workarounds.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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