From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: Gerd Hoffmann <kraxel@redhat.com>
Subject: [Qemu-devel] [PULL] spice: async i/o for qxl
Date: Wed, 3 Aug 2011 12:37:35 +0200 [thread overview]
Message-ID: <1312367866-27508-1-git-send-email-kraxel@redhat.com> (raw)
Hi,
This spice/qxl pull fixes (for the most part) a design flaw in the qxl
device interface.
Some write operations to qxl I/O ports are blocking, i.e. they wait
for the spice server finish some work, then return to the guest.
Which adds noticable latencies. This patch series adds non-blocking
versions of these operations which return without delay, then raise
a IRQ when complete. The old ops remain functional for backward
compatibility reasons. A guest driver update is needed to make use
of the new ops and get rid of the latencies.
The series also adds new ops which ask the spice server to process all
outstanding rendering commands. This will effectively flush all spice
server state to qxl device memory and is needed for S3 support.
While being at extending the guest ABI we also add a error IRQ to the
qxl device. Long-term plan is to convert all guest-triggerable asserts
in qxl.c into "ignore guest request and raise error IRQ".
All stuff listed above needs a new version of the spice server library,
thats why a bunch of ifdefs is needed so qxl continues to work with
older spice versions. The plan is to raise the minimum required spice
server library when it is in widespread use (in a year or so), then
kill all the ugly #ifdefs.
Finally we raise the pci revision of the qxl device (with new
libspice-server) to signal the guest all the stuff listed above is
available.
please pull,
Gerd
The following changes since commit 927d721777e73339f73719f36eaf400ab641366c:
microblaze: Add missing call to qemu_init_vcpu. (2011-07-31 06:40:13 +0200)
are available in the git repository at:
git://anongit.freedesktop.org/spice/qemu spice.v40
Alon Levy (5):
qxl: add io_port_to_string
qxl: make qxl_guest_bug take variable arguments
qxl: only disallow specific io's in vga mode
qxl: async io support using new spice api
qxl: add QXL_IO_FLUSH_{SURFACES,RELEASE} for guest S3&S4 support
Gerd Hoffmann (6):
spice: add worker wrapper functions.
spice: add qemu_spice_display_init_common
spice/qxl: move worker wrappers
qxl: fix surface tracking & locking
qxl: error handling fixes and cleanups.
qxl: bump pci rev
hw/qxl-render.c | 4 +-
hw/qxl.c | 438 +++++++++++++++++++++++++++++++++++++++++++++-------
hw/qxl.h | 34 ++++-
ui/spice-display.c | 93 ++++++++++--
ui/spice-display.h | 28 ++++
5 files changed, 528 insertions(+), 69 deletions(-)
next reply other threads:[~2011-08-03 10:37 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-03 10:37 Gerd Hoffmann [this message]
2011-08-03 10:37 ` [Qemu-devel] [PATCH 01/11] spice: add worker wrapper functions Gerd Hoffmann
2011-08-03 10:37 ` [Qemu-devel] [PATCH 02/11] spice: add qemu_spice_display_init_common Gerd Hoffmann
2011-08-03 10:37 ` [Qemu-devel] [PATCH 03/11] spice/qxl: move worker wrappers Gerd Hoffmann
2011-08-03 10:37 ` [Qemu-devel] [PATCH 04/11] qxl: fix surface tracking & locking Gerd Hoffmann
2011-08-03 10:37 ` [Qemu-devel] [PATCH 05/11] qxl: add io_port_to_string Gerd Hoffmann
2011-08-03 10:37 ` [Qemu-devel] [PATCH 06/11] qxl: error handling fixes and cleanups Gerd Hoffmann
2011-08-03 10:37 ` [Qemu-devel] [PATCH 07/11] qxl: make qxl_guest_bug take variable arguments Gerd Hoffmann
2011-08-03 10:37 ` [Qemu-devel] [PATCH 08/11] qxl: only disallow specific io's in vga mode Gerd Hoffmann
2011-08-03 10:37 ` [Qemu-devel] [PATCH 09/11] qxl: async io support using new spice api Gerd Hoffmann
2011-08-03 10:37 ` [Qemu-devel] [PATCH 10/11] qxl: add QXL_IO_FLUSH_{SURFACES, RELEASE} for guest S3&S4 support Gerd Hoffmann
2011-08-03 10:37 ` [Qemu-devel] [PATCH 11/11] qxl: bump pci rev Gerd Hoffmann
2011-08-04 22:43 ` [Qemu-devel] [PULL] spice: async i/o for qxl Anthony Liguori
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=1312367866-27508-1-git-send-email-kraxel@redhat.com \
--to=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/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 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).