On 06/17/2012 05:08 PM, Andreas Färber wrote: > Am 17.06.2012 10:37, schrieb Avi Kivity: >> On 06/16/2012 03:41 AM, Andreas Färber wrote: >>> Hi, >>> >>> After multiple runs of not-so-successful bisecting, it appears as if the >>> qom-next commit "qbus: Make child devices links" [1] is causing >>> assertions for both virtio-scsi and ahci but not for qemu-system-x86_64 >>> without parameters: >>> >>> $ x86_64-softmmu/qemu-system-x86_64 -enable-kvm -device >>> virtio-scsi-pci,id=mcbus >>> qemu-system-x86_64: /home/andreas/QEMU/qemu-rcar/memory.c:1259: >>> memory_region_add_subregion_common: Assertion `!subregion->parent' failed. >> >> A stack trace would be helpful, > > $ gdb --ex run --args x86_64-softmmu/qemu-system-x86_64 -enable-kvm > -device virtio-scsi-pci,id=mcbus > [...] > qemu-system-x86_64: /home/andreas/QEMU/qemu-rcar/memory.c:1259: > memory_region_add_subregion_common: Assertion `!subregion->parent' failed. > > Program received signal SIGABRT, Aborted. > 0x00007ffff5769d95 in raise () from /lib64/libc.so.6 > (gdb) bt > #0 0x00007ffff5769d95 in raise () from /lib64/libc.so.6 > #1 0x00007ffff576b2ab in abort () from /lib64/libc.so.6 > #2 0x00007ffff57628fe in __assert_fail_base () from /lib64/libc.so.6 > #3 0x00007ffff57629a2 in __assert_fail () from /lib64/libc.so.6 > #4 0x000055555576764c in memory_region_add_subregion_common ( > mr=<optimized out>, offset=<optimized out>, subregion=<optimized out>) > at /home/andreas/QEMU/qemu-rcar/memory.c:1259 > #5 memory_region_add_subregion_common (mr=<optimized out>, > offset=<optimized out>, subregion=<optimized out>) > at /home/andreas/QEMU/qemu-rcar/memory.c:1253 > #6 0x000055555574203f in apic_init (apic_id=0 '\000', env=0x555556468d90) > at /home/andreas/QEMU/qemu-rcar/hw/i386/../pc.c:911 > #7 pc_new_cpu (cpu_model=0x55555583aec3 "qemu64") > at /home/andreas/QEMU/qemu-rcar/hw/i386/../pc.c:948 > #8 pc_cpus_init (cpu_model=0x55555583aec3 "qemu64") > at /home/andreas/QEMU/qemu-rcar/hw/i386/../pc.c:969 > #9 0x0000555555742d6c in pc_init1 (system_memory=0x5555564627b0, system_io= > 0x555556462880, ram_size=134217728, boot_device=0x7fffffffdd50 "cad", > kernel_filename=0x0, kernel_cmdline=0x555555813c57 "", initrd_filename= > 0x0, cpu_model=0x0, pci_enabled=1, kvmclock_enabled=1) > at /home/andreas/QEMU/qemu-rcar/hw/i386/../pc_piix.c:151 > #10 0x00005555557437c8 in pc_init_pci (ram_size=134217728, boot_device= > 0x7fffffffdd50 "cad", kernel_filename=0x0, kernel_cmdline= > ---Type <return> to continue, or q <return> to quit--- > 0x555555813c57 "", initrd_filename=0x0, cpu_model=<optimized out>) > at /home/andreas/QEMU/qemu-rcar/hw/i386/../pc_piix.c:296 > #11 0x00005555555c3429 in main (argc=<optimized out>, argv=<optimized out>, > envp=<optimized out>) at /home/andreas/QEMU/qemu-rcar/vl.c:3517 > >> as well as a printout of what >> subregion->parent actually is. > > (gdb) select-frame 4 > (gdb) print subregion->parent > value has been optimized out > > Any suggestion?
--enable-debug or look for it in another frame or both > >> You can also run 'qemu mtree' from gdb after including scripts/qemu-gdb.py. > > Unfortunately neither the script nor the commit introducing it nor > Google offer any usage instructions... > > (gdb) include > Undefined command: "include". Try "help". > > (gdb) shell sh ../qemu-rcar/scripts/qemu-gdb.py > ^C(gdb) Quit (gdb) source /path/to/qemu/scripts/qemu-gdb.py (gdb) qemu mtree There is a facility to autoload those scripts, we should use it. > > BTW if some write is going wrong somewhere then this symptom here could > be just accidental. After all we don't seem to be changing any > MemoryRegion in this commit. > Right. If subregion->parent points at garbage then this would prove it. -- error compiling committee.c: too many arguments to function