qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Qemu-ppc] Unable to loadvm on qemu-system-ppc -M g3bei


From: Alexander Graf
Subject: Re: [Qemu-devel] [Qemu-ppc] Unable to loadvm on qemu-system-ppc -M g3beige (keyboard freeze)
Date: Thu, 18 Dec 2014 15:46:46 +0100
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.3.0


On 18.12.14 14:54, Mark Cave-Ayland wrote:
> On 17/12/14 11:23, Peter Maydell wrote:
> 
>> On 17 December 2014 at 11:11, Alexander Graf <address@hidden> wrote:
>>> Phew - 0.7.0 maybe? If you say that only CUDA is broken, I don't think
>>> it'd be too hard to fix :). Check that there are VMSTATEs for everything
>>> and maybe retrigger interrupts after migration.
>>
>> It shouldn't be necessary to retrigger anything post-migration:
>> the devices on both ends should both believe the interrupt is
>> asserted once they've loaded their state.
>>
>> Given how long it's been since this was known-working, it's
>> probably easiest just to compare the VMState structs against
>> the device structs for every device that might be vaguely
>> relevant, looking for missing fields.
> 
> Trying to figure out why my CUDA breakpoints weren't being hit, it turns
> out that the problem is even more fundamental than this. Check out the
> output of "info mtree" before and after a "loadvm" command:
> 
> BEFORE:
> (qemu) info mtree
> memory
> 0000000000000000-ffffffffffffffff (prio 0, RW): system
>   0000000000000000-0000000007ffffff (prio 0, RW): ppc_heathrow.ram
>   0000000080000000-00000000fdffffff (prio 0, RW): alias pci-hole
> @pci-mmio 0000000080000000-00000000fdffffff
>   00000000f0000510-00000000f0000511 (prio 0, RW): fwcfg.ctl
>   00000000f0000512-00000000f0000512 (prio 0, RW): fwcfg.data
>   00000000fe000000-00000000fe1fffff (prio 0, RW): alias isa_mmio @io
> 0000000000000000-00000000001fffff
>   00000000fec00000-00000000fec00fff (prio 0, RW): pci-conf-idx
>   00000000fee00000-00000000fee00fff (prio 0, RW): pci-data-idx
>   00000000fff00000-00000000ffffffff (prio 0, R-): ppc_heathrow.bios
> I/O
> 0000000000000000-000000000000ffff (prio 0, RW): io
>   00000000000001ce-00000000000001ce (prio 0, RW): vbe
>   00000000000001d0-00000000000001d0 (prio 0, RW): vbe
>   00000000000003b4-00000000000003b5 (prio 0, RW): vga
>   00000000000003ba-00000000000003ba (prio 0, RW): vga
>   00000000000003c0-00000000000003cf (prio 0, RW): vga
>   00000000000003d4-00000000000003d5 (prio 0, RW): vga
>   00000000000003da-00000000000003da (prio 0, RW): vga
>   0000000000000400-00000000000004ff (prio 1, RW): ne2000
> grackle
> VGA
> ne2k_pci
> macio-oldworld
> aliases
> pci-mmio
> 0000000000000000-00000000ffffffff (prio 0, RW): pci-mmio
>   00000000000a0000-00000000000affff (prio 2, RW): alias vga.chain4
> @vga.vram 0000000000000000-000000000000ffff
>   00000000000a0000-00000000000bffff (prio 1, RW): vga-lowmem
>   0000000080000000-0000000080ffffff (prio 1, RW): vga.vram
>   0000000081000000-0000000081000fff (prio 1, RW): vga.mmio
>     0000000081000400-000000008100041f (prio 0, RW): vga ioports remapped
>     0000000081000500-0000000081000515 (prio 0, RW): bochs dispi interface
>     0000000081000600-0000000081000607 (prio 0, RW): qemu extended regs
>   0000000081010000-000000008101ffff (prio 1, RW): vga.rom
>   0000000081040000-000000008107ffff (prio 1, RW): ne2000.rom
>   0000000081080000-00000000810fffff (prio 1, RW): macio
>     0000000081080000-0000000081080fff (prio 0, RW): heathrow-pic
>     0000000081088000-0000000081088fff (prio 0, RW): dbdma
>     0000000081092000-00000000810920ff (prio 0, RW): escc-legacy
>       0000000081092000-0000000081092001 (prio 0, RW): alias
> escc-legacy-port @escc-bar 0000000000000000-0000000000000001
>       0000000081092002-0000000081092003 (prio 0, RW): alias
> escc-legacy-port @escc-bar 0000000000000020-0000000000000021
>       0000000081092004-0000000081092005 (prio 0, RW): alias
> escc-legacy-port @escc-bar 0000000000000010-0000000000000011
>       0000000081092006-0000000081092007 (prio 0, RW): alias
> escc-legacy-port @escc-bar 0000000000000030-0000000000000031
>       0000000081092008-0000000081092009 (prio 0, RW): alias
> escc-legacy-port @escc-bar 0000000000000040-0000000000000041
>       000000008109200a-000000008109200b (prio 0, RW): alias
> escc-legacy-port @escc-bar 0000000000000050-0000000000000051
>       0000000081092060-0000000081092061 (prio 0, RW): alias
> escc-legacy-port @escc-bar 0000000000000060-0000000000000061
>       0000000081092070-0000000081092071 (prio 0, RW): alias
> escc-legacy-port @escc-bar 0000000000000070-0000000000000071
>       0000000081092080-0000000081092081 (prio 0, RW): alias
> escc-legacy-port @escc-bar 0000000000000070-0000000000000071
>       0000000081092090-0000000081092091 (prio 0, RW): alias
> escc-legacy-port @escc-bar 0000000000000080-0000000000000081
>       00000000810920a0-00000000810920a1 (prio 0, RW): alias
> escc-legacy-port @escc-bar 0000000000000090-0000000000000091
>       00000000810920b0-00000000810920b1 (prio 0, RW): alias
> escc-legacy-port @escc-bar 00000000000000a0-00000000000000a1
>       00000000810920c0-00000000810920c1 (prio 0, RW): alias
> escc-legacy-port @escc-bar 00000000000000b0-00000000000000b1
>       00000000810920d0-00000000810920d1 (prio 0, RW): alias
> escc-legacy-port @escc-bar 00000000000000c0-00000000000000c1
>       00000000810920e0-00000000810920e1 (prio 0, RW): alias
> escc-legacy-port @escc-bar 00000000000000d0-00000000000000d1
>       00000000810920f0-00000000810920f1 (prio 0, RW): alias
> escc-legacy-port @escc-bar 00000000000000e0-00000000000000e1
>     0000000081093000-000000008109303f (prio 0, RW): alias escc-bar @escc
> 0000000000000000-000000000000003f
>     0000000081096000-0000000081097fff (prio 0, RW): cuda
>     00000000810a0000-00000000810a0fff (prio 0, RW): pmac-ide
>     00000000810a1000-00000000810a1fff (prio 0, RW): pmac-ide
>     00000000810e0000-00000000810fffff (prio 0, RW): macio-nvram
> io
> 0000000000000000-000000000000ffff (prio 0, RW): io
>   00000000000001ce-00000000000001ce (prio 0, RW): vbe
>   00000000000001d0-00000000000001d0 (prio 0, RW): vbe
>   00000000000003b4-00000000000003b5 (prio 0, RW): vga
>   00000000000003ba-00000000000003ba (prio 0, RW): vga
>   00000000000003c0-00000000000003cf (prio 0, RW): vga
>   00000000000003d4-00000000000003d5 (prio 0, RW): vga
>   00000000000003da-00000000000003da (prio 0, RW): vga
>   0000000000000400-00000000000004ff (prio 1, RW): ne2000
> vga.vram
> 0000000080000000-0000000080ffffff (prio 1, RW): vga.vram
> escc-bar
> 0000000000013000-000000000001303f (prio 0, RW): alias escc-bar @escc
> 0000000000000000-000000000000003f
> escc
> 0000000000000000-000000000000003f (prio 0, RW): escc
> 
> 
> AFTER:
> (qemu) info mtree
> memory
> 0000000000000000-ffffffffffffffff (prio 0, RW): system
>   0000000000000000-0000000007ffffff (prio 0, RW): ppc_heathrow.ram
>   0000000080000000-00000000fdffffff (prio 0, RW): alias pci-hole
> @pci-mmio 0000000080000000-00000000fdffffff
>   00000000f0000510-00000000f0000511 (prio 0, RW): fwcfg.ctl
>   00000000f0000512-00000000f0000512 (prio 0, RW): fwcfg.data
>   00000000fe000000-00000000fe1fffff (prio 0, RW): alias isa_mmio @io
> 0000000000000000-00000000001fffff
>   00000000fec00000-00000000fec00fff (prio 0, RW): pci-conf-idx
>   00000000fee00000-00000000fee00fff (prio 0, RW): pci-data-idx
>   00000000fff00000-00000000ffffffff (prio 0, R-): ppc_heathrow.bios
> I/O
> 0000000000000000-000000000000ffff (prio 0, RW): io
>   00000000000001ce-00000000000001ce (prio 0, RW): vbe
>   00000000000001d0-00000000000001d0 (prio 0, RW): vbe
>   00000000000003b4-00000000000003b5 (prio 0, RW): vga
>   00000000000003ba-00000000000003ba (prio 0, RW): vga
>   00000000000003c0-00000000000003cf (prio 0, RW): vga
>   00000000000003d4-00000000000003d5 (prio 0, RW): vga
>   00000000000003da-00000000000003da (prio 0, RW): vga
>   0000000000000400-00000000000004ff (prio 1, RW): ne2000
> grackle
> VGA
> ne2k_pci
> macio-oldworld
> aliases
> pci-mmio
> 0000000000000000-00000000ffffffff (prio 0, RW): pci-mmio
>   00000000000a0000-00000000000bffff (prio 1, RW): vga-lowmem
>   0000000080000000-0000000080ffffff (prio 1, RW): vga.vram
>   0000000081000000-0000000081000fff (prio 1, RW): vga.mmio
>     0000000081000400-000000008100041f (prio 0, RW): vga ioports remapped
>     0000000081000500-0000000081000515 (prio 0, RW): bochs dispi interface
>     0000000081000600-0000000081000607 (prio 0, RW): qemu extended regs
>   0000000081010000-000000008101ffff (prio 1, RW): vga.rom
>   0000000081040000-000000008107ffff (prio 1, RW): ne2000.rom
> io
> 0000000000000000-000000000000ffff (prio 0, RW): io
>   00000000000001ce-00000000000001ce (prio 0, RW): vbe
>   00000000000001d0-00000000000001d0 (prio 0, RW): vbe
>   00000000000003b4-00000000000003b5 (prio 0, RW): vga
>   00000000000003ba-00000000000003ba (prio 0, RW): vga
>   00000000000003c0-00000000000003cf (prio 0, RW): vga
>   00000000000003d4-00000000000003d5 (prio 0, RW): vga
>   00000000000003da-00000000000003da (prio 0, RW): vga
>   0000000000000400-00000000000004ff (prio 1, RW): ne2000
> 
> 
> So it looks like several of the device MemoryRegions aren't being added
> after the "loadvm". Does this mean there is an object lifecycle issue
> here in that some of the initialisation needs to be done in realizefn
> rather than initfn or vice-versa?

I always thought we're going through both - initfn and realizefn with
normal system boot as well as vmstate load.

So that means that the additional mappings above must be runtime
creations that aren't saved and restored properly.


Alex



reply via email to

[Prev in Thread] Current Thread [Next in Thread]