* [Qemu-devel] Re: [Qemu-commits] [COMMIT 0bd8246] vga: do not resize the screen on hw_invalidate [not found] <200908102147.n7ALlBHB029958@d03av04.boulder.ibm.com> @ 2009-08-11 11:48 ` Avi Kivity 2009-08-11 11:56 ` Avi Kivity 2009-08-11 13:20 ` Stefano Stabellini 0 siblings, 2 replies; 8+ messages in thread From: Avi Kivity @ 2009-08-11 11:48 UTC (permalink / raw) To: Anthony Liguori, Stefano Stabellini; +Cc: qemu-devel On 08/11/2009 12:48 AM, Anthony Liguori wrote: > From: Stefano Stabellini<stefano.stabellini@eu.citrix.com> > > Hi all, > currently vga always resizes the screen when vga_hw_invalidate is called > while this is not required and all the other graphic emulators don't. > This patch fixes it, making vga invalidate behaviour consistent with the > other emulated devices. > > This commit causes qemu to segfault in kvm-autotest: #0 0x000000000043b3f9 in vga_draw_line24_32 (s1=<value optimized out>, d=0x7f57c3096000 <Address 0x7f57c3096000 out of bounds>, s=0x7f57c31f6077 "", width=<value optimized out>) at /home/avi/qemu-kvm/hw/vga_template.h:484 #1 0x000000000043ec7f in vga_draw_graphic (full_update=1) at /home/avi/qemu-kvm/hw/vga.c:1767 #2 vga_update_display (opaque=<value optimized out>) at /home/avi/qemu-kvm/hw/vga.c:1864 #3 0x00000000004cc202 in vnc_refresh (opaque=0x7f57c31f6077) at vnc.c:2120 #4 0x000000000040a552 in qemu_run_timers () at /home/avi/qemu-kvm/vl.c:1030 #5 main_loop_wait (timeout=<value optimized out>) at /home/avi/qemu-kvm/vl.c:4121 #6 0x0000000000421faa in kvm_main_loop () at /home/avi/qemu-kvm/qemu-kvm.c:2001 #7 0x000000000040d2c6 in main_loop () at /home/avi/qemu-kvm/vl.c:4291 #8 main (argc=21, argv=0x7ffff181f088, envp=<value optimized out>) at /home/avi/qemu-kvm/vl.c:6225 kvm-autotest runs the screendump command repeatedly, perhaps this will provide a clue as to the cause. I've reverted it in qemu-kvm.git. -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: [Qemu-commits] [COMMIT 0bd8246] vga: do not resize the screen on hw_invalidate 2009-08-11 11:48 ` [Qemu-devel] Re: [Qemu-commits] [COMMIT 0bd8246] vga: do not resize the screen on hw_invalidate Avi Kivity @ 2009-08-11 11:56 ` Avi Kivity 2009-08-11 13:20 ` Stefano Stabellini 1 sibling, 0 replies; 8+ messages in thread From: Avi Kivity @ 2009-08-11 11:56 UTC (permalink / raw) To: Anthony Liguori, Stefano Stabellini; +Cc: qemu-devel On 08/11/2009 02:48 PM, Avi Kivity wrote: > On 08/11/2009 12:48 AM, Anthony Liguori wrote: >> From: Stefano Stabellini<stefano.stabellini@eu.citrix.com> >> >> Hi all, >> currently vga always resizes the screen when vga_hw_invalidate is called >> while this is not required and all the other graphic emulators don't. >> This patch fixes it, making vga invalidate behaviour consistent with the >> other emulated devices. >> > > This commit causes qemu to segfault in kvm-autotest: > > #0 0x000000000043b3f9 in vga_draw_line24_32 (s1=<value optimized > out>, d=0x7f57c3096000 <Address 0x7f57c3096000 out of bounds>, > s=0x7f57c31f6077 "", > width=<value optimized out>) at > /home/avi/qemu-kvm/hw/vga_template.h:484 > #1 0x000000000043ec7f in vga_draw_graphic (full_update=1) at > /home/avi/qemu-kvm/hw/vga.c:1767 > #2 vga_update_display (opaque=<value optimized out>) at > /home/avi/qemu-kvm/hw/vga.c:1864 > #3 0x00000000004cc202 in vnc_refresh (opaque=0x7f57c31f6077) at > vnc.c:2120 > #4 0x000000000040a552 in qemu_run_timers () at > /home/avi/qemu-kvm/vl.c:1030 > #5 main_loop_wait (timeout=<value optimized out>) at > /home/avi/qemu-kvm/vl.c:4121 > #6 0x0000000000421faa in kvm_main_loop () at > /home/avi/qemu-kvm/qemu-kvm.c:2001 > #7 0x000000000040d2c6 in main_loop () at /home/avi/qemu-kvm/vl.c:4291 > #8 main (argc=21, argv=0x7ffff181f088, envp=<value optimized out>) at > /home/avi/qemu-kvm/vl.c:6225 > > kvm-autotest runs the screendump command repeatedly, perhaps this will > provide a clue as to the cause. I've reverted it in qemu-kvm.git. > btw, the crash occurs immediately after the fedora installer switches to graphics mode. -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: [Qemu-commits] [COMMIT 0bd8246] vga: do not resize the screen on hw_invalidate 2009-08-11 11:48 ` [Qemu-devel] Re: [Qemu-commits] [COMMIT 0bd8246] vga: do not resize the screen on hw_invalidate Avi Kivity 2009-08-11 11:56 ` Avi Kivity @ 2009-08-11 13:20 ` Stefano Stabellini 2009-08-11 13:37 ` Avi Kivity 1 sibling, 1 reply; 8+ messages in thread From: Stefano Stabellini @ 2009-08-11 13:20 UTC (permalink / raw) To: Avi Kivity; +Cc: Anthony Liguori, qemu-devel, Stefano Stabellini On Tue, 11 Aug 2009, Avi Kivity wrote: > On 08/11/2009 12:48 AM, Anthony Liguori wrote: > > From: Stefano Stabellini<stefano.stabellini@eu.citrix.com> > > > > Hi all, > > currently vga always resizes the screen when vga_hw_invalidate is called > > while this is not required and all the other graphic emulators don't. > > This patch fixes it, making vga invalidate behaviour consistent with the > > other emulated devices. > > > > > > This commit causes qemu to segfault in kvm-autotest: > > #0 0x000000000043b3f9 in vga_draw_line24_32 (s1=<value optimized out>, > d=0x7f57c3096000 <Address 0x7f57c3096000 out of bounds>, > s=0x7f57c31f6077 "", > width=<value optimized out>) at > /home/avi/qemu-kvm/hw/vga_template.h:484 > #1 0x000000000043ec7f in vga_draw_graphic (full_update=1) at > /home/avi/qemu-kvm/hw/vga.c:1767 > #2 vga_update_display (opaque=<value optimized out>) at > /home/avi/qemu-kvm/hw/vga.c:1864 > #3 0x00000000004cc202 in vnc_refresh (opaque=0x7f57c31f6077) at vnc.c:2120 > #4 0x000000000040a552 in qemu_run_timers () at /home/avi/qemu-kvm/vl.c:1030 > #5 main_loop_wait (timeout=<value optimized out>) at > /home/avi/qemu-kvm/vl.c:4121 > #6 0x0000000000421faa in kvm_main_loop () at > /home/avi/qemu-kvm/qemu-kvm.c:2001 > #7 0x000000000040d2c6 in main_loop () at /home/avi/qemu-kvm/vl.c:4291 > #8 main (argc=21, argv=0x7ffff181f088, envp=<value optimized out>) at > /home/avi/qemu-kvm/vl.c:6225 > > kvm-autotest runs the screendump command repeatedly, perhaps this will > provide a clue as to the cause. I've reverted it in qemu-kvm.git. > is the screendump taken using a vnc screendump utility or is it done by issuing the screendump command from the monitor? ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: [Qemu-commits] [COMMIT 0bd8246] vga: do not resize the screen on hw_invalidate 2009-08-11 13:20 ` Stefano Stabellini @ 2009-08-11 13:37 ` Avi Kivity 2009-08-11 13:36 ` Anthony Liguori 2009-08-11 13:39 ` Stefano Stabellini 0 siblings, 2 replies; 8+ messages in thread From: Avi Kivity @ 2009-08-11 13:37 UTC (permalink / raw) To: Stefano Stabellini; +Cc: Anthony Liguori, qemu-devel On 08/11/2009 04:20 PM, Stefano Stabellini wrote: > is the screendump taken using a vnc screendump utility or is it done by > issuing the screendump command from the monitor? > The screendump command from the monitor. -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: [Qemu-commits] [COMMIT 0bd8246] vga: do not resize the screen on hw_invalidate 2009-08-11 13:37 ` Avi Kivity @ 2009-08-11 13:36 ` Anthony Liguori 2009-08-11 13:39 ` Stefano Stabellini 1 sibling, 0 replies; 8+ messages in thread From: Anthony Liguori @ 2009-08-11 13:36 UTC (permalink / raw) To: Avi Kivity; +Cc: qemu-devel, Stefano Stabellini Avi Kivity wrote: > On 08/11/2009 04:20 PM, Stefano Stabellini wrote: >> is the screendump taken using a vnc screendump utility or is it done by >> issuing the screendump command from the monitor? >> > > The screendump command from the monitor. As an aside, could we make screendump just work with the current DisplayState instead of trying to install a new one? That would eliminate this entire class of bugs... -- Regards, Anthony Liguori ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: [Qemu-commits] [COMMIT 0bd8246] vga: do not resize the screen on hw_invalidate 2009-08-11 13:37 ` Avi Kivity 2009-08-11 13:36 ` Anthony Liguori @ 2009-08-11 13:39 ` Stefano Stabellini 2009-08-11 14:06 ` Avi Kivity 1 sibling, 1 reply; 8+ messages in thread From: Stefano Stabellini @ 2009-08-11 13:39 UTC (permalink / raw) To: Avi Kivity; +Cc: Anthony Liguori, qemu-devel, Stefano Stabellini On Tue, 11 Aug 2009, Avi Kivity wrote: > On 08/11/2009 04:20 PM, Stefano Stabellini wrote: > > is the screendump taken using a vnc screendump utility or is it done by > > issuing the screendump command from the monitor? > > > > The screendump command from the monitor. > Then you must also have at least a vnc client always connected to vnc, right? Because in the trace you posted before there is a call from vnc_refresh, and that should happen only when there are vnc clients connected. ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: [Qemu-commits] [COMMIT 0bd8246] vga: do not resize the screen on hw_invalidate 2009-08-11 13:39 ` Stefano Stabellini @ 2009-08-11 14:06 ` Avi Kivity 2009-08-11 14:16 ` Stefano Stabellini 0 siblings, 1 reply; 8+ messages in thread From: Avi Kivity @ 2009-08-11 14:06 UTC (permalink / raw) To: Stefano Stabellini; +Cc: Anthony Liguori, qemu-devel On 08/11/2009 04:39 PM, Stefano Stabellini wrote: > On Tue, 11 Aug 2009, Avi Kivity wrote: > >> On 08/11/2009 04:20 PM, Stefano Stabellini wrote: >> >>> is the screendump taken using a vnc screendump utility or is it done by >>> issuing the screendump command from the monitor? >>> >>> >> The screendump command from the monitor. >> >> > > Then you must also have at least a vnc client always connected to vnc, > right? > Because in the trace you posted before there is a call from vnc_refresh, > and that should happen only when there are vnc clients connected. > I observed this even without a vnc client connected (kvm-autotest + lunch). -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] Re: [Qemu-commits] [COMMIT 0bd8246] vga: do not resize the screen on hw_invalidate 2009-08-11 14:06 ` Avi Kivity @ 2009-08-11 14:16 ` Stefano Stabellini 0 siblings, 0 replies; 8+ messages in thread From: Stefano Stabellini @ 2009-08-11 14:16 UTC (permalink / raw) To: Avi Kivity; +Cc: Anthony Liguori, qemu-devel, Stefano Stabellini On Tue, 11 Aug 2009, Avi Kivity wrote: > On 08/11/2009 04:39 PM, Stefano Stabellini wrote: > > On Tue, 11 Aug 2009, Avi Kivity wrote: > > > >> On 08/11/2009 04:20 PM, Stefano Stabellini wrote: > >> > >>> is the screendump taken using a vnc screendump utility or is it done by > >>> issuing the screendump command from the monitor? > >>> > >>> > >> The screendump command from the monitor. > >> > >> > > > > Then you must also have at least a vnc client always connected to vnc, > > right? > > Because in the trace you posted before there is a call from vnc_refresh, > > and that should happen only when there are vnc clients connected. > > > > I observed this even without a vnc client connected (kvm-autotest + lunch). > If a vnc client is connected and a resize event happens while we are taking a screendump, we loose the resize event in vnc and we end up with a DisplaySurface of the wrong size. The same thing could happen without vnc client connected because we are not handling resize events in the screen_dump code at all. I am going to take Anthony suggestion and refactor the screen_dump code to use the DisplayState interface properly. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2009-08-11 14:14 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <200908102147.n7ALlBHB029958@d03av04.boulder.ibm.com> 2009-08-11 11:48 ` [Qemu-devel] Re: [Qemu-commits] [COMMIT 0bd8246] vga: do not resize the screen on hw_invalidate Avi Kivity 2009-08-11 11:56 ` Avi Kivity 2009-08-11 13:20 ` Stefano Stabellini 2009-08-11 13:37 ` Avi Kivity 2009-08-11 13:36 ` Anthony Liguori 2009-08-11 13:39 ` Stefano Stabellini 2009-08-11 14:06 ` Avi Kivity 2009-08-11 14:16 ` Stefano Stabellini
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).