qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Re: Another SIGFPE in display code, now in cirrus


From: Michael Tokarev
Subject: Re: [Qemu-devel] Re: Another SIGFPE in display code, now in cirrus
Date: Wed, 12 May 2010 23:12:54 +0400
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.9) Gecko/20100411 Icedove/3.0.4

12.05.2010 22:11, Stefano Stabellini wrote:
On Wed, 12 May 2010, Jamie Lokier wrote:
Stefano Stabellini wrote:
On Wed, 12 May 2010, Avi Kivity wrote:
It's useful if you have a one-line horizontal pattern you want to
propagate all over.

It might be useful all right, but it is not entirely clear what the
hardware should do in this situation from the documentation we have, and
certainly the current state of the cirrus emulation code doesn't help.

It's quite a reasonable thing for hardware to do, even if not documented.
It would be surprising if the hardware didn't copy the one-line pattern.

All right then, you convinced me :)

This is my proposed solution, however it is untested with Windows NT.

Well.  At least it does not crash anymore.

With this patch applied, when hitting "Test" (of a new video mode)
button on WindowsNT, the guest window gets resized to correct size,
but is painted with yellow and nothing happens.  The CPU enters
100%, and on the kvm console the following messages are displayed:

 BUG: kvm_dirty_pages_log_enable_slot: invalid parameters
 BUG: kvm_dirty_pages_log_enable_slot: invalid parameters

That's not new, it sometimes displays that shit on attempt to
migrate too, as I mentioned in another thread.

Thanks!

/mjt

diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 9f61a01..a7f0d3c 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -676,15 +676,17 @@ static void cirrus_do_copy(CirrusVGAState *s, int dst, 
int src, int w, int h)
      int sx, sy;
      int dx, dy;
      int width, height;
+    uint32_t start_addr, line_offset, line_compare;
      int depth;
      int notify = 0;
[...]



reply via email to

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