qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] qemu-ppc (prep) crashes with NetBSD guest


From: Alexander Graf
Subject: Re: [Qemu-devel] qemu-ppc (prep) crashes with NetBSD guest
Date: Thu, 15 Aug 2013 16:04:22 +0200

On 15.08.2013, at 15:39, Gerd Hoffmann wrote:

>  Hi,
> 
>>> # qemu-system-ppc -nographic -M prep -m 128M -hda hda.qcow2 -cdrom 
>>> NetBSD-6.1-prep.iso -serial ... -kernel sysinst_com0.fs
>>> 
>>> There seems to be a connection between the amount of RAM chosen
>>> and the point where the crash happens. With 128M, qemu will crash
>>> when the installer extracts some of the earlier packages, with 256M
>>> the crash will happen later when extracting. Each one is
>>> reproducible at the exact point of installation. And the amount of
>>> bytes extracted could be the amount of RAM minus some number. (64M
>>> and >256MB won't boot at all, so I could not finish
>>> installation...)
> 
>>> Would be great if someone (also with a current qemu) could have a 
>>> look, as I did not even manage to get a core file...
>> 
>> Gerd, this seems to be vbe related and you're the only person I know
>> who might have a clue what's going on there :). Based on where the
>> VGA code was crashing I came up with the following patch, but I'd
>> assume the underlying issue is somewhere else.
> 
> Most likely it's somewhere else, yes.  I put my money on someone writing
> random yunk into the vga's mmio bar, maybe due to netbsd not detecting
> memory correctly.

Well, the piece I'm mostly wary of here is that junk can memset() beyond 
boundaries. Maybe junk can also explicitly bitblt beyond boundaries and thus 
overwrite host memory? That'd be pretty nasty.

> What does 'info mtree' in the monitor print?

(qemu) info mtree
memory
0000000000000000-7ffffffffffffffe (prio 0, RW): system
  0000000000000000-0000000007ffffff (prio 0, RW): ppc_prep.ram
  0000000001000000-0000000001ffffff (prio 1, RW): vga.vram
  0000000002010000-0000000002010fff (prio 1, RW): vga.mmio
    0000000002010400-000000000201041f (prio 0, RW): vga ioports remapped
    0000000002010500-0000000002010515 (prio 0, RW): bochs dispi interface
  0000000080000000-00000000807fffff (prio 0, RW): ppc-io
  0000000080800000-0000000080bfffff (prio 0, RW): pciio
  00000000bffffff0-00000000bffffff0 (prio 0, RW): pci-intack
  00000000c00a0000-00000000c00affff (prio 2, RW): alias vga.chain4 @vga.vram 
0000000000000000-000000000000ffff
  00000000c00a0000-00000000c00bffff (prio 1, RW): vga-lowmem
  00000000fff00000-00000000ffffffff (prio 0, R-): ppc_prep.bios
I/O
0000000000000000-000000000000ffff (prio 0, RW): io
  0000000000000000-0000000000000007 (prio 0, RW): dma-chan
  0000000000000008-000000000000000f (prio 0, RW): dma-cont
  0000000000000020-0000000000000021 (prio 0, RW): pic
  0000000000000040-0000000000000043 (prio 0, RW): pit
  0000000000000060-0000000000000060 (prio 0, RW): i8042-data
  0000000000000061-0000000000000061 (prio 0, RW): elcr
  0000000000000064-0000000000000064 (prio 0, RW): i8042-cmd
  0000000000000070-0000000000000071 (prio 0, RW): rtc
  0000000000000074-0000000000000077 (prio 0, RW): m48t59
  0000000000000081-0000000000000083 (prio 0, RW): alias dma-page @dma-page 
0000000000000081-0000000000000083
  0000000000000087-0000000000000087 (prio 0, RW): alias dma-page @dma-page 
0000000000000087-0000000000000087
  0000000000000089-000000000000008b (prio 0, RW): alias dma-page @dma-page 
0000000000000089-000000000000008b
  000000000000008f-000000000000008f (prio 0, RW): alias dma-page @dma-page 
000000000000008f-000000000000008f
  00000000000000a0-00000000000000a1 (prio 0, RW): pic
  00000000000000c0-00000000000000cf (prio 0, RW): dma-chan
  00000000000000d0-00000000000000df (prio 0, RW): dma-cont
  0000000000000170-0000000000000177 (prio 0, RW): alias ide @ide 
0000000000000170-0000000000000177
  00000000000001ce-00000000000001ce (prio 0, RW): alias vbe @vbe 
00000000000001ce-00000000000001ce
  00000000000001d0-00000000000001d0 (prio 0, RW): alias vbe @vbe 
00000000000001d0-00000000000001d0
  00000000000001f0-00000000000001f7 (prio 0, RW): alias ide @ide 
00000000000001f0-00000000000001f7
  00000000000002f8-00000000000002ff (prio 0, RW): serial
  0000000000000300-000000000000031f (prio 0, RW): ne2000
  0000000000000376-0000000000000376 (prio 0, RW): alias ide @ide 
0000000000000376-0000000000000376
  0000000000000398-0000000000000399 (prio 0, RW): pc87312
  00000000000003b4-00000000000003b5 (prio 0, RW): alias vga @vga 
00000000000003b4-00000000000003b5
  00000000000003ba-00000000000003ba (prio 0, RW): alias vga @vga 
00000000000003ba-00000000000003ba
  00000000000003bc-00000000000003c3 (prio 0, RW): alias parallel @parallel 
00000000000003bc-00000000000003c3
  00000000000003c0-00000000000003cf (prio 0, RW): alias vga @vga 
00000000000003c0-00000000000003cf
  00000000000003d4-00000000000003d5 (prio 0, RW): alias vga @vga 
00000000000003d4-00000000000003d5
  00000000000003da-00000000000003da (prio 0, RW): alias vga @vga 
00000000000003da-00000000000003da
  00000000000003f1-00000000000003f5 (prio 0, RW): alias fdc @fdc 
00000000000003f1-00000000000003f5
  00000000000003f6-00000000000003f6 (prio 0, RW): alias ide @ide 
00000000000003f6-00000000000003f6
  00000000000003f7-00000000000003f7 (prio 0, RW): alias fdc @fdc 
00000000000003f7-00000000000003f7
  00000000000003f8-00000000000003ff (prio 0, RW): serial
  0000000000000481-0000000000000483 (prio 0, RW): alias dma-pageh @dma-pageh 
0000000000000481-0000000000000483
  0000000000000487-0000000000000489 (prio 0, RW): alias dma-pageh @dma-pageh 
0000000000000487-0000000000000489
  0000000000000489-000000000000048b (prio 0, RW): alias dma-pageh @dma-pageh 
0000000000000489-000000000000048b
  000000000000048f-0000000000000491 (prio 0, RW): alias dma-pageh @dma-pageh 
000000000000048f-0000000000000491
  00000000000004d0-00000000000004d0 (prio 0, RW): elcr
  00000000000004d1-00000000000004d1 (prio 0, RW): elcr
  0000000000000cf8-0000000000000cf8 (prio 0, RW): pci-conf-idx
  0000000000000cfc-0000000000000cfc (prio 0, RW): pci-conf-data
raven
0000000000000000-7ffffffffffffffe (prio 0, RW): alias bus master @system 
0000000000000000-7ffffffffffffffe
i82378
0000000000000000-7ffffffffffffffe (prio 0, RW): alias bus master @system 
0000000000000000-7ffffffffffffffe
VGA
0000000000000000-7ffffffffffffffe (prio 0, RW): alias bus master @system 
0000000000000000-7ffffffffffffffe
aliases
vga.vram
0000000001000000-0000000001ffffff (prio 1, RW): vga.vram
dma-page
0000000000000000-7ffffffffffffffe (prio 0, RW): dma-page
dma-page
0000000000000000-7ffffffffffffffe (prio 0, RW): dma-page
dma-page
0000000000000000-7ffffffffffffffe (prio 0, RW): dma-page
dma-page
0000000000000000-7ffffffffffffffe (prio 0, RW): dma-page
ide
0000000000000000-7ffffffffffffffe (prio 0, RW): ide
vbe
0000000000000000-7ffffffffffffffe (prio 0, RW): vbe
vbe
0000000000000000-7ffffffffffffffe (prio 0, RW): vbe
ide
0000000000000000-7ffffffffffffffe (prio 0, RW): ide
ide
0000000000000000-7ffffffffffffffe (prio 0, RW): ide
vga
0000000000000000-7ffffffffffffffe (prio 0, RW): vga
vga
0000000000000000-7ffffffffffffffe (prio 0, RW): vga
parallel
0000000000000000-7ffffffffffffffe (prio 0, RW): parallel
vga
0000000000000000-7ffffffffffffffe (prio 0, RW): vga
vga
0000000000000000-7ffffffffffffffe (prio 0, RW): vga
vga
0000000000000000-7ffffffffffffffe (prio 0, RW): vga
fdc
0000000000000000-7ffffffffffffffe (prio 0, RW): fdc
ide
0000000000000000-7ffffffffffffffe (prio 0, RW): ide
fdc
0000000000000000-7ffffffffffffffe (prio 0, RW): fdc
dma-pageh
0000000000000000-7ffffffffffffffe (prio 0, RW): dma-pageh
dma-pageh
0000000000000000-7ffffffffffffffe (prio 0, RW): dma-pageh
dma-pageh
0000000000000000-7ffffffffffffffe (prio 0, RW): dma-pageh
dma-pageh
0000000000000000-7ffffffffffffffe (prio 0, RW): dma-pageh
system
0000000000000000-7ffffffffffffffe (prio 0, RW): system
  0000000000000000-0000000007ffffff (prio 0, RW): ppc_prep.ram
  0000000001000000-0000000001ffffff (prio 1, RW): vga.vram
  0000000002010000-0000000002010fff (prio 1, RW): vga.mmio
    0000000002010400-000000000201041f (prio 0, RW): vga ioports remapped
    0000000002010500-0000000002010515 (prio 0, RW): bochs dispi interface
  0000000080000000-00000000807fffff (prio 0, RW): ppc-io
  0000000080800000-0000000080bfffff (prio 0, RW): pciio
  00000000bffffff0-00000000bffffff0 (prio 0, RW): pci-intack
  00000000c00a0000-00000000c00affff (prio 2, RW): alias vga.chain4 @vga.vram 
0000000000000000-000000000000ffff
  00000000c00a0000-00000000c00bffff (prio 1, RW): vga-lowmem
  00000000fff00000-00000000ffffffff (prio 0, R-): ppc_prep.bios

> 
> If you append '-global VGA.mmio=0' to the qemu command line, does that
> change behavior?

Yup, that makes it work. -vga none also works btw ;).


Alex




reply via email to

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