[Qemu-devel] [PATCHv3] qxl: add QXL_IO_FLUSH_{SURFACES, RELEASE} for guest S3S4 support

2011-07-12 Thread Alon Levy
Add two new IOs. QXL_IO_FLUSH_SURFACES - equivalent to update area for all surfaces, used to reduce vmexits from NumSurfaces to 1 on guest S3, S4 and resolution change (windows driver implementation is such that this is done on each of those occasions). QXL_IO_FLUSH_RELEASE - used to ensure

[Qemu-devel] [PATCHv3] qxl: add QXL_IO_FLUSH_{SURFACES, RELEASE} for guest S3S4 support

2011-06-29 Thread Alon Levy
Add two new IOs. QXL_IO_FLUSH_SURFACES - equivalent to update area for all surfaces, used to reduce vmexits from NumSurfaces to 1 on guest S3, S4 and resolution change (windows driver implementation is such that this is done on each of those occasions). QXL_IO_FLUSH_RELEASE - used to ensure

Re: [Qemu-devel] [PATCHv3] qxl: add QXL_IO_FLUSH_{SURFACES, RELEASE} for guest S3S4 support

2011-06-29 Thread Gerd Hoffmann
Hi, +case QXL_IO_FLUSH_SURFACES: +dprint(d, 1, QXL_IO_FLUSH_SURFACES (%d) entry (%s, s#=%d, res#=%d)\n, +val, qxl_mode_to_string(d-mode), d-guest_surfaces.count, +d-num_free_res); +qemu_spice_stop(d-ssd); +qemu_spice_start(d-ssd); +

Re: [Qemu-devel] [PATCHv3] qxl: add QXL_IO_FLUSH_{SURFACES, RELEASE} for guest S3S4 support

2011-06-29 Thread Alon Levy
On Wed, Jun 29, 2011 at 03:06:33PM +0200, Gerd Hoffmann wrote: Hi, +case QXL_IO_FLUSH_SURFACES: +dprint(d, 1, QXL_IO_FLUSH_SURFACES (%d) entry (%s, s#=%d, res#=%d)\n, +val, qxl_mode_to_string(d-mode), d-guest_surfaces.count, +d-num_free_res); +

Re: [Qemu-devel] [PATCHv3] qxl: add QXL_IO_FLUSH_{SURFACES, RELEASE} for guest S3S4 support

2011-06-29 Thread Gerd Hoffmann
+case QXL_IO_FLUSH_RELEASE: { +QXLReleaseRing *ring =d-ram-release_ring; +if (ring-prod - ring-cons + 1 == ring-num_items) { +// TODO - return a value to the guest and let it loop? Hmm. So the story goes: I wrote this, but didn't actually

Re: [Qemu-devel] [PATCHv3] qxl: add QXL_IO_FLUSH_{SURFACES, RELEASE} for guest S3S4 support

2011-06-29 Thread Alon Levy
On Wed, Jun 29, 2011 at 03:06:33PM +0200, Gerd Hoffmann wrote: Hi, +case QXL_IO_FLUSH_SURFACES: +dprint(d, 1, QXL_IO_FLUSH_SURFACES (%d) entry (%s, s#=%d, res#=%d)\n, +val, qxl_mode_to_string(d-mode), d-guest_surfaces.count, +d-num_free_res); +

Re: [Qemu-devel] [PATCHv3] qxl: add QXL_IO_FLUSH_{SURFACES, RELEASE} for guest S3S4 support

2011-06-29 Thread Alon Levy
On Wed, Jun 29, 2011 at 04:50:10PM +0200, Gerd Hoffmann wrote: +case QXL_IO_FLUSH_RELEASE: { +QXLReleaseRing *ring =d-ram-release_ring; +if (ring-prod - ring-cons + 1 == ring-num_items) { +// TODO - return a value to the guest and let it loop?