On 12/01/2016 16:11, Alex Bennée wrote:
> > Sorry for the late answer, I find some time to take a look at it.
> >
> > Seems you were right I fixed the exit issue and it seems it was one of
> > the problem.
> > I think we must double check how we use cpu->exit_request as Paolo
> > removed SIG_IPI to exit the CPU.
> >
> > I found one additional issue and it seems booting well right now.
>
> The other thing that needs cleaning up is the tcg_current_cpu and
> current_cpu. I suspect the former should go and the restrictions on the
> later be loosend so the TLS current_cpu is available to deferred tasks.

Yes, you can make TLS current_cpu always non-NULL for multi-threaded TCG.

tcg_current_cpu definitely should go, it doesn't make sense if you have
multiple threads.

> The thing I'm currently looking at is what happens when something like a
> virtio completes in a non-CPU thread.

It should just work.  It will cause a cpu_interrupt under the BQL, and
that sets cpu->interrupt_request.  The code that modifies
cpu->interrupt_request in the VCPU thread also runs under the BQL.

Paolo

Reply via email to