qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/2] Move graphic-related coalesced MMIO flushes


From: Blue Swirl
Subject: Re: [Qemu-devel] [PATCH 1/2] Move graphic-related coalesced MMIO flushes to affected device models
Date: Sat, 15 Oct 2011 21:35:29 +0000

Thanks, applied both. I tested ARM and Sparc32 nographic modes which
IIRC were the problem previously, both seem to work fine.

On Fri, Sep 30, 2011 at 10:31 AM, Jan Kiszka <address@hidden> wrote:
> This is conceptually cleaner and will allow us to drop the nographic
> timer. Moreover, it will be mandatory to fully exploit future per-device
> coalesced MMIO rings.
>
> Signed-off-by: Jan Kiszka <address@hidden>
> ---
>  hw/g364fb.c |    4 ++++
>  hw/vga.c    |    4 ++++
>  vl.c        |    2 --
>  3 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/hw/g364fb.c b/hw/g364fb.c
> index b43341f..f00ee27 100644
> --- a/hw/g364fb.c
> +++ b/hw/g364fb.c
> @@ -245,6 +245,8 @@ static void g364fb_update_display(void *opaque)
>  {
>     G364State *s = opaque;
>
> +    qemu_flush_coalesced_mmio_buffer();
> +
>     if (s->width == 0 || s->height == 0)
>         return;
>
> @@ -297,6 +299,8 @@ static void g364fb_screen_dump(void *opaque, const char 
> *filename)
>     uint8_t *data_buffer;
>     FILE *f;
>
> +    qemu_flush_coalesced_mmio_buffer();
> +
>     if (s->depth != 8) {
>         error_report("g364: unknown guest depth %d", s->depth);
>         return;
> diff --git a/hw/vga.c b/hw/vga.c
> index f9a6014..8712269 100644
> --- a/hw/vga.c
> +++ b/hw/vga.c
> @@ -1838,6 +1838,8 @@ static void vga_update_display(void *opaque)
>     VGACommonState *s = opaque;
>     int full_update, graphic_mode;
>
> +    qemu_flush_coalesced_mmio_buffer();
> +
>     if (ds_get_bits_per_pixel(s->ds) == 0) {
>         /* nothing to do */
>     } else {
> @@ -1958,6 +1960,8 @@ static void vga_update_text(void *opaque, console_ch_t 
> *chardata)
>     char msg_buffer[80];
>     int full_update = 0;
>
> +    qemu_flush_coalesced_mmio_buffer();
> +
>     if (!(s->ar_index & 0x20)) {
>         graphic_mode = GMODE_BLANK;
>     } else {
> diff --git a/vl.c b/vl.c
> index bd4a5ce..54d4dd9 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -1210,7 +1210,6 @@ static void gui_update(void *opaque)
>     DisplayState *ds = opaque;
>     DisplayChangeListener *dcl = ds->listeners;
>
> -    qemu_flush_coalesced_mmio_buffer();
>     dpy_refresh(ds);
>
>     while (dcl != NULL) {
> @@ -1226,7 +1225,6 @@ static void nographic_update(void *opaque)
>  {
>     uint64_t interval = GUI_REFRESH_INTERVAL;
>
> -    qemu_flush_coalesced_mmio_buffer();
>     qemu_mod_timer(nographic_timer, interval + qemu_get_clock_ms(rt_clock));
>  }
>
> --
> 1.7.3.4
>
>



reply via email to

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