qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: [PATCH] Revert "posix-aio-compat: avoid signal race


From: Anthony Liguori
Subject: Re: [Qemu-devel] Re: [PATCH] Revert "posix-aio-compat: avoid signal race when spawning a thread"
Date: Thu, 08 Oct 2009 16:50:55 -0500
User-agent: Thunderbird 2.0.0.23 (X11/20090825)

Michael S. Tsirkin wrote:
BTW, tried looking at the code.
I saw some (unrelated) issues:

static void aio_signal_handler(int signum)
{
    if (posix_aio_state) {
        char byte = 0;

        write(posix_aio_state->wfd, &byte, sizeof(byte));
    }

    qemu_service_io();
}

And qemu_service_io does a *ton* of things.

It just does a cpu_exit().

Questions:
-  Do we need the call to qemu_service_io? Seems to
   behave the same with and without it.

Where you run into trouble is when you have a guest that has no periodic timer and needs a mechanism to break out of the tcg loop whenever an IO operation completes. See


Author: aliguori <address@hidden>
Date:   Wed Oct 8 19:50:24 2008 +0000

   Fix IO performance regression in sparc

-  Are all of the data structures touched by qemu_service_io
   protected by blocking signals before access?

cpu_exit is pretty careful to not do anything that could be racey.

Also:
        - let's use signalfd on linux, if available?

signalfd doesn't help. In fact, we originally used signalfd and it caused a regression.

        - for SIGALARM, maybe timerfd?

Or just get rid of SIGALARM...

Regards,

Anthony Liguori




reply via email to

[Prev in Thread] Current Thread [Next in Thread]