On 14 October 2012 01:04, Christoffer Dall <c.dall@xxxxxxxxxxxxxxxxxxxxxx> wrote: > We need this two factor initialization step to support a sane user space > initialization of the emulated model. We simply follow the names of the > ioctls for the internal vgic implementation steps and check if we have > everything we need on the host side when we create the vgic and set up > the rest on init. With this patch I find that KVM_INIT_IRQCHIP fails EEXIST because it's hitting the check in kvm_vgic_init() that online_vcpus is 0. I think this check should be removed now as INIT_IRQCHIP will always happen late, after we've created vcpus. (The patch puts this check in kvm_vgic_create() so I guess I'm saying the check should be moved rather than copied.) On the other hand, I removed that check, and the host kernel oopses: Unable to handle kernel paging request at virtual address 78656e75 pgd = dea94c80 [78656e75] *pgd=00000000 Internal error: Oops: 205 [#1] SMP ARM CPU: 1 Tainted: G W (3.6.0+ #87) PC is at vsnprintf+0x38/0x400 LR is at panic+0x60/0x1dc pc : [<c01bb7c4>] lr : [<c037eb98>] psr: 20000093 sp : de145df0 ip : de145e6c fp : 00000020 r10: c04c3dd4 r9 : 00000000 r8 : de145e6c r7 : 00000000 r6 : cfdfdfdf r5 : 00000000 r4 : 78656e75 r3 : de145e6c r2 : 78656e75 r1 : 00000400 r0 : c04c3dd4 Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user Control: 30c5387d Table: 9ea94c80 DAC: 00000000 Process qemu-system-arm (pid: 1078, stack limit = 0xde1442f8) Stack: (0xde145df0 to 0xde146000) 5de0: 00030003 c006a07c 00000000 00000001 5e00: c038830c c04c3dd4 00000400 00000000 00000000 00000000 00000001 c04c3db0 5e20: 00000000 cfdfdfdf 00000000 00000000 00000000 00000001 de1642c4 c037eb98 5e40: 00000000 de145e6c fffffce0 00000000 cfdfdfdf 00000000 00000000 00000000 5e60: 00000001 c0022ac8 78656e75 c0022ac8 00000000 00000000 de144000 00000001 5e80: 00000002 00000000 00000000 00010000 9eacc000 00000000 7ffbfeff fffffffe 5ea0: 00000000 de164000 dea96600 00000000 de144000 00000000 00000000 0000ae80 5ec0: b63da6a4 c001ef5c 00000001 00000002 00000000 c00689a4 00000000 c003c794 5ee0: de073ec4 0000000a de400e18 00000000 dea96600 0000000b c000ed08 de144000 5f00: 00000000 c00c36fc fffffffa 00000434 00000000 c04c3618 c04974c0 c006cdf4 5f20: 00000100 3fb69f7c 00000000 00000004 00000084 7fffffff 00000001 00000001 5f40: 00000081 00000000 00000001 007bc068 de144000 00000000 b63da6a4 c0069418 5f60: 00000002 dea96600 00000000 0000ae80 0000000b c000ed08 de144000 00000000 5f80: b63da6a4 c00c3ca8 00000002 00000001 00000000 b63da470 00000000 00000000 5fa0: 00000036 c000eb80 b63da470 00000000 0000000b 0000ae80 00000000 0000ae80 5fc0: b63da470 00000000 00000000 00000036 00000000 00000000 beab7628 b63da6a4 5fe0: 0037e250 b63d9d6c 00290181 b6d9c2ec 600f0010 0000000b dfdfdfcf cfdfdfdf [<c01bb7c4>] (vsnprintf+0x38/0x400) from [<c037eb98>] (panic+0x60/0x1dc) [<c037eb98>] (panic+0x60/0x1dc) from [<c0022ac8>] (kvm_arch_vcpu_ioctl_run+0xe8/0x404) [<c0022ac8>] (kvm_arch_vcpu_ioctl_run+0xe8/0x404) from [<c001ef5c>] (kvm_vcpu_ioctl+0x4d0/0x6a0) [<c001ef5c>] (kvm_vcpu_ioctl+0x4d0/0x6a0) from [<c00c36fc>] (do_vfs_ioctl+0x84/0x5f8) [<c00c36fc>] (do_vfs_ioctl+0x84/0x5f8) from [<c00c3ca8>] (sys_ioctl+0x38/0x5c) [<c00c3ca8>] (sys_ioctl+0x38/0x5c) from [<c000eb80>] (ret_fast_syscall+0x0/0x30) Code: ba0000e5 e59da014 e3a0b020 e59d1018 (e5d23000) ---[ end trace 1b75b31a2719ed1e ]--- QEMU test code is here: git://git.linaro.org/people/pmaydell/qemu-arm.git kvm-arm-dev-addr-test thanks -- PMM -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html