On 11/02/2011 06:16 PM, malc wrote:
(mm)Timers have a possibility of running on a thread of their own which
might be schedulled on the CPU different from the thread that runs
emulated code, unchaining TBs and can (and will) fail in this case.

This should not be a problem with dynticks+iothread (i.e. it should work or not work equally). We now run just this basically when an alarm fires:

        t->expired = t->pending = 1;
        qemu_notify_event();

The rest is always done in the iothread. The iothread will then suspend/resume the VCPU thread around the unchaining, so what matters is (in Unix parlance) signal-safety of the unchaining, not thread-safety.

Paolo


Reply via email to