[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Funny -m arguments can crash
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] Funny -m arguments can crash |
Date: |
Fri, 27 Jul 2012 19:00:00 +0000 |
On Wed, Jul 25, 2012 at 11:49 AM, Markus Armbruster <address@hidden> wrote:
> Asking for "funny" memory sizes sometimes crashes for me. For instance
> -m 0.8 or the equivalent -m 838860b. -m 0.7 appears to work.
>
> Should we round memory sizes? How? Where?
We had a discussion about this recently:
http://lists.nongnu.org/archive/html/qemu-devel/2012-06/msg02800.html
>
>
>
> $ gdb --args qemu-system-x86_64 -nodefaults --enable-kvm -S -vnc :0 -monitor
> stdio -m 0.8
> [...]
> (gdb) r
> Starting program: /home/armbru/bin/upstream-qemu -nodefaults --enable-kvm -S
> -vnc :0 -monitor stdio -m 0.8
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
> [New Thread 0x7ffff6efe700 (LWP 29525)]
> upstream-qemu: /work/armbru/qemu/exec.c:2263: register_subpage: Assertion
> `existing->mr->subpage || existing->mr == &io_mem_unassigned' failed.
>
> Program received signal SIGABRT, Aborted.
> 0x00000033e0835965 in raise () from /lib64/libc.so.6
> [...]
> (gdb) bt
> #0 0x00000033e0835965 in raise () from /lib64/libc.so.6
> #1 0x00000033e0837118 in abort () from /lib64/libc.so.6
> #2 0x00000033e082e6e2 in __assert_fail_base () from /lib64/libc.so.6
> #3 0x00000033e082e792 in __assert_fail () from /lib64/libc.so.6
> #4 0x00000000006078fa in register_subpage (section=0x7fffffffd4e0)
> at /work/armbru/qemu/exec.c:2263
> #5 0x0000000000607b55 in cpu_register_physical_memory_log (section=
> 0x7fffffffd6a0, readonly=false) at /work/armbru/qemu/exec.c:2303
> #6 0x0000000000609d1c in core_region_nop (listener=0xac5e60, section=
> 0x7fffffffd6a0) at /work/armbru/qemu/exec.c:3183
> #7 0x0000000000667a58 in address_space_update_topology_pass (as=0x12fdca0,
> old_view=..., new_view=..., adding=true) at /work/armbru/qemu/memory.c:693
> #8 0x0000000000668045 in address_space_update_topology (as=0x12fdca0)
> at /work/armbru/qemu/memory.c:722
> #9 0x0000000000668147 in memory_region_update_topology (mr=0x0)
> at /work/armbru/qemu/memory.c:743
> #10 0x0000000000668252 in memory_region_transaction_commit ()
> at /work/armbru/qemu/memory.c:764
> #11 0x0000000000636612 in i440fx_update_memory_mappings (d=0x13a9310)
> at /work/armbru/qemu/hw/i386/../piix_pci.c:155
> #12 0x0000000000636db6 in i440fx_common_init (device_name=0x7ea470 "i440FX",
> pi440fx_state=0x7fffffffdb98, piix3_devfn=0x7fffffffdb88, isa_bus=
> 0x7fffffffdb90, pic=0x13a49c0, address_space_mem=0x1381150,
> address_space_io=0x1381220, ram_size=0, pci_hole_start=838860,
> pci_hole_size=4294128436, pci_hole64_start=4294967296, pci_hole64_size=
> 4611686018427387904, pci_address_space=0x13a4200, ram_memory=0x13a42b0)
> at /work/armbru/qemu/hw/i386/../piix_pci.c:330
> #13 0x0000000000636ea8 in i440fx_init (pi440fx_state=0x7fffffffdb98,
> piix3_devfn=0x7fffffffdb88, isa_bus=0x7fffffffdb90, pic=0x13a49c0,
> address_space_mem=0x1381150, address_space_io=0x1381220, ram_size=838860,
> pci_hole_start=838860, pci_hole_size=4294128436, pci_hole64_start=
> 4294967296, pci_hole64_size=4611686018427387904, pci_memory=0x13a4200,
> ram_memory=0x13a42b0) at /work/armbru/qemu/hw/i386/../piix_pci.c:349
> #14 0x000000000063469b in pc_init1 (system_memory=0x1381150, system_io=
> 0x1381220, ram_size=838860, boot_device=0x7fffffffdee0 "cad",
> kernel_filename=0x0, kernel_cmdline=0x7cad82 "", initrd_filename=0x0,
> cpu_model=0x0, pci_enabled=1, kvmclock_enabled=1)
> at /work/armbru/qemu/hw/i386/../pc_piix.c:193
> #15 0x0000000000634c0e in pc_init_pci (ram_size=838860, boot_device=
> 0x7fffffffdee0 "cad", kernel_filename=0x0, kernel_cmdline=0x7cad82 "",
> initrd_filename=0x0, cpu_model=0x0)
> at /work/armbru/qemu/hw/i386/../pc_piix.c:297
> #16 0x000000000057a89e in main (argc=10, argv=0x7fffffffe118, envp=
> 0x7fffffffe170) at /work/armbru/qemu/vl.c:3520
> (gdb) up 4
> #4 0x00000000006078fa in register_subpage (section=0x7fffffffd4e0)
> at /work/armbru/qemu/exec.c:2263
> 2263 assert(existing->mr->subpage || existing->mr ==
> &io_mem_unassigned);
> (gdb) p/x *section
> $1 = {mr = 0x1399860, address_space = 0x1381150, offset_within_region =
> 0xcccc, size = 0x334, offset_within_address_space = 0xccccc, readonly =
> 0x0}
>