From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH] kvm: First step to push iothread lock out of inner run loop Date: Wed, 27 Jun 2012 10:54:59 +0300 Message-ID: <4FEABC53.6040007@redhat.com> References: <4FE4F56D.1020201@web.de> <4FE4F7F5.7030400@web.de> <20120626193420.GA19852@amt.cnet> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Jan Kiszka , qemu-devel , Liu Ping Fan , Alexander Graf , Anthony Liguori , kvm To: Marcelo Tosatti Return-path: Received: from mx1.redhat.com ([209.132.183.28]:57048 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756351Ab2F0HzM (ORCPT ); Wed, 27 Jun 2012 03:55:12 -0400 In-Reply-To: <20120626193420.GA19852@amt.cnet> Sender: kvm-owner@vger.kernel.org List-ID: On 06/26/2012 10:34 PM, Marcelo Tosatti wrote: > > 1. read_lock(memmap_lock) > 2. MemoryRegionSection mrs = lookup(addr) > 3. qom_ref(mrs.mr->dev) > 4. read_unlock(memmap_lock) > > 5. mutex_lock(dev->lock) > 6. dispatch(&mrs, addr, data, size) > 7. mutex_unlock(dev->lock) > > 8. qom_unref(mrs.mr->object) The plan also includes eventually replacing read_lock() with rcu; so two devices can be accessed in parallel with no cacheline bouncing. -- error compiling committee.c: too many arguments to function