From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54831) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YuHrL-0001iO-EI for qemu-devel@nongnu.org; Mon, 18 May 2015 06:01:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YuHrI-0006vk-5O for qemu-devel@nongnu.org; Mon, 18 May 2015 06:01:19 -0400 Date: Mon, 18 May 2015 11:01:02 +0100 From: Stefan Hajnoczi Message-ID: <20150518100102.GD2679@stefanha-thinkpad.redhat.com> References: <1431522721-3266-1-git-send-email-famz@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="rqzD5py0kzyFAOWN" Content-Disposition: inline In-Reply-To: <1431522721-3266-1-git-send-email-famz@redhat.com> Subject: Re: [Qemu-devel] [PATCH v7 0/3] block: Fix unaligned bdrv_aio_write_zeroes List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: Kevin Wolf , pbonzini@redhat.com, qemu-devel@nongnu.org, qemu-block@nongnu.org, qemu-stable@nongnu.org --rqzD5py0kzyFAOWN Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, May 13, 2015 at 01:11:58PM +0000, Fam Zheng wrote: > v7: Add Kevin's rev-by in patch 1 and 3. > Address Stefan's and Kevin's comments on patch 2: > - Don't duplicate tracked_request_begin and tracked_request_end; > - Don't forget to remove debug printf; > - Call qemu_vfree unconditionally; > - Don't serialize aligned part of the zero write req; >=20 > An unaligned zero write causes NULL deferencing in bdrv_co_do_pwritev. Th= at > path is reachable from bdrv_co_write_zeroes and bdrv_aio_write_zeroes. >=20 > You can easily trigger through the former with qemu-io, as the test case = added > by 61815d6e0aa. For bdrv_aio_write_zeroes, in common cases there's always= a > format driver (which uses 512 alignment), so it would be much rarer to ha= ve > unaligned requests (only concerning top level here, when the request goes= down > to bs->file, where for example the alignment is 4k, it would then be call= ing > bdrv_co_write_zeroes because it's in a coroutine). >=20 > fc3959e4669a1c fixed bdrv_co_write_zeroes but not bdrv_aio_write_zeroes. = The > lattern is the actually used one by device model. Revert the previous fix= , do > it in bdrv_co_do_pwritev, to cover both paths. >=20 >=20 >=20 > Fam Zheng (3): > Revert "block: Fix unaligned zero write" > block: Fix NULL deference for unaligned write if qiov is NULL > qemu-iotests: Test unaligned sub-block zero write >=20 > block/io.c | 142 ++++++++++++++++++++++++++++++++-------= ------ > tests/qemu-iotests/033 | 13 +++++ > tests/qemu-iotests/033.out | 30 ++++++++++ > 3 files changed, 144 insertions(+), 41 deletions(-) >=20 > --=20 > 2.4.0 >=20 Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan --rqzD5py0kzyFAOWN Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJVWbheAAoJEJykq7OBq3PISG0H/0kbpRHmMYAA3HB2q4RgHtqm /zvWS3RVtIHTFFIg4ynueDE2fJt3M2W4qFrroIsIJmunVdvr2GrXa0CmmWemyi3f iRjkfBbu4+ofe4Z2R87qZ3WFPaJl4PXa4AW1tR40RtiYtt1BaoRGoMELWaY55CAF xI/YvXGnQZcSdc9HSFeapZKCR73v8Wr6/a3YPE9sapuLiC+SspiBiVg+vd12iFh+ OFDNGmgetNLTuDDcTURzsgbtUYnFNkdoVkjW7SoDHd0MjBKlsj/YhoBV50tFYePH khPSvgZ2RtS7NLvc2VpPlVS5Q7xN2NpaAR74kebNCcvamQ8y0h65eOSCh5oa/rA= =9IqG -----END PGP SIGNATURE----- --rqzD5py0kzyFAOWN--