From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:39527) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TEGvB-0001VA-6Z for qemu-devel@nongnu.org; Wed, 19 Sep 2012 05:50:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TEGv5-00007P-Dt for qemu-devel@nongnu.org; Wed, 19 Sep 2012 05:50:17 -0400 Received: from mx1.redhat.com ([209.132.183.28]:2315) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TEGv5-000075-5U for qemu-devel@nongnu.org; Wed, 19 Sep 2012 05:50:11 -0400 Message-ID: <5059954A.50408@redhat.com> Date: Wed, 19 Sep 2012 12:50:02 +0300 From: Avi Kivity MIME-Version: 1.0 References: <50597D1F.3070607@redhat.com> <505991A2.6090709@siemens.com> In-Reply-To: <505991A2.6090709@siemens.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [big lock] Discussion about the convention of device's DMA each other after breaking down biglock List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: Paolo Bonzini , Marcelo Tosatti , liu ping fan , Anthony Liguori , "qemu-devel@nongnu.org" On 09/19/2012 12:34 PM, Jan Kiszka wrote: > > What about the following: > > What we really need to support in practice is MMIO access triggers RAM > access of device model. Scenarios where a device access triggers another > MMIO access could likely just be rejected without causing troubles. > > So, when we dispatch a request to a device, we mark that the current > thread is in a MMIO dispatch and reject any follow-up c_p_m_rw that does > _not_ target RAM, ie. is another, nested MMIO request - independent of > its destination. How much of the known issues would this solve? And what > would remain open? Various iommu-like devices re-dispatch I/O, like changing endianness or bitband. I don't know whether it targets I/O rather than RAM. If they do, we can push the support into the memory API. I think it's acceptable as a short term solution (short term meaning as long as needed). -- error compiling committee.c: too many arguments to function