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
next prev parent 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.