qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [6391] Fix nographic mode and VNC


From: Paul Brook
Subject: Re: [Qemu-devel] [6391] Fix nographic mode and VNC
Date: Fri, 23 Jan 2009 18:59:01 +0000
User-agent: KMail/1.9.9

> > > The third possibility is to have the select() run in a separate thread
> > > from the TCG cpu_exec() loop.  cpu_exec() would do an atomic read of
> > > 'event_pending' and the IO thread would do an atomic write of
> > > 'event_pending' whenever select() returned a writable file descriptor.
> >
> > This suffers from the same problem described above. You need to
> > force the main execution thread to break out of the translated
> > loop. In practice this probably means sending a signal to the main
> > thread.  You could check event_pending at the start of every TB, but
> > that's likely to incur a fairly big performance hit.
>
> What would the signal handler do ?  siglongjmp out of the translated
> loop ?  Surely the timer implementation doesn't do that right now.

The same as the current one does. Call cpu_interrupt to unlink the TB and 
cause execution to fall back to cpu_exec sometime in the near future.
cpu_interrupt is not threadsafe[1] so has to be called from the main execution 
thread.

[1] TB [un-]chaining involves direct patching of the translated code. Most SMP 
systems do not have a coherent icache.

Paul




reply via email to

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