From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [RFC] QEMU/KVM: dedicated IO thread Date: Wed, 26 Mar 2008 18:57:04 +0200 Message-ID: <47EA8060.8030008@qumranet.com> References: <20080325135331.GA15188@dmt> <47E912FE.80907@qumranet.com> <20080325160027.GA3203@dmt> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel To: Marcelo Tosatti Return-path: In-Reply-To: <20080325160027.GA3203@dmt> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces@lists.sourceforge.net Errors-To: kvm-devel-bounces@lists.sourceforge.net List-Id: kvm.vger.kernel.org Marcelo Tosatti wrote: > >>> QEMU/KVM: separate thread for IO handling >>> >>> Move IO processing from vcpu0 to a dedicated thread. >>> >>> This removes load on vcpu0 by allowing better cache locality and also >>> improves latency. >>> >>> We can now block signal handling for IO events, so sigtimedwait won't >>> race with handlers: >>> >>> - Currently the SIGALRM handler fails to set CPU_INTERRUPT_EXIT because >>> the "next_cpu" variable is not initialized in the KVM path, meaning that >>> processing of timer expiration might be delayed until the next vcpu0 exit. >>> >>> >> I think we call main_loop_wait() is called unconditionally after every >> signal. >> > > We exit the kvm_run() loop if CPU_INTERRUPT_EXIT is detected by pre_kvm_run(). > > But why do we need to exit the kvm_run() loop? As I understand it, the I/O thread wakes up when the signal is queued and calls main_loop_wait() to process any events (through qemu_run_timers()). If a timer needs to wake up a vcpu, it will raise an interrupt line which will wake the vcpu up, either in the kernel or in userspace depending on -no-kvm-irqchip. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace