From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33563) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YsYIP-0004TX-QC for qemu-devel@nongnu.org; Wed, 13 May 2015 11:10:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YsYIO-0001rj-Lg for qemu-devel@nongnu.org; Wed, 13 May 2015 11:10:05 -0400 Message-ID: <55536940.9030301@redhat.com> Date: Wed, 13 May 2015 17:09:52 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1431538099-3286-1-git-send-email-famz@redhat.com> <1431538099-3286-2-git-send-email-famz@redhat.com> <55533DB3.20402@redhat.com> <20150513150219.GF30644@ad.nay.redhat.com> In-Reply-To: <20150513150219.GF30644@ad.nay.redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 01/11] block: Add op blocker type "device IO" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: Kevin Wolf , qemu-block@nongnu.org, armbru@redhat.com, jcody@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com, Stefan Hajnoczi On 13/05/2015 17:02, Fam Zheng wrote: >> > For example, SCSI requests can result in many consecutive I/Os: >> > >> > (1) FUA requests are split in write+flush >> > >> > (2) adapters that do not use QEMUSGList-based I/O only read 128K at a time >> > >> > (3) WRITE SAME operations are also split in chunks >> > >> > (4) UNMAP operations process one descriptor at a time > I don't understand the point of these examples. If we don't return -EBUSY here, > the request will sneak into block/io.c and perhaps break qmp transaction > semantics, if it lands between two backups. It won't, because after blocking DEVICE_IO you will always drain I/O and the bdrv_drain will loop until the above are all satisfied. Paolo