From: Alexander Graf <agraf@suse.de>
To: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
Peter Maydell <peter.maydell@linaro.org>
Cc: "qemu-ppc@nongnu.org" <qemu-ppc@nongnu.org>,
qemu-devel <qemu-devel@nongnu.org>
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 [thread overview]
Message-ID: <5492E8D6.3040503@suse.de> (raw)
In-Reply-To: <5492DCAB.4050907@ilande.co.uk>
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 <agraf@suse.de> 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
next prev parent reply other threads:[~2014-12-18 14:47 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-17 10:17 [Qemu-devel] Unable to loadvm on qemu-system-ppc -M g3beige (keyboard freeze) Mark Cave-Ayland
2014-12-17 10:23 ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2014-12-17 10:47 ` Mark Cave-Ayland
2014-12-17 11:11 ` Alexander Graf
2014-12-17 11:23 ` Peter Maydell
2014-12-18 13:54 ` Mark Cave-Ayland
2014-12-18 14:46 ` Alexander Graf [this message]
2014-12-18 15:13 ` Peter Maydell
2014-12-18 21:36 ` Mark Cave-Ayland
2014-12-18 23:01 ` Alexander Graf
2014-12-19 10:53 ` Mark Cave-Ayland
2014-12-19 12:29 ` Peter Maydell
2014-12-19 14:12 ` Mark Cave-Ayland
2014-12-19 14:29 ` Peter Maydell
2014-12-19 16:15 ` Mark Cave-Ayland
2014-12-19 16:35 ` Peter Maydell
2014-12-19 16:51 ` Mark Cave-Ayland
2014-12-19 17:16 ` Alexander Graf
2014-12-19 17:29 ` Paolo Bonzini
2014-12-19 17:45 ` Alexander Graf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5492E8D6.3040503@suse.de \
--to=agraf@suse.de \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).