[Spice-devel] synchronous io considered harmful

Gerd Hoffmann kraxel at redhat.com
Fri Jun 17 08:54:44 PDT 2011


   Hi,

> Yes. My current thinking (and I'm continuing with UPDATE_AREA as the example,
> but like you noted this needs to be done for any of the other IO's that are
> causing possible delays, like DESTROY_PRIMARY, CREATE_PRIMARY) is to add
> UPDATE_AREA_ASYNC to not break current drivers and be able to do the change
> in steps (qemu update, win driver update, lin driver update). Regarding the linux
> driver, we would need to have one for this to work - currently we don't have an
> interrupt handler at all.

One can poll QXLRam->int_pending ...

> One issue is if we want to handle multiple outstanding update area requests or
> not. Doing a single one would be just adding a field for surface_id in the
> QXLRam, and adding an interrupt value (we use two out of 32 bits, so we have
> quite a few left).

At least for how it is currently used (primary surface only) it doesn't 
make sense to have multiple outstanding requests.

> In general I think we should be aiming to eliminate update_area usage as much as possible (because
> it requires a vmexit), so I guess maybe 1 will be enough in the long run.

This too.

I've started hacking up something.  qemu bits are here:
http://cgit.freedesktop.org/spice/qemu/log/?h=bz700134

spice-protocol and xf86-video-qxl patches are attached.

Not fully working yet, qemu dies with
validate_surface: panic !worker->surfaces[surface_id].context.canvas
to be investigated next week.

cheers,
   Gerd
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0001-iofix.patch
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20110617/59763e26/attachment.txt>


More information about the Spice-devel mailing list