[Spice-devel] [PATCH v2] server: add async io support

Gerd Hoffmann kraxel at redhat.com
Thu Jul 7 00:29:47 PDT 2011


> Hi,
> I find it problematic to decouple the qxl operations upon QXL_IO and the
> worker operations. For example: upon destroy_surfaces, the qxl resets
> the tracked guest commands. However, since destroy_surfaces is asynced,
> the worker might read commands from the ring before handling destroy
> surfaces, and then the qxl guest commands will be modified.

That should be fixed on the qemu side I think.  qxl should update its 
status when it receives the notification that the operation is complete, 
not after submitting the request.

(Ha! first use case for the magic cookie ;)

> I suggest a partial decoupling: on async io, the dispatcher will still
> wait for RED_WORKER_MESSAGE_READY, but the server will set it
> immediately when it receives the async message.

No.  I don't want async messages take a round trip to the worker thread. 
  Even if the worker sends an answer instantly alone the thread 
scheduling adds noticeable latencies.

cheers,
   Gerd


More information about the Spice-devel mailing list