From: Fam Zheng <famz@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org,
Max Reitz <mreitz@redhat.com>, Jeff Cody <jcody@redhat.com>,
Eric Blake <eblake@redhat.com>, John Snow <jsnow@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 6/9] block: Use common req handling for discard
Date: Fri, 6 Jul 2018 14:51:29 +0800 [thread overview]
Message-ID: <20180706065129.GA9946@lemon.usersys.redhat.com> (raw)
In-Reply-To: <20180705124406.GL3309@localhost.localdomain>
On Thu, 07/05 14:44, Kevin Wolf wrote:
> Am 05.07.2018 um 09:36 hat Fam Zheng geschrieben:
> > Reuse the new bdrv_co_write_req_prepare/finish helpers. The variation
> > here is that discard requests don't affect bs->wr_highest_offset.
> >
> > Signed-off-by: Fam Zheng <famz@redhat.com>
> > ---
> > block/io.c | 21 ++++++++++++++-------
> > 1 file changed, 14 insertions(+), 7 deletions(-)
> >
> > diff --git a/block/io.c b/block/io.c
> > index f06978dda0..912fcb962a 100644
> > --- a/block/io.c
> > +++ b/block/io.c
> > @@ -1582,7 +1582,18 @@ bdrv_co_write_req_finish(BdrvChild *child, BdrvTrackedRequest *req, int ret)
> > bdrv_parent_cb_resize(bs);
> > bdrv_dirty_bitmap_truncate(bs, end_sector << BDRV_SECTOR_BITS);
> > }
> > - bdrv_set_dirty(bs, req->offset, req->bytes);
> > + if (req->bytes) {
> > + switch (req->type) {
> > + case BDRV_TRACKED_WRITE:
> > + stat64_max(&bs->wr_highest_offset, req->offset + req->bytes);
>
> You forgot to remove this line above, so now this one is redundant and
> we still execute it always.
>
> Apart from that, why shouldn't discard be included in
> bs->wr_highest_offset? It's an access to an area in the image that must
> be present, so it indicates a larger file size, doesn't it?
I'm not sure. wr_highest_offset is used for management to allocate disk space. A
discard request is on the contrary for releasing disk space. Since guest is
allowed to discard unallocated sectors even though it should be nop in the
backend, such an operation shouldn't cause a user visible change in
@wr_highest_offset in QMP.
Fam
>
> > + /* fall through, to set dirty bits */
> > + case BDRV_TRACKED_DISCARD:
> > + bdrv_set_dirty(bs, req->offset, req->bytes);
> > + break;
> > + default:
> > + break;
> > + }
> > + }
> > }
>
> Kevin
next prev parent reply other threads:[~2018-07-06 6:51 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-05 7:36 [Qemu-devel] [PATCH v2 0/9] block: Fix dst reading after tail copy offloading Fam Zheng
2018-07-05 7:36 ` [Qemu-devel] [PATCH v2 1/9] block: Add copy offloading trace points Fam Zheng
2018-07-05 11:08 ` Kevin Wolf
2018-07-06 6:24 ` Fam Zheng
2018-07-05 7:36 ` [Qemu-devel] [PATCH v2 2/9] block: Use BdrvChild to discard Fam Zheng
2018-07-05 11:00 ` Kevin Wolf
2018-07-05 7:36 ` [Qemu-devel] [PATCH v2 3/9] block: Use uint64_t for BdrvTrackedRequest byte fields Fam Zheng
2018-07-05 11:16 ` Kevin Wolf
2018-07-05 7:36 ` [Qemu-devel] [PATCH v2 4/9] block: Extract common write req handling Fam Zheng
2018-07-05 11:31 ` Kevin Wolf
2018-07-05 7:36 ` [Qemu-devel] [PATCH v2 5/9] block: Fix handling of image enlarging write Fam Zheng
2018-07-05 12:38 ` Kevin Wolf
2018-07-05 7:36 ` [Qemu-devel] [PATCH v2 6/9] block: Use common req handling for discard Fam Zheng
2018-07-05 12:44 ` Kevin Wolf
2018-07-06 6:51 ` Fam Zheng [this message]
2018-07-06 8:54 ` Kevin Wolf
2018-07-05 7:36 ` [Qemu-devel] [PATCH v2 7/9] block: Use common req handling in copy offloading Fam Zheng
2018-07-05 7:37 ` [Qemu-devel] [PATCH v2 8/9] block: Fix bdrv_co_truncate overlap check Fam Zheng
2018-07-06 22:09 ` Eric Blake
2018-07-10 5:24 ` Fam Zheng
2018-07-05 7:37 ` [Qemu-devel] [PATCH v2 9/9] block: Use common write req handling in truncate Fam Zheng
2018-07-06 22:12 ` Eric Blake
2018-07-09 1:33 ` Fam Zheng
2018-07-05 15:57 ` [Qemu-devel] [PATCH v2 0/9] block: Fix dst reading after tail copy offloading Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180706065129.GA9946@lemon.usersys.redhat.com \
--to=famz@redhat.com \
--cc=eblake@redhat.com \
--cc=jcody@redhat.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).