[Spice-devel] [PATCH v2] server: add async io support
Alon Levy
alevy at redhat.com
Thu Jul 7 00:45:02 PDT 2011
On Thu, Jul 07, 2011 at 09:29:47AM +0200, Gerd Hoffmann wrote:
> >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 could use the cookies, but since I'm already doing a guest_bug when guest
does two asyncs overlapping, I think I can just use the last remembered one
I store for the express purpose of discovering this bug (until now).
> >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