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

Re: [Xen-devel] pv-grub boot hangs when iommu=soft. Booting kernel directly with the flags works. MiniOS screws around with page flags.



On Tue, Jul 06, 2010 at 09:06:26AM -0700, Bruce Edge wrote:
> On Wed, Apr 7, 2010 at 9:57 AM, Samuel Thibault <
> samuel.thibault@xxxxxxxxxxxx> wrote:
> 
> > listmail, le Wed 07 Apr 2010 12:53:19 -0400, a écrit :
> > > "If the 'iommu=soft swiotlb=force' is removed it boots"
> > >
> > > but in actuality,  "switotlb=force" can be left in and it boots ok as
> > well.
> > > From what I've see it is only when having "iommu=soft" added in that
> > > exposes the issue.
> >
> > Ok, so the problem really is the combination of pv-grub and iommu=soft.
> >
> 
> Any update on this problem?

Thanks for reminding me. I fixed one problem (where the 'vfb' would hang
pv-grub) but have't addressed this one.

Here is what I get:


Bootstrapping...
Xen Minimal OS!
  start_info: 0xb9d000(VA)
    nr_pages: 0x40000
  shared_inf: 0xb45ff000(MA)
     pt_base: 0xba0000(VA)
nr_pt_frames: 0xb
    mfn_list: 0x99d000(VA)
   mod_start: 0x0(VA)
     mod_len: 0
       flags: 0x0
    cmd_line: (hd0,0)/grub/menu.lst
  stack:      0x95c980-0x97c980
MM: Init
      _text: 0x0(VA)
     _etext: 0x6bf94(VA)
   _erodata: 0x86000(VA)
     _edata: 0x8eae0(VA)
stack start: 0x95c980(VA)
       _end: 0x99cf88(VA)
  start_pfn: bae
    max_pfn: 40000
Mapping memory range 0x1000000 - 0x40000000
setting 0x0-0x86000 readonly
skipped 0x1000
MM: Initialise page allocator for da6000(da6000)-40000000(40000000)
MM: done
Demand map pfns at 40001000-2040001000.
Heap resides at 2040002000-4040002000.
Initialising timer interface
Initialising console ... done.
gnttab_table mapped at 0x40001000.
Initialising scheduler
Thread "Idle": pointer: 0x2040002050, stack: 0xfc0000
Initialising xenbus
Thread "xenstore": pointer: 0x2040002800, stack: 0xfd0000
Dummy main: start_info=0x97ca80
Thread "main": pointer: 0x2040002fb0, stack: 0xfe0000
Thread "pcifront": pointer: 0x2040003760, stack: 0xff0000
pcifront_watches: waiting for backend path to appear device/pci/0/backend
vbd 51712 is hd0
******************* BLKFRONT for device/vbd/51712 **********


backend at /local/domain/0/backend/vbd/6/51712
[ 9955.307884] blkback: ring-ref 2047, event-channel 4, protocol 1 (x86_64-abi)
Failed to read /local/domain/0/backend/vbd/6/51712/feature-flush-cache.
41943040 sectors of 512 bytes
**************************
Thread "kbdfront": pointer: 0x2040004590, stack: 0x1000000
******************* FBFRONT for device/vfb/0 **********


******************* KBDFRONT for device/vkbd/0 **********


backend at /local/domain/0/backend/vkbd/6/0
/local/domain/0/backend/vkbd/6/0 connected
************************** KBDFRONT
Thread "kbdfront" exited.
backend at /local/domain/0/backend/vfb/6/0
/local/domain/0/backend/vfb/6/0 connected
************************** FBFRONT
[ 9966.656265] vif6.0: no IPv6 routers present
[ 9971.301098] switch: port 2(vif6.0) entering forwarding state
Thread "kbdfront close": pointer: 0x2040004590, stack: 0x1000000
close fb: backend at /local/domain/0/backend/vfb/6/0
close kbd: backend at /local/domain/0/backend/vkbd/6/0
Thread "kbdfront close" exited.
close blk: backend=/local/domain/0/backend/vbd/6/51712 node=device/vbd/51712
[ 9974.405828] frontend_changed: backend/vbd/6/51712: prepare for reconnect
go!
mapping kernel into physical memory
about to get started...
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 2.6.34NEB (root@xxxxxxxxxxxxxxxxx) (gcc version 
4.4.4 20100503 (Red Hat 4.4.4-2) (GCC) ) #2 SMP Fri Jun 25 15:01:02 EDT 2010
[    0.000000] Command line: ro root=/dev/mapper/vg_vs03-lv_root 
rd_LVM_LV=vg_vs03/lv_root rd_LVM_LV=vg_vs03/lv_swap rd_NO_LUKS rd_NO_MD 
rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us debug 
earlyprintk=xen console=hvc0 iommu=swiotlb swiotlb=force
[    0.000000] ACPI in unprivileged domain disabled
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  Xen: 0000000000000000 - 00000000000a0000 (usable)
[    0.000000]  Xen: 00000000000a0000 - 0000000000100000 (reserved)
[    0.000000]  Xen: 0000000000100000 - 0000000040000000 (usable)
[    0.000000] bootconsole [xenboot0] enabled
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI not present or invalid.
[    0.000000] e820 update range: 0000000000000000 - 0000000000001000 (usable) 
==> (reserved)
[    0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
[    0.000000] No AGP bridge found
[    0.000000] last_pfn = 0x40000 max_arch_pfn = 0x400000000
[    0.000000] e820 update range: 0000000000001000 - 0000000000010000 (usable) 
==> (reserved)
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] modified physical RAM map:
[    0.000000]  modified: 0000000000000000 - 0000000000010000 (reserved)
[    0.000000]  modified: 0000000000010000 - 00000000000a0000 (usable)
[    0.000000]  modified: 00000000000a0000 - 0000000000100000 (reserved)
[    0.000000]  modified: 0000000000100000 - 0000000040000000 (usable)
[    0.000000] initial memory mapped : 0 - 20000000
[    0.000000] init_memory_mapping: 0000000000000000-0000000040000000
[    0.000000]  0000000000 - 0040000000 page 4k
[    0.000000] kernel direct mapping tables up to 40000000 @ 100000-302000
[    0.000000] RAMDISK: 01a23000 - 024c0000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at 0000000000000000-0000000040000000
[    0.000000] Initmem setup node 0 0000000000000000-0000000040000000
[    0.000000]   NODE_DATA [0000000001a02180 - 0000000001a0717f]
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000010 -> 0x00001000
[    0.000000]   DMA32    0x00001000 -> 0x00100000
[    0.000000]   Normal   empty
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[2] active PFN ranges
[    0.000000]     0: 0x00000010 -> 0x000000a0
[    0.000000]     0: 0x00000100 -> 0x00040000
[    0.000000] On node 0 totalpages: 262032
[    0.000000]   DMA zone: 56 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 3928 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 3528 pages used for memmap
[    0.000000]   DMA32 zone: 254520 pages, LIFO batch:31
[    0.000000] SMP: Allowing 4 CPUs, 0 hotplug CPUs
[    0.000000] No local APIC present
[    0.000000] APIC: disable apic facility
[    0.000000] APIC: switched to apic NOOP
[    0.000000] nr_irqs_gsi: 16
[    0.000000] early_res array is doubled to 64 at [16000 - 167ff]
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 0000000000100000
[    0.000000] Allocating PCI resources starting at 40000000 (gap: 
40000000:c0000000)
[    0.000000] Booting paravirtualized kernel on Xen
[    0.000000] Xen version: 4.1-100622 (preserve-AD)
[    0.000000] setup_percpu: NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:4 
nr_node_ids:1
[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff8800026da000 s84776 r8192 
d21720 u114688
[    0.000000] pcpu-alloc: s84776 r8192 d21720 u114688 alloc=28*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] trying to map vcpu_info 0 at ffff8800026e5020, mfn 1425c9, 
offset 32
[    0.000000] cpu 0 using vcpu_info at ffff8800026e5020
[    0.000000] trying to map vcpu_info 1 at ffff880002701020, mfn 1425ad, 
offset 32
[    0.000000] cpu 1 using vcpu_info at ffff880002701020
[    0.000000] trying to map vcpu_info 2 at ffff88000271d020, mfn 142591, 
offset 32
[    0.000000] cpu 2 using vcpu_info at ffff88000271d020
[    0.000000] trying to map vcpu_info 3 at ffff880002739020, mfn 142575, 
offset 32
[    0.000000] cpu 3 using vcpu_info at ffff880002739020
[    0.000000] Xen: using vcpu_info placement
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total 
pages: 258448
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: ro root=/dev/mapper/vg_vs03-lv_root 
rd_LVM_LV=vg_vs03/lv_root rd_LVM_LV=vg_vs03/lv_swap rd_NO_LUKS rd_NO_MD 
rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us debug 
earlyprintk=xen console=hvc0 iommu=swiotlb swiotlb=force
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
(XEN) mm.c:4137:d6 Bad page 00000000001331a9: ed=ffff83033ffc0000(6), 
sd=ffff83033ffc0000, caf=8000000000000002, taf=7400000000000001
(XEN) mm.c:4137:d6 Bad page 00000000001331a9: ed=ffff83033ffc0000(6), 
sd=ffff83033ffc0000, caf=8000000000000002, taf=7400000000000001
(XEN) mm.c:4137:d6 Bad page 00000000001331a9: ed=ffff83033ffc0000(6), 
sd=ffff83033ffc0000, caf=8000000000000002, taf=7400000000000001
(XEN) mm.c:4137:d6 Bad page 00000000001331a9: ed=ffff83033ffc0000(6), 
sd=ffff83033ffc0000, caf=8000000000000002, taf=7400000000000001
(XEN) mm.c:4137:d6 Bad page 00000000001331a9: ed=ffff83033ffc0000(6), 
sd=ffff83033ffc0000, caf=8000000000000002, taf=7400000000000001
(XEN) mm.c:4137:d6 Bad page 00000000001331a9: ed=ffff83033ffc0000(6), 
sd=ffff83033ffc0000, caf=8000000000000002, taf=7400000000000001
[    0.000000] Kernel panic - not syncing: DMA(-12): Failed to exchange pages 
allocated for DMA with Xen! We either don\047t have the permission or you do 
not have enoughfree memory under 4GB!
[    0.000000] 
[    0.000000] Pid: 0, comm: swapper Not tainted 2.6.34NEB #2
[    0.000000] Call Trace:
[    0.000000]  [<ffffffff8145373c>] panic+0x73/0xee
[    0.000000]  [<ffffffff810052c2>] ? xen_create_contiguous_region+0xd3/0xee
[    0.000000]  [<ffffffff818c6946>] xen_swiotlb_init+0x10a/0x142
[    0.000000]  [<ffffffff8145cf35>] ? _etext+0x0/0x3
[    0.000000]  [<ffffffff818a5763>] pci_xen_swiotlb_init+0x17/0x24
[    0.000000]  [<ffffffff818a808f>] pci_iommu_alloc+0x2f/0x36
[    0.000000]  [<ffffffff818b5c05>] mem_init+0x19/0xec
[    0.000000]  [<ffffffff818a1b7c>] start_kernel+0x1ce/0x3ae
[    0.000000]  [<ffffffff818a12c8>] x86_64_start_reservations+0xb3/0xb7
[    0.000000]  [<ffffffff818a437b>] xen_start_kernel+0x54b/0x54f
[    0.000000] BUG: unable to handle kernel NULL pointer dereference at 
0000000000000008
[    0.000000] IP: [<ffffffff8122b7c0>] xen_evtchn_do_upcall+0xe5/0x19a
[    0.000000] PGD 0 
[    0.000000] Oops: 0000 [#1] SMP 
[    0.000000] last sysfs file: 
[    0.000000] CPU 0 
[    0.000000] Modules linked in:
[    0.000000] 
[    0.000000] Pid: 0, comm: swapper Not tainted 2.6.34NEB #2 /
[    0.000000] RIP: e030:[<ffffffff8122b7c0>]  [<ffffffff8122b7c0>] 
xen_evtchn_do_upcall+0xe5/0x19a
[    0.000000] RSP: e02b:ffff8800026ddf28  EFLAGS: 00010002
[    0.000000] RAX: 0000000000000000 RBX: 00000000000114e0 RCX: 0000000000000002
[    0.000000] RDX: 0000000000000100 RSI: 0000000000000000 RDI: 0000000000000000
[    0.000000] RBP: ffff8800026ddfa8 R08: 0000000000000000 R09: ffffffff81801e38
[    0.000000] R10: 0000000000000006 R11: 0000000000000000 R12: ffffffffffffffff
[    0.000000] R13: 0000000000000000 R14: ffffffffff57a000 R15: 00000000000114e0
[    0.000000] FS:  0000000000000000(0000) GS:ffff8800026da000(0000) 
knlGS:0000000000000000
[    0.000000] CS:  e033 DS: 0000 ES: 0000 CR0: 000000008005003b
[    0.000000] CR2: 0000000000000008 CR3: 0000000001811000 CR4: 0000000000002660
[    0.000000] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[    0.000000] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[    0.000000] Process swapper (pid: 0, threadinfo ffffffff81800000, task 
ffffffff81819020)
[    0.000000] Stack:
[    0.000000]  0000000000000000 0000000000000000 0000000000000140 
0000000000000000
[    0.000000] <0> ffff8800026e5028 0000000000000000 0000000000000000 
0000000000000100
[    0.000000] <0> ffff8800026e5020 0000000000000000 0000000000000000 
0000000000000001
[    0.000000] Call Trace:
[    0.000000]  <IRQ> 
[    0.000000]  [<ffffffff8100a92e>] xen_do_hypervisor_callback+0x1e/0x30
[    0.000000]  <EOI> 
[    0.000000]  [<ffffffff8100122a>] ? hypercall_page+0x22a/0x1006
[    0.000000]  [<ffffffff8100122a>] ? hypercall_page+0x22a/0x1006
[    0.000000]  [<ffffffff81041f74>] ? release_console_sem+0x18f/0x1c7
[    0.000000]  [<ffffffff8100647d>] ? xen_force_evtchn_callback+0xd/0xf
[    0.000000]  [<ffffffff81006b52>] ? check_events+0x12/0x20
[    0.000000]  [<ffffffff81006af9>] ? xen_irq_enable_direct_end+0x0/0x7
[    0.000000]  [<ffffffff814537b0>] ? panic+0xe7/0xee
[    0.000000]  [<ffffffff810052c2>] ? xen_create_contiguous_region+0xd3/0xee
[    0.000000]  [<ffffffff818c6946>] ? xen_swiotlb_init+0x10a/0x142
[    0.000000]  [<ffffffff8145cf35>] ? _etext+0x0/0x3
[    0.000000]  [<ffffffff818a5763>] ? pci_xen_swiotlb_init+0x17/0x24
[    0.000000]  [<ffffffff818a808f>] ? pci_iommu_alloc+0x2f/0x36
[    0.000000]  [<ffffffff818b5c05>] ? mem_init+0x19/0xec
[    0.000000]  [<ffffffff818a1b7c>] ? start_kernel+0x1ce/0x3ae
[    0.000000]  [<ffffffff818a12c8>] ? x86_64_start_reservations+0xb3/0xb7
[    0.000000]  [<ffffffff818a437b>] ? xen_start_kernel+0x54b/0x54f
[    0.000000] Code: 00 00 00 89 55 ac 48 8d 90 40 01 00 00 48 05 00 01 00 00 
48 89 4d 98 48 89 45 b8 48 89 55 90 eb 2c 48 0f bc c9 03 4d ac 48 63 c9 <8b> 14 
88 83 fa ff 74 f8 89 d7 89 55 88 e8 59 92 e5 ff 48 85 c0 
[    0.000000] RIP  [<ffffffff8122b7c0>] xen_evtchn_do_upcall+0xe5/0x19a
[    0.000000]  RSP <ffff8800026ddf28>
[    0.000000] CR2: 0000000000000008
[    0.000000] ---[ end trace 4eaa2a86a8e2da22 ]---
[    0.000000] Kernel panic - not syncing: Fatal exception in interrupt
[    0.000000] Pid: 0, comm: swapper Tainted: G      D    2.6.34NEB #2
[    0.000000] Call Trace:
[    0.000000]  <IRQ>  [<ffffffff8145373c>] panic+0x73/0xee
[    0.000000]  [<ffffffff814565c0>] oops_end+0xb7/0xc7
[    0.000000]  [<ffffffff8102d91b>] no_context+0x1f7/0x206
[    0.000000]  [<ffffffff8102daa9>] __bad_area_nosemaphore+0x17f/0x1a2
[    0.000000]  [<ffffffff8102dada>] bad_area_nosemaphore+0xe/0x10
[    0.000000]  [<ffffffff81458617>] do_page_fault+0x18b/0x2a3
[    0.000000]  [<ffffffff81455a75>] page_fault+0x25/0x30
[    0.000000]  [<ffffffff8122b7c0>] ? xen_evtchn_do_upcall+0xe5/0x19a
[    0.000000]  [<ffffffff8122b745>] ? xen_evtchn_do_upcall+0x6a/0x19a
[    0.000000]  [<ffffffff8100a92e>] xen_do_hypervisor_callback+0x1e/0x30
[    0.000000]  <EOI>  [<ffffffff8100122a>] ? hypercall_page+0x22a/0x1006
[    0.000000]  [<ffffffff8100122a>] ? hypercall_page+0x22a/0x1006
[    0.000000]  [<ffffffff81041f74>] ? release_console_sem+0x18f/0x1c7
[    0.000000]  [<ffffffff8100647d>] ? xen_force_evtchn_callback+0xd/0xf
[    0.000000]  [<ffffffff81006b52>] ? check_events+0x12/0x20
[    0.000000]  [<ffffffff81006af9>] ? xen_irq_enable_direct_end+0x0/0x7
[    0.000000]  [<ffffffff814537b0>] ? panic+0xe7/0xee
[    0.000000]  [<ffffffff810052c2>] ? xen_create_contiguous_region+0xd3/0xee
[    0.000000]  [<ffffffff818c6946>] ? xen_swiotlb_init+0x10a/0x142
[    0.000000]  [<ffffffff8145cf35>] ? _etext+0x0/0x3
[    0.000000]  [<ffffffff818a5763>] ? pci_xen_swiotlb_init+0x17/0x24
[    0.000000]  [<ffffffff818a808f>] ? pci_iommu_alloc+0x2f/0x36
[    0.000000]  [<ffffffff818b5c05>] ? mem_init+0x19/0xec
[    0.000000]  [<ffffffff818a1b7c>] ? start_kernel+0x1ce/0x3ae
[    0.000000]  [<ffffffff818a12c8>] ? x86_64_start_reservations+0xb3/0xb7
[    0.000000]  [<ffffffff818a437b>] ? xen_start_kernel+0x54b/0x54f


I wonder if this is a similar problem that another user of Xen has
reported when they use blktap with pv-grub - it puts some weird flags
on the I/O pages so during shutdown the guest is in a weird state..


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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