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: Mark Cave-Ayland
Subject: Re: [Qemu-devel] [Qemu-ppc] Unable to loadvm on qemu-system-ppc -M g3beige (keyboard freeze)
Date: Thu, 18 Dec 2014 13:54:51 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.3.0

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?


ATB,

Mark.




reply via email to

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