From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:54602) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TEHMl-0003Ub-Qu for qemu-devel@nongnu.org; Wed, 19 Sep 2012 06:18:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TEHMh-0002wU-Mr for qemu-devel@nongnu.org; Wed, 19 Sep 2012 06:18:47 -0400 Received: from thoth.sbs.de ([192.35.17.2]:29651) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TEHMh-0002wD-Cv for qemu-devel@nongnu.org; Wed, 19 Sep 2012 06:18:43 -0400 Message-ID: <50599BF9.1050502@siemens.com> Date: Wed, 19 Sep 2012 12:18:33 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <50597D1F.3070607@redhat.com> <505991A2.6090709@siemens.com> <5059954A.50408@redhat.com> In-Reply-To: <5059954A.50408@redhat.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: Avi Kivity Cc: Paolo Bonzini , Marcelo Tosatti , liu ping fan , Anthony Liguori , "qemu-devel@nongnu.org" On 2012-09-19 11:50, Avi Kivity wrote: > 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 such dispatching is lock-less and we validate it's not recursive, then it should be fine even when not targeting RAM. And we could also factor out generic dispatchers like MMIO->PIO. > > 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). We will always have to avoid loops. I think all we can improve is what we still allow by better detecting what would be wrong. Jan -- Siemens AG, Corporate Technology, CT RTC ITP SDP-DE Corporate Competence Center Embedded Linux