qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Re: [PATCH 2/7] Enable I/O thread and VNC threads by de


From: Aurelien Jarno
Subject: Re: [Qemu-devel] Re: [PATCH 2/7] Enable I/O thread and VNC threads by default
Date: Tue, 8 Feb 2011 12:46:18 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

On Tue, Feb 08, 2011 at 12:07:02PM +0100, Tristan Gingold wrote:
> 
> On Feb 8, 2011, at 6:58 PM, Anthony Liguori wrote:
> 
> > On 02/08/2011 04:06 AM, Aurelien Jarno wrote:
> >> Yes, it's slow. But is it a problem? You assume that people use QEMU
> >> only for emulating SMP platforms. This is a wrong assumption. Beside the
> >> x86 target, only sparc really supports SMP emulation.
> >>   
> > 
> > It's *not* just about performance.
> > 
> > TCG requires a signal to break out of a tight chained TB loop.  If you have 
> > a guest in a tight loop waiting for something external (like polling on a 
> > in-memory flag), the device emulation will not get to run until a signal is 
> > fired.
> > 
> > Unless you set SIGIO on every file descriptor that selects polls on (and 
> > you can't because there are a number that just don't support SIGIO), then 
> > you have a race condition.
> 
> A race condition ?  Looks like you are describing a dead-lock.
> 
> But the dead lock doesn't happen because of the timer which periodically 
> exits from TCG.  Hence the performance issue.
> 
> > This can be fixed by running TCG in a separate thread than select() and 
> > sending a signal to the TCG VCPU when select() returns (effectively SIGIO 
> > in userspace).
> > 
> > This is exactly what the I/O thread does.
> 
> 
> (Nobody was able to make it working on Windows - or nobody was interested in 
> ?)
> 
Given the I/O thread is disabled by default, my guess is that nobody 
really see an interest in looking at that.

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
address@hidden                 http://www.aurel32.net



reply via email to

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