All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: Alon Levy <alevy@redhat.com>
Cc: yhalperi@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] qxl: async I/O
Date: Thu, 07 Jul 2011 09:47:52 +0200	[thread overview]
Message-ID: <4E1564A8.60403@redhat.com> (raw)
In-Reply-To: <1309954766-9728-14-git-send-email-alevy@redhat.com>

   Hi,

> +void qxl_spice_update_area_async(PCIQXLDevice *qxl, uint32_t surface_id,
> +                           struct QXLRect *area, struct QXLRect *dirty_rects,
> +                           uint32_t num_dirty_rects, uint32_t clear_dirty_region,
> +                           int async)
> +{
> +    qemu_mutex_lock(&qxl->ssd.wlock);
> +    if (async) {
> +        qxl->ssd.worker->update_area_async(qxl->ssd.worker, surface_id, area, dirty_rects,
> +                                 num_dirty_rects, clear_dirty_region);
> +    } else {
> +        qxl->ssd.worker->update_area(qxl->ssd.worker, surface_id, area, dirty_rects,
> +                                 num_dirty_rects, clear_dirty_region);
> +    }
> +    qemu_mutex_unlock(&qxl->ssd.wlock);
> +}

We need a plan to handle backward compatibility here.  Older 
libspice-server versions don't have the update_area_async op.  Option 
one is to just not support async mode with older libraries.  Option two 
is to handle the request syncronously even though the guest has asked 
for async.  I'd tend to pick option one, that makes things easier with 
S3 support because we just can't do that in any way with an older 
libspice-server.

>       switch (io_port) {
> +    case QXL_IO_UPDATE_AREA_ASYNC:
> +    case QXL_IO_NOTIFY_OOM_ASYNC:
> +    case QXL_IO_MEMSLOT_ADD_ASYNC:
> +    case QXL_IO_CREATE_PRIMARY_ASYNC:
> +    case QXL_IO_DESTROY_PRIMARY_ASYNC:
> +    case QXL_IO_DESTROY_SURFACE_ASYNC:
> +    case QXL_IO_DESTROY_ALL_SURFACES_ASYNC:
> +        async = 1;
> +        if (d->current_async != QXL_UNDEFINED_IO) {
> +            qxl_guest_bug(d, "%d async started before last (%d) complete\n",
> +                io_port, d->current_async);

Better return here, ignoring the invalid request?

cheers,
   Gerd

  reply	other threads:[~2011-07-07  7:48 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-06 12:19 [Qemu-devel] [PATCH] async + suspend reworked Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: add defines from latest spice-protocol Alon Levy
2011-07-07  7:33   ` Gerd Hoffmann
2011-07-07  7:43     ` Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] spice: add worker wrapper functions Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] spice: add qemu_spice_display_init_common Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] spice: lock spice worker calls Alon Levy
2011-07-07  7:40   ` Gerd Hoffmann
2011-07-07  7:52     ` Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: move qemu_spice_add_memslot call out of qxl_add_memslot Alon Levy
2011-07-07  7:39   ` Gerd Hoffmann
2011-07-07  8:45     ` Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: move qemu_spice_create_primary_surface call out of qxl_create_guest_primary Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: remove qxl_destroy_primary() Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] spice/qxl: move worker wrappers Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: fix surface tracking & locking Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: add io_port_to_string Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: error handling fixes and cleanups Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: make qxl_guest_bug take variable arguments Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: async I/O Alon Levy
2011-07-07  7:47   ` Gerd Hoffmann [this message]
2011-07-07  8:11     ` Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: bump pci rev Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: only disallow specific io's in vga mode Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: add QXL_IO_FLUSH_{SURFACES, RELEASE} for guest S3&S4 support Alon Levy
2011-07-06 12:19 ` [Qemu-devel] [PATCH] qxl: use QXL_REVISION_* Alon Levy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E1564A8.60403@redhat.com \
    --to=kraxel@redhat.com \
    --cc=alevy@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yhalperi@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.