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

Re: [Xen-devel] Xen master hangs



On Tue, Jul 28, 2015 at 11:27:57AM -0500, Doug Goldstein wrote:
> On Tue, Jul 28, 2015 at 10:01 AM, Konrad Rzeszutek Wilk
> <konrad.wilk@xxxxxxxxxx> wrote:
> > On Tue, Jul 28, 2015 at 09:30:59AM -0500, Doug Goldstein wrote:
> >> On Mon, Jul 27, 2015 at 4:11 PM, Doug Goldstein <cardoe@xxxxxxxxxx> wrote:
> >> > On Mon, Jul 27, 2015 at 4:55 AM, Andrew Cooper
> >> > <andrew.cooper3@xxxxxxxxxx> wrote:
> >> >> On 24/07/15 17:52, Doug Goldstein wrote:
> >> >>
> >>
> >> <snip>
> >>
> >> So now I've got a build of staging
> >> 8398ec706ff60e17a5044470fa2e90a1b081f37a with debug=y and
> >> frame_pointer=n so that we can get a good call trace. As Andrew
> >> pointed out to me on IRC right now stack tracing is broken with EFI
> >> boots due to a mix of using frame pointers (in Xen) and no frame
> >> pointer (EFI). Here's the latest output:
> >>
> >> The system is powered on.
> >>  Xen 4.6-unstable
> >> (XEN) Xen version 4.6-unstable (doug@) (gcc (Ubuntu 4.9.2-10ubuntu13)
> >> 4.9.2) debug=y Tue Jul 28 09:03:53 CDT 2015
> >> (XEN) Latest ChangeSet: Fri Jul 24 17:29:41 2015 +0200 git:8398ec7-dirty
> >> (XEN) Bootloader: EFI
> >> (XEN) Command line: com1=115200,8n1,0x40b0 console=com1 loglvl=all
> >> console_timestamp=boot
> >> (XEN) Video information:
> >> (XEN)  VGA is graphics mode 1920x1080, 32 bpp
> >> (XEN) Disc information:
> >> (XEN)  Found 0 MBR signatures
> >> (XEN)  Found 1 EDD information structures
> >> (XEN) EFI RAM map:
> >> (XEN)  0000000000000000 - 000000000009c000 (usable)
> >> (XEN)  000000000009c000 - 000000000009d000 (reserved)
> >> (XEN)  000000000009d000 - 000000000009e000 (usable)
> >> (XEN)  000000000009e000 - 00000000000c0000 (reserved)
> >> (XEN)  0000000000100000 - 0000000020000000 (usable)
> >> (XEN)  0000000020000000 - 0000000020200000 (reserved)
> >> (XEN)  0000000020200000 - 0000000040004000 (usable)
> >> (XEN)  0000000040004000 - 0000000040005000 (reserved)
> >> (XEN)  0000000040005000 - 00000000ceaad000 (usable)
> >> (XEN)  00000000ceaad000 - 00000000cecaf000 (reserved)
> >> (XEN)  00000000cecaf000 - 00000000d660b000 (usable)
> >> (XEN)  00000000d660b000 - 00000000daa9f000 (reserved)
> >> (XEN)  00000000daa9f000 - 00000000dab9f000 (ACPI NVS)
> >> (XEN)  00000000dab9f000 - 00000000dabff000 (ACPI data)
> >> (XEN)  00000000dabff000 - 00000000dac00000 (usable)
> >> (XEN)  00000000dac00000 - 00000000dfa00000 (reserved)
> >> (XEN)  00000000f80f8000 - 00000000f80f9000 (reserved)
> >> (XEN)  00000000fed1c000 - 00000000fed90000 (reserved)
> >> (XEN)  0000000100000000 - 000000021e600000 (usable)
> >> (XEN)  000000021e600000 - 000000021f000000 (reserved)
> >> (XEN) ACPI: RSDP DABFE014, 0024 (r2 LL      SNB         1 INTL        1)
> >> (XEN) ACPI: UEFI DABD9000, 02A6 (r1 LENOVO TP-G1        2680 PTL         2)
> >> (XEN) ACPI: DBG2 DABD8000, 00E9 (r0 LENOVO TP-G1        2680 PTL         2)
> >> (XEN) ACPI: BGRT DABD7000, 0038 (r0 LENOVO TP-G1        2680 PTL         2)
> >> (XEN) System RAM: 8007MB (8199832kB)
> >> (XEN) No NUMA configuration found
> >> (XEN) Faking a node at 0000000000000000-000000021e600000
> >> (XEN) Domain heap initialised
> >> (XEN) SMBIOS 2.7 present.
> >> (XEN) DMI 2.7 present.
> >> (XEN) Using APIC driver default
> >> (XEN) ACPI: PM-Timer IO Port: 0x408
> >> (XEN) ACPI: v5 SLEEP INFO: control[1:0], status[1:0]
> >> (XEN) ACPI: SLEEP INFO: pm1x_cnt[1:404,1:0], pm1x_evt[1:400,1:0]
> >> (XEN) ACPI: 32/64X FACS address mismatch in FADT -
> >> dab5a000/0000000000000000, using 32
> >> (XEN) ACPI:             wakeup_vec[dab5a00c], vec_size[20]
> >> (XEN) ACPI: Local APIC address 0xfee00000
> >> (XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
> >> (XEN) Processor #0 7:10 APIC version 21
> >> (XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
> >> (XEN) Processor #1 7:10 APIC version 21
> >> (XEN) AC 0 bus_irq 0 global_irq 2 dfl dfl)
> >> (XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
> >> (XEN) ACPI: IRQ0 used by override.
> >> (XEN) ACPI: IRQ2 used by override.
> >> (XEN) ACPI: IRQ9 used by override.
> >> (XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
> >> (XEN) ACPI: HPET id: 0x8086a301 base: 0xfed00000
> >> (XEN) ERST table was not found
> >> (XEN) ACPI: BGRT: invalidating v0 image at 0xd3649018
> >> (XEN) Using ACPI (MADT) for SMP configuration information
> >> (XEN) SMP: Allowing 8 CPUs (4 hotplug CPUs)
> >> (XEN) IRQ limits: 24 GSI, 760 MSI/MSI-X
> >> (XEN) Switched to APIC driver x2apic_cluster.
> >> (XEN) xstate_init: using cntxt_size: 0x340 and states: 0x7
> >> (XEN) mce_intel.c:735: MCA Capability: BCAST 1 SER 0 CMCI 1 firstbank
> >> 0 extended MCE MSR 0
> >> (XEN) Intel machine check reporting enabled
> >> (XEN) Using scheduler: SMP Credit Scheduler (credit)
> >> (XEN) Detected 2594.177 MHz processor.
> >> (XEN) EFI memory map:
> >> (XEN)  0000000000000-0000000086fff type=7 attr=000000000000000f
> >> (XEN)  0000000087000-0000000087fff type=4 attr=000000000000000f
> >> (XEN)  0000000088000-0000000098fff type=7 attr=000000000000000f
> >> (XEN)  0000000099000-000000009bfff type=2 attr=000000000000000f
> >> (XEN)  000000009c000-000000009cfff type=0 attr=000000000000000f
> >> (XEN)  000000009d000-000000009dfff type=4 attr=000000000000000f
> >> (XEN)  000000009e000-000000009ffff type=0 attr=000000000000000f
> >> (XEN)  0000000100000-000001fffffff type=7 attr=000000000000000f
> >> (XEN)  0000020000000-00000201fffff type=0 attr=000000000000000f
> >> (XEN)  0000020200000-0000040003fff type=7 attr=000000000000000f
> >> (XEN)  0000040004000-0000040004fff type=0 attr=000000000000000f
> >> (XEN)  0000040005000-00000cc48dfff type=7 attr=000000000000000f
> >> (XEN)  00000cc48e000-00000cc4adfff type=4 attr=000000000000000f
> >> (XEN)  00000cc4ae000-00000cc53cfff type=7 attr=000000000000000f
> >> (XEN)  00000cc53d000-00000cea96fff type=2 attr=000000000000000f
> >> (XEN)  00000cea97000-00000ceaacfff type=4 attr=000000000000000f
> >> (XEN)  00000ceaad000-00000cecaefff type=0 attr=000000000000000f
> >> (XEN)  00000cecaf000-00000cf47dfff type=4 attr=000000000000000f
> >> (XEN)  00000cf47e000-00000cf910fff type=7 attr=000000000000000f
> >> (XEN)  00000cf911000-00000d0b10fff type=1 attr=000000000000000f
> >> (XEN)  00000d0b11000-00000d2145fff type=7 attr=000000000000000f
> >> (XEN)  00000d2146000-00000d237ffff type=4 attr=000000000000000f
> >> (XEN)  00000d2380000-00000d2573fff type=7 attr=000000000000000f
> >> (XEN)  00000d2574000-00000d3e52fff type=4 attr=000000000000000f
> >> (XEN)  00000d3e53000-00000d3e56fff type=7 attr=000000000000000f
> >> (XEN)  00000d3e57000-00000d4270fff type=4 attr=000000000000000f
> >> (XEN)  00000d4271000-00000d427afff type=7 attr=000000000000000f
> >> (XEN)  00000d427b000-00000d5c0afff type=4 attr=000000000000000f
> >> (XEN)  00000d5c0b000-00000d6156fff type=7 attr=000000000000000f
> >> (XEN)  00000d6157000-00000d660afff type=3 attr=000000000000000f
> >> (XEN)  00000d660b000-00000d66e0fff type=5 attr=800000000000000f
> >> (XEN)  00000d66e1000-00000d680afff type=5 attr=800000000000000f
> >> (XEN)  00000d680b000-00000d73b3fff type=6 attr=800000000000000f
> >> (XEN)  00000d73b4000-00000da259fff type=6 attr=800000000000000f
> >> (XEN)  00000da25a000-00000da7effff type=0 attr=000000000000000f
> >> (XEN)  00000da7f0000-00000daa9afff type=0 attr=000000000000000f
> >> (XEN)  00000daa9b000-00000daa9bfff type=0 attr=000000000000000f
> >> (XEN)  00000daa9c000-00000daa9efff type=0 attr=000000000000000f
> >> (XEN)  00000daa9f000-00000daaf4fff type=10 attr=000000000000000f
> >> (XEN)  00000daaf5000-00000dab9efff type=10 attr=000000000000000f
> >> (XEN)  00000dab9f000-00000dabd6fff type=9 attr=000000000000000f
> >> (XEN)  0000000000000f
> >> (XEN)  00000dabff000-00000dabfffff type=4 attr=000000000000000f
> >> (XEN)  0000100000000-000021e5fffff type=7 attr=000000000000000f
> >> (XEN)  00000000a0000-00000000bffff type=0 attr=0000000000000000
> >> (XEN)  00000dac00000-00000df9fffff type=0 attr=0000000000000000
> >> (XEN)  00000f80f8000-00000f80f8fff type=11 attr=8000000000000001
> >> (XEN)  00000fed1c000-00000fed1ffff type=11 attr=8000000000000001
> >> (XEN)  00000fed20000-00000fed8ffff type=0 attr=0000000000000000
> >> (XEN)  000021e600000-000021effffff type=0 attr=0000000000000000
> >> (XEN) Initing memory sharing.
> >> (XEN) alt table ffff82d0802f6150 -> ffff82d0802f7440
> >> (XEN) PCI: MCFG configuration 0: base f8000000 segment 0000 buses 00 - 3f
> >> (XEN) PCI: Not using MCFG for segment 0000 bus 00-3f
> >> (XEN) Intel VT-d iommu 0 supported page sizes: 4kB.
> >> (XEN) Intel VT-d iommu 1 supported page sizes: 4kB.
> >> (XEN) Intel VT-d Snoop Control not enabled.
> >> (XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
> >> (XEN) Intel VT-d Queued Invalidation enabled.
> >> (XEN) Intel VT-d Interrupt Remapping enabled.
> >> (XEN) Intel VT-d Shared EPT tables not enabled.
> >> (XEN) I/O virtualisation enabled
> >> (XEN)  - Dom0 mode: Relaxed
> >> (XEN) Interrupt remapping enabled
> >> (XEN) Enabled directed EOI with ioapic_ack_old on!
> >> (XEN) ENABLING IO-APIC IRQs
> >> (XEN)  -> Using old ACK method
> >> (XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=-1 pin2=-1
> >> (XEN) TSC deadline timer enabled
> >> (XEN) Platform timer is 14.318MHz HPET
> >> (XEN) Allocated console ring of 32 KiB.
> >> (XEN) mwait-idle: MWAIT substates: 0x21120
> >> (XEN) mwait-idle: v0.4 model 0x3a
> >> (XEN) mwait-idle: lapic_timer_reliable_states 0xffffffff
> >> (XEN) VMX: Supported advanced features:
> >> (XEN)  - APIC MMIO access virtualisation
> >> (XEN)  - APIC TPR shadow
> >> (XEN)  - Extended Page Tables (EPT)
> >> (XEN)  - Virtual-Processor Identifiers (VPID)
> >> (XEN)  - Virtual NMI
> >> (XEN)  - MSR direct-access bitmap
> >> (XEN)  - Unrestricted Guest
> >> (XEN) HVM: ASIDs enabled.
> >> (XEN) HVM: VMX enabled
> >> (XEN) HVM: Hardware Assisted Paging (HAP) detected
> >> (XEN) HVM: HAP page sizes: 4kB, 2MB
> >> (XEN) Brought up 4 CPUs
> >> (XEN) ACPI sleep modes: S3
> >> (XEN) VPMU: disabled
> >> (XEN) mcheck_poll: Machine check polling timer started.
> >> (XEN) Dom0 has maximum 600 PIRQs
> >> (XEN) NX (Execute Disable) protection active
> >> (XEN) *** LOADING DOMAIN 0 ***
> >> (XEN) elf_parse_binary: phdr: paddr=0x1000000 memsz=0xbac000
> >> (XEN) elf_parse_binary: phdr: paddr=0x1c00000 memsz=0x136000
> >> (XEN) elf_parse_binary: phdr: paddr=0x1d36000 memsz=0x15440
> >> (XEN) elf_parse_binary: phdr: paddr=0x1d4c000 memsz=0x2bf000
> >> (XEN) elf_parse_binary: memory: 0x1000000 -> 0x200b000
> >> (XEN) elf_xen_parse_note: GUEST_OS = "linux"
> >> (XEN) elf_xen_parse_note: GUEST_VERSION = "2.6"
> >> (XEN) elf_xen_parse_note: XEN_VERSION = "xen-3.0"
> >> (XEN) elf_xen_parse_note: VIRT_BASE = 0xffffffff80000000
> >> (XEN) elf_xen_parse_note: ENTRY = 0xffffffff81d4c1f0
> >> (XEN) eck: addresses:
> >> (XEN)     virt_base        = 0xffffffff80000000
> >> (XEN)     elf_paddr_offset = 0x0
> >> (XEN)     virt_offset      = 0xffffffff80000000
> >> (XEN)     virt_kstart      = 0xffffffff81000000
> >> (XEN)     virt_kend        = 0xffffffff8200b000
> >> (XEN)     virt_entry       = 0xffffffff81d4c1f0
> >> (XEN)     p2m_base         = 0xffffffffffffffff
> >> (XEN)  Xen  kernel: 64-bit, lsb, compat32
> >> (XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x200b000
> >> (XEN) PHYSICAL MEMORY ARRANGEMENT:
> >> (XEN)  Dom0 alloc.:   0000000210000000->0000000214000000 (1963504
> >> pages to be allocated)
> >> (XEN)  Init. ramdisk: 000000021c6f6000->000000021e5ffd57
> >> (XEN) VIRTUAL MEMORY ARRANGEMENT:
> >> (XEN)  Loaded kernel: ffffffff81000000->ffffffff8200b000
> >> (XEN)  Init. ramdisk: 0000000000000000->0000000000000000
> >> (XEN)  Phys-Mach map: ffffffff8200b000->ffffffff82f357d0
> >> (XEN)  Start info:    ffffffff82f36000->ffffffff82f364b4
> >> (XEN)  Page tables:   ffffffff82f37000->ffffffff82f52000
> >> (XEN)  Boot stack:    ffffffff82f52000->ffffffff82f53000
> >> (XEN)  TOTAL:         ffffffff80000000->ffffff(XEN) traps.c:2686:d0v0
> >> Domain attempted WRMSR 00000000c0000081 from 0xe023e00800000000 to
> >> 0x0023001000000000.
> >> (XEN) traps.c:2686:d0v0 Domain attempted WRMSR 00000000c0000082 from
> >> 0xffff82d0bffff000 to 0xffffffff817cb550.
> >> (XEN) traps.c:2686:d0v0 Domain attempted WRMSR 00000000c0000083 from
> >> 0xffff82d0bffff020 to 0xffffffff817cdb80.
> >> (XEN) traps.c:2686:d0v0 Domain attempted WRMSR 0000000000000174 from
> >> 0x000000000000e008 to 0x0000000000000010.
> >> (XEN) traps.c:2686:d0v0 Domain attempted WRMSR 0000000000000175 from
> >> 0xffff8300cfd07fc0 to 0x0000000000000000.
> >> (XEN) traps.c:2686:d0v0 Domain attempted WRMSR 0000000000000176 from
> >> 0xffff82d08023ad70 to 0xffffffff817cde90.
> >> (XEN) traps.c:2686:d0v0 Domain attempted WRMSR 00000000c0000083 from
> >> 0xffff82d0bffff020 to 0xffffffff817ce0d0.
> >> (XEN) traps.c:2686:d0v0 Domain attempted WRMSR 00000000c0000084 from
> >> 0x0000000000074700 to 0x0000000000047700.
> >> (XEN) traps.c:2686:d0v0 Domain attempted WRMSR 00000000000001c9 from
> >> 0x0000000000000000 to 0x0000000000000003.
> >> (XEN) traps.c:2686:d0v0 Domain attempted WRMSR 00000000000001a6 from
> >> 0x0000000000000000 to 0x00000000000001ff.
> >> (XEN) traps.c:2686:d0v0 Domain attempted WRMSR 00000000000001a7 from
> >> 0x0000000000000000 to 0x00000000000001ff.
> >> (XEN) traps.c:2686:d0v0 Domain attempted WRMSR 00000000000003f6 from
> >> 0x000000000000ffff to 0x000000000000fe00.
> >> (XEN) traps.c:2686:d0v1 Domain attempted WRMSR 00000000c0000081 from
> >> 0xe023e00800000000 to 0x0023001000000000.
> >> (XEN) traps.c:2686:d0v1 Domain attempted WRMSR 00000000c0000082 from
> >> 0xffff82d0bfffe080 to 0xffffffff817cb550.
> >> (XEN) traps.c:2686:d0v1 Domain attempted WRMSR 00000000c0000083 from
> >> 0xffff82d0bfffe0a0 to 0xffffffff817cdb80.
> >> (XEN) traps.c:2686:d0v1 Domain attempted WRMSR 0000000000000174 from
> >> 0x000000000000e008 to 0x0000000000000010.
> >> (XEN) traps.c:2686:d0v1 Domain attempted WRMSR
> >> 00000000000001700000e008 to 0x0000000000000010.
> >> (XEN) traps.c:2686:d0v2 Domain attempted WRMSR 0000000000000175 from
> >> 0xffff830216cc7fc0 to 0x0000000000000000.
> >> (XEN) traps.c:2686:d0v2 Domain attempted WRMSR 0000000000000176 from
> >> 0xffff82d08023ad70 to 0xffffffff817cde90.
> >> (XEN) traps.c:2686:d0v2 Domain attempted WRMSR 00000000c0000083 from
> >> 0xffff82d0bfffd120 to 0xffffffff817ce0d0.
> >> (XEN) traps.c:2686:d0v2 Domain attempted WRMSR 00000000c0000084 from
> >> 0x0000000000074700 to 0x0000000000047700.
> >> (XEN) traps.c:2686:d0v3 Domain attempted WRMSR 00000000c0000081 from
> >> 0xe023e00800000000 to 0x0023001000000000.
> >> (XEN) traps.c:2686:d0v3 Domain attempted WRMSR 00000000c0000082 from
> >> 0xffff82d0bfffc180 to 0xffffffff817cb550.
> >> (XEN) traps.c:2686:d0v3 Domain attempted WRMSR 00000000c0000083 from
> >> 0xffff82d0bfffc1a0 to 0xffffffff817cdb80.
> >> (XEN) traps.c:2686:d0v3 Domain attempted WRMSR 0000000000000174 from
> >> 0x000000000000e008 to 0x0000000000000010.
> >> (XEN) traps.c:2686:d0v3 Domain attempted WRMSR 0000000000000175 from
> >> 0xffff830216c7ffc0 to 0x0000000000000000.
> >> (XEN) traps.c:2686:d0v3 Domain attemp(XEN) d0: Forcing read-only
> >> access to MFN fed00
> >> (XEN) ----[ Xen-4.6-unstable  x86_64  debug=y  Not tainted ]----
> >> (XEN) CPU:    3
> >> (XEN) RIP:    e008:[<00000000cea9727b>] 00000000cea9727b
> >> (XEN) RFLAGS: 0000000000010286   CONTEXT: hypervisor (d0v3)
> >> (XEN) rax: 00000000cea9727b   rbx: ffff830216c7fe48   rcx: 000000000000001f
> >> (XEN) rdx: 00000000d674ded0   rsi: 000000319697ec80   rdi: ffff83021df64080
> >> (XEN) rbp: ffff830216c7fda8   rsp: ffff830216c7fd20   r8:  ffff830216c7fe68
> >> (XEN) r9:  0000000000000000   r10: 0000000000000000   r11: 00000000db002700
> >> (XEN) r12: ffff830216c7fe68   r13: 0000000000000000   r14: ffff83021df64080
> >> (XEN) r15: 0000000211c13000   cr0: 0000000080050033   cr4: 00000000001526e0
> >> (XEN) cr3: 0000000216cb7000   cr2: 00000000cea9727b
> >> (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e010   cs: e008
> >> (XEN) Xen stack trace from rsp=ffff830216c7fd20:
> >> (XEN)    00000000d674cd77 0000000211c13000 ffffffff81ce0a20 
> >> ffff82d0802aabc4
> >> (XEN)    ffff83021df64080 8000000000000013 00000000ffffffa1 
> >> 0000000216cb7000
> >> (XEN)    ffff82d08023f5a1 ffff830216c7fe48 ffff830216c7fde8 
> >> 000000319697ec80
> >> (XEN)    ffff82d08023f56c ffff830216cc8340 0000000000000003 
> >> ffff830216c7fde8
> >> (XEN)    0000000000000206 0000000000000400 0000000000000292 
> >> ffff830128e0dd80
> >> (XEN)    ffff830216c7ff18 ffffffff81ce0a20 ffff82d0802aabc4 
> >> ffff830216c78000
> >> (XEN)    ffff82d080320080 ffff830216c7fef8 ffff82d0801673ba 
> >> ffff830216cc8108
> >> (XEN)    0027b02880108237 0000000000000000 ffff880209de7d18 
> >> 0000000000000002
> >> (XEN)    ffff830216c7fe38 ffff82d08012ce6a ffff830216c7fe58 
> >> ffff82d08018ad0c
> >> (XEN)    0300000100000031 0000000000000008 0000000000000000 
> >> 0000000000000400
> >> (XEN)    ffff8802038c0c00 0000000000000000 0000000000000000 
> >> 0000000000000000
> >> (XEN)    0000000000000000 0000000000000000 0000000000000000 
> >> 0000000000000000
> >> (XEN)    0000000000000000 0000000000000000 0000000000000000 
> >> 0000000000000000
> >> (XEN)    0000000000000000 ffff830216c7fef8 ffff8300d65fd000 
> >> ffffffff81ce0a20
> >> (XEN)    0000000000000000 ffffffff8167e290 0000000000000000 
> >> ffff880209de7da8
> >> (XEN)    ffff82d08023abda ffffffff810010ea 0000000000000007 
> >> ffff8802038a85bc
> >> (XEN)    ffff8802038a83dc ffff8802038a85be 0000000000000700 
> >> ffff880209de7da8
> >> (XEN)    ffff8802038c0c00 0000000000000246 ffff88020f0d77c0 
> >> ffff880209de7de8
> >> (XEN)    00000000000175a0 0000000000000007 ffffffff810010ea 
> >> 0000000000000000
> >> (XEN)    ffff8802038c0c00 ffff880209de7d18 0001010000000000 
> >> ffffffff810010ea
> >> (XEN) Xen call trace:
> >> (XEN)    [<00000000cea9727b>] 00000000cea9727b
> >> (XEN)    [<ffff82d08023f5a1>] efi_runtime_call+0x64e/0x80a
> >> (XEN)    [<ffff82d08023f56c>] efi_runtime_call+0x619/0x80a
> >> (XEN)    [<ffff82d0801673ba>] do_platform_op+0xb76/0x1a14
> >> (XEN)    [<ffff82d08012ce6a>] _spin_lock+0x11/0x52
> >> (XEN)    [<ffff82d08018ad0c>] stime2tsc+0x78/0x82
> >> (XEN)    [<ffff82d08023abda>] lstar_enter+0xda/0x134
> >> (XEN)
> >> (XEN) Pagetable walk from 00000000cea9727b:
> >> (XEN)  L4[0x000] = 0000000216cb6063 ffffffffffffffff
> >> (XEN)  L3[0x003] = 00000000cfca4063 ffffffffffffffff
> >> (XEN)  L2[0x075] = 00000000ce9ff063 ffffffffffffffff
> >> (XEN)  L1[0x097] = 80000000cea97163 00000000000d15e5
> >> (XEN)
> >> (XEN) ****************************************
> >> (XEN) Panic on CPU 3:
> >> (XEN) FATAL PAGE FAULT
> >> (XEN) [error_code=0011]
> >> (XEN) Faulting linear address: 00000000cea9727b
> >> (XEN) ****************************************
> >> (XEN)
> >> (XEN) Reboot in five seconds...
> >
> > We added a bunch of overrides that may help.
> >
> > The address looks to be for:
> >  (XEN)  00000cea97000-00000ceaacfff type=4 attr=000000000000000f
> >
> > Which is of EfiBootServicesData
> >
> > Try on the Xen.efi command line to use /mapbs
> >
> > You may have to install first EFI Shell Manager and then from there
> > execute the xen.efi /mapbs
> >
> 
> So I installed ShellBinPkg from TianoCore and got their UEFI Shell
> 2.1. I've kicked it off with both "xen-4.6-unstable.efi /mapbs" and
> "xen-4.6-unstable.efi -mapbs" but it doesn't make a difference. It
> fails the same way as above.

OK, there is one more thing which I sadly have to use on my Lenovo
T420. See the inline patch and attached patch.

I end up doing xen.efi -basevideo -mapbs -noexitboot


From 938d98b7a7e4b3b6c7a05b2f20046e457750dec1 Mon Sep 17 00:00:00 2001
From: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Date: Tue, 27 Jan 2015 14:04:30 -0500
Subject: [PATCH 2/2] EFI/early: Implement GetNextVariableName and /query and
 /noexitboot parameters

In the early EFI boot we will enumerate up to five EFI variables
to make sure it works.

The /query will just enumerate them and then quit. Helps in
troubleshooting and redirecting the output to a file (xen.efi /query > q).

The /noexitboot will inhibit Xen from calling ExitBootServices.
This allows on Lenovo ThinkPad x230, T420 to use GetNextVariableName
in 1-1 mapping mode.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
---
 xen/common/efi/boot.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 88 insertions(+), 3 deletions(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 75a939f..20146e5 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -682,6 +682,74 @@ static void __init setup_efi_pci(void)
     efi_bs->FreePool(handles);
 }
 
+static int __init efi_getnextvariable(bool_t query_only)
+{
+    EFI_GUID guid;
+    UINTN i, size, idx;
+    CHAR16 *name;
+    EFI_STATUS status;
+
+
+    status = efi_bs->AllocatePool(EfiLoaderData, 1024, (void *)&name);
+    if ( EFI_ERROR(status) )
+        return status;
+
+    guid.Data1 = 0;
+    guid.Data2 = 0;
+    guid.Data3 = 0;
+    for ( i = 0; i < 8; i++ )
+        guid.Data4[i] = 0;
+
+    for ( i = 0 ; i < 1024 / sizeof (CHAR16); i++ )
+        name[i] = 0;
+
+    PrintStr(L"GetNextVariableName: ");
+    PrintStr(name);
+    PrintStr(newline);
+    idx = 0;
+    do {
+        size = 1024;
+        efi_rs->GetNextVariableName(&size, name, &guid);
+        if ( EFI_ERROR(status) )
+        {
+            if ( query_only )
+            {
+                efi_bs->FreePool(name);
+                PrintErrMesg(L"Failed to GetNextVariableName", status);
+            }
+            else
+            {
+                PrintStr(L"Warning: GetNextVariableName: ");
+                DisplayUint(status, 0);
+                PrintStr(newline);
+            }
+        }
+        else
+        {
+            DisplayUint(guid.Data1, 4);
+            DisplayUint(guid.Data2, 2);
+            DisplayUint(guid.Data3, 2);
+            for ( i = 0; i < 8; i++ )
+                DisplayUint(guid.Data4[i], 1);
+
+            PrintStr(L":");
+            PrintStr(name);
+            PrintStr(L" ");
+            DisplayUint(status, 0);
+            PrintStr(newline);
+        }
+    } while ( !EFI_ERROR(status) && idx++ < 5 );
+
+    efi_bs->FreePool(name);
+
+    if ( query_only )
+        return -EINVAL;
+
+    if ( EFI_ERROR(EFI_NOT_FOUND) )
+        return 0;
+
+    return status;
+}
 static int __init __maybe_unused set_color(u32 mask, int bpp, u8 *pos, u8 *sz)
 {
    if ( bpp < 0 )
@@ -714,8 +782,10 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE 
*SystemTable)
     EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *mode_info;
     union string section = { NULL }, name;
     bool_t base_video = 0, retry;
+    bool_t query_only = 0;
     char *option_str;
     bool_t use_cfg_file;
+    bool_t exit_boot_services = 1;
 
     efi_ih = ImageHandle;
     efi_bs = SystemTable->BootServices;
@@ -763,6 +833,10 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE 
*SystemTable)
                     base_video = 1;
                 else if ( wstrcmp(ptr + 1, L"mapbs") == 0 )
                     map_bs = 1;
+                else if ( wstrcmp(ptr + 1, L"query") == 0 )
+                    query_only = 1;
+                else if ( wstrcmp(ptr + 1, L"noexitboot") == 0 )
+                    exit_boot_services = 0;
                 else if ( wstrncmp(ptr + 1, L"cfg=", 4) == 0 )
                     cfg_file_name = ptr + 5;
                 else if ( i + 1 < argc && wstrcmp(ptr + 1, L"cfg") == 0 )
@@ -773,6 +847,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE 
*SystemTable)
                     PrintStr(L"Xen EFI Loader options:\r\n");
                     PrintStr(L"-basevideo   retain current video mode\r\n");
                     PrintStr(L"-mapbs       map 
EfiBootServices{Code,Data}\r\n");
+                    PrintStr(L"-noexitboot  do not call ExitBootServices\r\n");
+                    PrintStr(L"-query       call GetNextVariableName for up to 
five times\r\n");
                     PrintStr(L"-cfg=<file>  specify configuration file\r\n");
                     PrintStr(L"-help, -?    display this help\r\n");
                     blexit(NULL);
@@ -1049,6 +1125,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE 
*SystemTable)
         PrintStr(newline);
     }
 
+    if ( efi_getnextvariable(query_only) )
+       blexit(L"Could not get next variable");
+
     efi_arch_memory_setup();
 
     if ( gop )
@@ -1087,9 +1166,15 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE 
*SystemTable)
 
         efi_arch_pre_exit_boot();
 
-        status = SystemTable->BootServices->ExitBootServices(ImageHandle,
-                                                             map_key);
-        efi_bs = NULL;
+        if ( exit_boot_services )
+        {
+            status = SystemTable->BootServices->ExitBootServices(ImageHandle,
+                                                                 map_key);
+            efi_bs = NULL;
+        }
+        else
+            status = 0;
+
         if ( status != EFI_INVALID_PARAMETER || retry )
             break;
     }
-- 
2.1.0


> 
> -- 
> Doug Goldstein

Attachment: 0002-EFI-early-Implement-GetNextVariableName-and-query-an.patch
Description: Text document

_______________________________________________
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®.