From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36219) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ajvgc-0007LV-Er for qemu-devel@nongnu.org; Sat, 26 Mar 2016 17:24:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ajvga-0004b2-P9 for qemu-devel@nongnu.org; Sat, 26 Mar 2016 17:23:58 -0400 References: <1458325289-17848-1-git-send-email-kwolf@redhat.com> <1458325289-17848-20-git-send-email-kwolf@redhat.com> From: Max Reitz Message-ID: <56F6FDE4.1000608@redhat.com> Date: Sat, 26 Mar 2016 22:23:48 +0100 MIME-Version: 1.0 In-Reply-To: <1458325289-17848-20-git-send-email-kwolf@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="nFfxKgowVxNr0fKvAOTxrKInegSO8xMu0" Subject: Re: [Qemu-devel] [PATCH 19/20] block: Remove BDRV_O_CACHE_WB List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf , qemu-block@nongnu.org Cc: qemu-devel@nongnu.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --nFfxKgowVxNr0fKvAOTxrKInegSO8xMu0 Content-Type: multipart/mixed; boundary="uMx3cUlJ6k8DuC3MMLxvKWTtA0JW4kLQ0" From: Max Reitz To: Kevin Wolf , qemu-block@nongnu.org Cc: qemu-devel@nongnu.org Message-ID: <56F6FDE4.1000608@redhat.com> Subject: Re: [PATCH 19/20] block: Remove BDRV_O_CACHE_WB References: <1458325289-17848-1-git-send-email-kwolf@redhat.com> <1458325289-17848-20-git-send-email-kwolf@redhat.com> In-Reply-To: <1458325289-17848-20-git-send-email-kwolf@redhat.com> --uMx3cUlJ6k8DuC3MMLxvKWTtA0JW4kLQ0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: quoted-printable On 18.03.2016 19:21, Kevin Wolf wrote: > The previous patches have successively made blk->enable_write_cache the= > true source for the information whether a writethrough mode must be > implemented. The corresponding BDRV_O_CACHE_WB is only useless baggage > we're carrying around, so now's the time to remove it. >=20 > At the same time, we remove the 'cache.writeback' option parsing on the= > BDS level as the only effect was setting the BDRV_O_CACHE_WB flag. >=20 > This change requires test cases that explicitly enabled the option to > drop it. Other than that and the change of the error message when > writethrough is enabled on the BDS level (from "Can't set writethrough > mode" to "doesn't support the option"), there should be no change in > behaviour. >=20 > Signed-off-by: Kevin Wolf > --- > block.c | 48 ++---------------------------------= -------- > block/block-backend.c | 11 ---------- > block/vvfat.c | 3 +-- > blockdev.c | 21 ++----------------- > include/block/block.h | 3 +-- > qemu-img.c | 2 +- > qemu-io-cmds.c | 1 - > tests/qemu-iotests/051 | 2 +- > tests/qemu-iotests/051.pc.out | 10 ++++----- > tests/qemu-iotests/142 | 6 +++--- > tests/qemu-iotests/142.out | 36 ++++++++++++++++---------------- > 11 files changed, 34 insertions(+), 109 deletions(-) >=20 [...] > diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c > index 7de3754..35ee50b 100644 > --- a/qemu-io-cmds.c > +++ b/qemu-io-cmds.c > @@ -2149,7 +2149,6 @@ static int reopen_f(BlockBackend *blk, int argc, = char **argv) > opts =3D qopts ? qemu_opts_to_qdict(qopts, NULL) : NULL; > qemu_opts_reset(&reopen_opts); > =20 > - flags |=3D blk_enable_write_cache(blk) ? BDRV_O_CACHE_WB : 0; Well... :-P > brq =3D bdrv_reopen_queue(NULL, bs, opts, flags); > bdrv_reopen_multiple(brq, &local_err); > if (local_err) { > diff --git a/tests/qemu-iotests/051 b/tests/qemu-iotests/051 > index 7bfe9ff..88b3d91 100755 > --- a/tests/qemu-iotests/051 > +++ b/tests/qemu-iotests/051 > @@ -218,7 +218,7 @@ run_qemu -drive driver=3Dnull-co,cache=3Dinvalid_va= lue > =20 > for cache in writeback writethrough unsafe invalid_value; do > echo -e "info block\ninfo block file\ninfo block backing\ninfo blo= ck backing-file" | \ > - run_qemu -drive file=3D"$TEST_IMG",cache=3D$cache,backing.file.fil= ename=3D"$TEST_IMG.base",backing.cache.no-flush=3Don,backing.cache.writeb= ack=3Don,backing.node-name=3Dbacking,backing.file.node-name=3Dbacking-fil= e,file.node-name=3Dfile,if=3Dnone,id=3D$device_id -nodefaults > + run_qemu -drive file=3D"$TEST_IMG",cache=3D$cache,backing.file.fil= ename=3D"$TEST_IMG.base",backing.cache.no-flush=3Don,backing.node-name=3D= backing,backing.file.node-name=3Dbacking-file,file.node-name=3Dfile,if=3D= none,id=3D$device_id -nodefaults > done > =20 > echo > diff --git a/tests/qemu-iotests/051.pc.out b/tests/qemu-iotests/051.pc.= out > index 73cc15a..ec6d222 100644 > --- a/tests/qemu-iotests/051.pc.out > +++ b/tests/qemu-iotests/051.pc.out 051.out needs the same changes. Aside from that: Looks good. Max > @@ -239,7 +239,7 @@ QEMU X.Y.Z monitor - type 'help' for more informati= on > Testing: -drive driver=3Dnull-co,cache=3Dinvalid_value > QEMU_PROG: -drive driver=3Dnull-co,cache=3Dinvalid_value: invalid cach= e option > =20 > -Testing: -drive file=3DTEST_DIR/t.qcow2,cache=3Dwriteback,backing.file= =2Efilename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing.c= ache.writeback=3Don,backing.node-name=3Dbacking,backing.file.node-name=3D= backing-file,file.node-name=3Dfile,if=3Dnone,id=3Ddrive0 -nodefaults > +Testing: -drive file=3DTEST_DIR/t.qcow2,cache=3Dwriteback,backing.file= =2Efilename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing.n= ode-name=3Dbacking,backing.file.node-name=3Dbacking-file,file.node-name=3D= file,if=3Dnone,id=3Ddrive0 -nodefaults > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) i=1B[K=1B[Din=1B[K=1B[D=1B[Dinf=1B[K=1B[D=1B[D=1B[Dinfo=1B[K=1B= [D=1B[D=1B[D=1B[Dinfo =1B[K=1B[D=1B[D=1B[D=1B[D=1B[Dinfo b=1B[K=1B[D=1B[D= =1B[D=1B[D=1B[D=1B[Dinfo bl=1B[K=1B[D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[Dinfo b= lo=1B[K=1B[D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[Dinfo bloc=1B[K=1B[D=1B[D=1B= [D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[Dinfo block=1B[K > drive0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) > @@ -259,7 +259,7 @@ backing-file: TEST_DIR/t.qcow2.base (file, read-onl= y) > Cache mode: writeback, ignore flushes > (qemu) q=1B[K=1B[Dqu=1B[K=1B[D=1B[Dqui=1B[K=1B[D=1B[D=1B[Dquit=1B[K > =20 > -Testing: -drive file=3DTEST_DIR/t.qcow2,cache=3Dwritethrough,backing.f= ile.filename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing.= cache.writeback=3Don,backing.node-name=3Dbacking,backing.file.node-name=3D= backing-file,file.node-name=3Dfile,if=3Dnone,id=3Ddrive0 -nodefaults > +Testing: -drive file=3DTEST_DIR/t.qcow2,cache=3Dwritethrough,backing.f= ile.filename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing.= node-name=3Dbacking,backing.file.node-name=3Dbacking-file,file.node-name=3D= file,if=3Dnone,id=3Ddrive0 -nodefaults > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) i=1B[K=1B[Din=1B[K=1B[D=1B[Dinf=1B[K=1B[D=1B[D=1B[Dinfo=1B[K=1B= [D=1B[D=1B[D=1B[Dinfo =1B[K=1B[D=1B[D=1B[D=1B[D=1B[Dinfo b=1B[K=1B[D=1B[D= =1B[D=1B[D=1B[D=1B[Dinfo bl=1B[K=1B[D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[Dinfo b= lo=1B[K=1B[D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[Dinfo bloc=1B[K=1B[D=1B[D=1B= [D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[Dinfo block=1B[K > drive0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) > @@ -279,7 +279,7 @@ backing-file: TEST_DIR/t.qcow2.base (file, read-onl= y) > Cache mode: writeback, ignore flushes > (qemu) q=1B[K=1B[Dqu=1B[K=1B[D=1B[Dqui=1B[K=1B[D=1B[D=1B[Dquit=1B[K > =20 > -Testing: -drive file=3DTEST_DIR/t.qcow2,cache=3Dunsafe,backing.file.fi= lename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing.cache.= writeback=3Don,backing.node-name=3Dbacking,backing.file.node-name=3Dbacki= ng-file,file.node-name=3Dfile,if=3Dnone,id=3Ddrive0 -nodefaults > +Testing: -drive file=3DTEST_DIR/t.qcow2,cache=3Dunsafe,backing.file.fi= lename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing.node-n= ame=3Dbacking,backing.file.node-name=3Dbacking-file,file.node-name=3Dfile= ,if=3Dnone,id=3Ddrive0 -nodefaults > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) i=1B[K=1B[Din=1B[K=1B[D=1B[Dinf=1B[K=1B[D=1B[D=1B[Dinfo=1B[K=1B= [D=1B[D=1B[D=1B[Dinfo =1B[K=1B[D=1B[D=1B[D=1B[D=1B[Dinfo b=1B[K=1B[D=1B[D= =1B[D=1B[D=1B[D=1B[Dinfo bl=1B[K=1B[D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[Dinfo b= lo=1B[K=1B[D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[Dinfo bloc=1B[K=1B[D=1B[D=1B= [D=1B[D=1B[D=1B[D=1B[D=1B[D=1B[Dinfo block=1B[K > drive0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) > @@ -299,8 +299,8 @@ backing-file: TEST_DIR/t.qcow2.base (file, read-onl= y) > Cache mode: writeback, ignore flushes > (qemu) q=1B[K=1B[Dqu=1B[K=1B[D=1B[Dqui=1B[K=1B[D=1B[D=1B[Dquit=1B[K > =20 > -Testing: -drive file=3DTEST_DIR/t.qcow2,cache=3Dinvalid_value,backing.= file.filename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing= =2Ecache.writeback=3Don,backing.node-name=3Dbacking,backing.file.node-nam= e=3Dbacking-file,file.node-name=3Dfile,if=3Dnone,id=3Ddrive0 -nodefaults > -QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,cache=3Dinvalid_value,backin= g.file.filename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backi= ng.cache.writeback=3Don,backing.node-name=3Dbacking,backing.file.node-nam= e=3Dbacking-file,file.node-name=3Dfile,if=3Dnone,id=3Ddrive0: invalid cac= he option > +Testing: -drive file=3DTEST_DIR/t.qcow2,cache=3Dinvalid_value,backing.= file.filename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backing= =2Enode-name=3Dbacking,backing.file.node-name=3Dbacking-file,file.node-na= me=3Dfile,if=3Dnone,id=3Ddrive0 -nodefaults > +QEMU_PROG: -drive file=3DTEST_DIR/t.qcow2,cache=3Dinvalid_value,backin= g.file.filename=3DTEST_DIR/t.qcow2.base,backing.cache.no-flush=3Don,backi= ng.node-name=3Dbacking,backing.file.node-name=3Dbacking-file,file.node-na= me=3Dfile,if=3Dnone,id=3Ddrive0: invalid cache option > =20 > =20 > =3D=3D=3D Specifying the protocol layer =3D=3D=3D --uMx3cUlJ6k8DuC3MMLxvKWTtA0JW4kLQ0-- --nFfxKgowVxNr0fKvAOTxrKInegSO8xMu0 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJW9v3kAAoJEDuxQgLoOKytZ18IAKMT4Ww8lB5UmwUngLd7Fd9I SfYuZ7kERvJMZN1W53n9Y/DwuSK0Iya+xllQJ9fs6GR8IlhgnycZokeoXyam87X3 wuM0KdiCMoa6BOyun44uupYCebFXQl2aMQBK2TFDbHqlLn1Z/OmNRNctDgpgyCCT QcsSQXaoCUIXqbP/X8GtPy6kxdc5LsWNcZewRD0P4TYiC7bEkc9HQBbCU7AwoLXs Sc/iiYY8CJUGiSSnuAXcwgsRXPOSOff4SAl6BLBUu4J+vZ1UCA5++JmlUPCnE1Ip jlZ/H1A2hMfzXr4xnXXVvKhJw2/zifGzBYrzpRut3zPxYdEtpm1EgKk7qew1u3M= =9pj9 -----END PGP SIGNATURE----- --nFfxKgowVxNr0fKvAOTxrKInegSO8xMu0--