On Fri, May 11, 2012 at 01:41:43PM -0700, Brendan Conoboy wrote:
On 05/11/2012 01:04 PM, Richard W.M. Jones wrote:
>Has anyone tried to debug our Fedora/arm kernels under qemu-system-arm?
>(In this case, the host is also arm, but I don't think that matters.)
Richard,
FYI, we as of a few hours ago have nearly-official F17-beta images
for versatile express on the following page:
http://scotland.proximity.on.ca/arm-nightlies/
There's a link for vexpress and vexpress+x rootfs images. A second
link provides a kernel, initramfs, and script for starting qemu.
Note that vexpress is much faster than versatile and allows more ram
(1GB). Recommend you try this out!
So one issue appears to be lack of PCI support (according to Linaro's
notes:
https://wiki.linaro.org/PeterMaydell/QemuVersatileExpress).
Unfortunately all of the virtio hardware is PCI-based, so it doesn't
seem like this is going to work for the virt tools :-(
Having said that, virtio with the current Fedora ARM kernels doesn't
work either (see below). This appears to be a problem with qemu not
setting up the PCI config space sensibly. I'm still investigating.
Rich.
[...]
[ 2.360640] PCI core found (slot 11)
[ 2.367644] PCI host bridge to bus 0000:00
[ 2.371144] pci_bus 0000:00: root bus resource [io 0x44000000-0x4fffffff]
[ 2.374066] pci_bus 0000:00: root bus resource [mem 0x50000000-0x5fffffff]
[ 2.374751] pci_bus 0000:00: root bus resource [mem 0x60000000-0x6fffffff pref]
[ 2.393315] PCI: bus0: Fast back to back transfers disabled
[ 2.405189] PCI map irq: slot 0, pin 1, devslot 12, irq: 27
[ 2.406686] PCI map irq: slot 0, pin 1, devslot 13, irq: 27
[ 2.407285] PCI map irq: slot 0, pin 1, devslot 14, irq: 27
[ 2.413989] pci 0000:00:0d.0: BAR 0: assigned [io 0x44000000-0x4400003f]
[ 2.416204] pci 0000:00:0e.0: BAR 0: assigned [io 0x44000040-0x4400007f]
[ 2.417221] pci 0000:00:0c.0: BAR 0: assigned [io 0x44000080-0x4400009f]
[ 2.516011] bio: create slab <bio-0> at 0
[ 2.538118] vgaarb: loaded
[ 2.551547] SCSI subsystem initialized
[ 2.566105] usbcore: registered new interface driver usbfs
[ 2.568507] usbcore: registered new interface driver hub
[ 2.573128] usbcore: registered new device driver usb
[ 2.623191] NetLabel: Initializing
[ 2.623702] NetLabel: domain hash size = 128
[ 2.624088] NetLabel: protocols = UNLABELED CIPSOv4
[ 2.631777] NetLabel: unlabeled traffic allowed by default
[ 2.646556] Switching to clocksource timer3
[ 3.165976] NET: Registered protocol family 2
[ 3.176617] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 3.201008] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[ 3.203937] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[ 3.206121] TCP: Hash tables configured (established 8192 bind 8192)
[ 3.207154] TCP reno registered
[ 3.208383] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 3.212231] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 3.224129] NET: Registered protocol family 1
[ 3.252885] Unpacking initramfs...
[ 3.363403] Freeing initrd memory: 764K
[ 3.389097] audit: initializing netlink socket (disabled)
[ 3.393720] type=2000 audit(1.860:1): initialized
[ 4.616872] VFS: Disk quotas dquot_6.5.2
[ 4.623368] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 4.671602] msgmni has been set to 492
[ 4.782151] alg: No test for stdrng (krng)
[ 4.783383] NET: Registered protocol family 38
[ 4.792118] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[ 4.796706] io scheduler noop registered
[ 4.797383] io scheduler deadline registered
[ 4.800773] io scheduler cfq registered (default)
[ 4.824787] PCI: enabling device 0000:00:0c.0 (0100 -> 0101)
[ 4.829857] Unable to handle kernel paging request at virtual address 44000092
[ 4.830565] pgd = c0004000
[ 4.830912] [44000092] *pgd=00000000
[ 4.833083] Internal error: Oops: 805 [#1]
[ 4.834016] Modules linked in:
[ 4.835742] CPU: 0 Not tainted (3.3.4-4.fc17.armv7hl #1)
[ 4.838653] PC is at vp_reset+0x14/0x64
The code is:
static void vp_reset(struct virtio_device *vdev)
{
struct virtio_pci_device *vp_dev = to_vp_device(vdev);
/* 0 status means a reset. */
iowrite8(0, vp_dev->ioaddr + VIRTIO_PCI_STATUS); <<--- here
// 0x44000080 + 0x12 == 0x44000092
[ 4.840141] LR is at register_virtio_device+0x4c/0x94
[ 4.841896] pc : [<c0230a08>] lr : [<c022fa48>] psr: 80000013
[ 4.841996] sp : cf82feb0 ip : 00000000 fp : 00000000
[ 4.845557] r10: c0649084 r9 : 00000000 r8 : 00000000
[ 4.847277] r7 : cf889860 r6 : 00000000 r5 : cfa50608 r4 : cfa50600
[ 4.849447] r3 : 44000080 r2 : 00000000 r1 : 0000002f r0 : cfa50600
[ 4.851825] Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 4.854292] Control: 00093177 Table: 00004000 DAC: 00000017
[ 4.856360] Process swapper (pid: 1, stack limit = 0xcf82e270)
[ 4.858594] Stack: (0xcf82feb0 to 0xcf830000)
[ 4.860942] fea0: c02309f4 cfa50600 cfa50608
c022fa48
[ 4.863691] fec0: 00000003 cfa50600 cf889800 c04277bc c04276bc cf889860 cf889800
c0648ff8
[ 4.866636] fee0: c0648fc8 c02138e0 c0213850 cf889860 c0648ff8 c0648ff8 c0260014
00000000
[ 4.869311] ff00: c05f51d8 c025fe98 c0648ff8 cf889860 cf889860 cf889894 c0648ff8
c0260084
[ 4.872680] ff20: 00000000 cf82ff30 c0648ff8 c025e590 cf8264cc cf8960f0 c0648ff8
c0648ff8
[ 4.875525] ff40: cfa4f7e0 c06488c8 c06488c8 c025f610 c0553c83 c0553c83 00000070
c0648ff8
[ 4.878504] ff60: c0648ff8 c000f288 c06488c8 00000000 c05f51d8 c0260590 c0649030
c0648fc8
[ 4.881452] ff80: c0648ff8 c000f288 c06488c8 00000000 c05f51d8 c0213ad0 cf82e000
c061e95c
[ 4.884427] ffa0: c061eaec c000f288 00000013 c0008874 c05f51d8 c05539dc c0667460
00000000
[ 4.887227] ffc0: c061e95c c061eaec c000f288 00000013 00000000 00000000 00000000
c05dc884
[ 4.890246] ffe0: 00000000 00000000 00000000 00000000 c05dc7f0 c000f288 00000000
00000000
[ 4.898225] [<c0230a08>] (vp_reset+0x14/0x64) from [<c022fa48>]
(register_virtio_device+0x4c/0x94)
[ 4.901667] [<c022fa48>] (register_virtio_device+0x4c/0x94) from
[<c04277bc>] (virtio_pci_probe+0x100/0x168)
[ 4.905157] [<c04277bc>] (virtio_pci_probe+0x100/0x168) from [<c02138e0>]
(pci_device_probe+0x90/0x120)
[ 4.909051] [<c02138e0>] (pci_device_probe+0x90/0x120) from [<c025fe98>]
(driver_probe_device+0x148/0x2c4)
[ 4.912494] [<c025fe98>] (driver_probe_device+0x148/0x2c4) from
[<c0260084>] (__driver_attach+0x70/0x94)
[ 4.915944] [<c0260084>] (__driver_attach+0x70/0x94) from [<c025e590>]
(bus_for_each_dev+0x50/0x88)
[ 4.919211] [<c025e590>] (bus_for_each_dev+0x50/0x88) from [<c025f610>]
(bus_add_driver+0x108/0x278)
[ 4.922554] [<c025f610>] (bus_add_driver+0x108/0x278) from [<c0260590>]
(driver_register+0xa4/0x128)
[ 4.925672] [<c0260590>] (driver_register+0xa4/0x128) from [<c0213ad0>]
(__pci_register_driver+0x40/0xbc)
[ 4.929041] [<c0213ad0>] (__pci_register_driver+0x40/0xbc) from
[<c0008874>] (do_one_initcall+0x98/0x170)
[ 4.932406] [<c0008874>] (do_one_initcall+0x98/0x170) from [<c05dc884>]
(kernel_init+0x94/0x134)
[ 4.935700] [<c05dc884>] (kernel_init+0x94/0x134) from [<c000f288>]
(kernel_thread_exit+0x0/0x8)
[ 4.939538] Code: e92d4000 e8bd4000 e5903184 e3a02000 (e5c32012)
[ 4.946406] ---[ end trace 0da3e76b87a358c1 ]---
[ 4.950652] Kernel panic - not syncing: Attempted to kill init!
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
New in Fedora 11: Fedora Windows cross-compiler. Compile Windows
programs, test, and build Windows installers. Over 70 libraries supprt'd
http://fedoraproject.org/wiki/MinGW http://www.annexia.org/fedora_mingw