qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: qemu-devel@nongnu.org
Cc: Fam Zheng <fam@euphon.net>, Kevin Wolf <kwolf@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	"open list:Block I/O path" <qemu-block@nongnu.org>,
	Hanna Reitz <hreitz@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>
Subject: [PULL 10/20] block: make BlockLimits::max_pdiscard 64bit
Date: Mon, 27 Sep 2021 16:55:35 -0500	[thread overview]
Message-ID: <20210927215545.3930309-11-eblake@redhat.com> (raw)
In-Reply-To: <20210927215545.3930309-1-eblake@redhat.com>

From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

We are going to support 64 bit discard requests. Now update the
limit variable. It's absolutely safe. The variable is set in some
drivers, and used in bdrv_co_pdiscard().

Update also max_pdiscard variable in bdrv_co_pdiscard(), so that
bdrv_co_pdiscard() is now prepared for 64bit requests. The remaining
logic including num, offset and bytes variables is already
supporting 64bit requests.

So the only thing that prevents 64 bit requests is limiting
max_pdiscard variable to INT_MAX in bdrv_co_pdiscard().
We'll drop this limitation after updating all block drivers.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20210903102807.27127-10-vsementsov@virtuozzo.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
---
 include/block/block_int.h | 11 ++++++-----
 block/io.c                |  3 ++-
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/include/block/block_int.h b/include/block/block_int.h
index d518703e3e59..9b4e0748bc86 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -674,11 +674,12 @@ typedef struct BlockLimits {
      * otherwise. */
     uint32_t request_alignment;

-    /* Maximum number of bytes that can be discarded at once (since it
-     * is signed, it must be < 2G, if set). Must be multiple of
-     * pdiscard_alignment, but need not be power of 2. May be 0 if no
-     * inherent 32-bit limit */
-    int32_t max_pdiscard;
+    /*
+     * Maximum number of bytes that can be discarded at once. Must be multiple
+     * of pdiscard_alignment, but need not be power of 2. May be 0 if no
+     * inherent 64-bit limit.
+     */
+    int64_t max_pdiscard;

     /* Optimal alignment for discard requests in bytes. A power of 2
      * is best but not mandatory.  Must be a multiple of
diff --git a/block/io.c b/block/io.c
index e40462742ea1..3846e2ed961b 100644
--- a/block/io.c
+++ b/block/io.c
@@ -3056,7 +3056,8 @@ int coroutine_fn bdrv_co_pdiscard(BdrvChild *child, int64_t offset,
                                   int64_t bytes)
 {
     BdrvTrackedRequest req;
-    int max_pdiscard, ret;
+    int ret;
+    int64_t max_pdiscard;
     int head, tail, align;
     BlockDriverState *bs = child->bs;

-- 
2.31.1



  parent reply	other threads:[~2021-09-27 22:03 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-27 21:55 [PULL 00/20] NBD patches through 2021-09-27 Eric Blake
2021-09-27 21:55 ` [PULL 01/20] qemu-nbd: Change default cache mode to writeback Eric Blake
2021-09-27 21:55 ` [PULL 02/20] block/io: bring request check to bdrv_co_(read, write)v_vmstate Eric Blake
2021-09-27 21:55 ` [PULL 03/20] qcow2: check request on vmstate save/load path Eric Blake
2021-09-27 21:55 ` [PULL 04/20] block: use int64_t instead of uint64_t in driver read handlers Eric Blake
2021-09-27 21:55 ` [PULL 05/20] block: use int64_t instead of uint64_t in driver write handlers Eric Blake
2021-09-27 21:55 ` [PULL 06/20] block: use int64_t instead of uint64_t in copy_range driver handlers Eric Blake
2021-09-27 21:55 ` [PULL 07/20] block: make BlockLimits::max_pwrite_zeroes 64bit Eric Blake
2021-09-27 21:55 ` [PULL 08/20] block: use int64_t instead of int in driver write_zeroes handlers Eric Blake
2021-09-27 21:55 ` [PULL 09/20] block/io: allow 64bit write-zeroes requests Eric Blake
2021-09-27 21:55 ` Eric Blake [this message]
2021-09-27 21:55 ` [PULL 11/20] block: use int64_t instead of int in driver discard handlers Eric Blake
2021-09-27 21:55 ` [PULL 12/20] block/io: allow 64bit discard requests Eric Blake
2021-09-27 21:55 ` [PULL 13/20] nbd/server: Allow LIST_META_CONTEXT without STRUCTURED_REPLY Eric Blake
2021-09-27 21:55 ` [PULL 14/20] nbd/client-connection: nbd_co_establish_connection(): fix non set errp Eric Blake
2021-09-27 21:55 ` [PULL 15/20] block/nbd: nbd_channel_error() shutdown channel unconditionally Eric Blake
2021-09-27 21:55 ` [PULL 16/20] block/nbd: move nbd_recv_coroutines_wake_all() up Eric Blake
2021-09-27 21:55 ` [PULL 17/20] block/nbd: refactor nbd_recv_coroutines_wake_all() Eric Blake
2021-09-27 21:55 ` [PULL 18/20] block/nbd: drop connection_co Eric Blake
2022-02-02 11:49   ` Fabian Ebner
2022-02-02 13:53     ` Eric Blake
2022-02-02 14:21       ` Hanna Reitz
2022-02-03  8:49         ` Fabian Ebner
2021-09-27 21:55 ` [PULL 19/20] block/nbd: check that received handle is valid Eric Blake
2021-09-27 21:55 ` [PULL 20/20] nbd/server: Add --selinux-label option Eric Blake
2021-09-29  8:59 ` [PULL 00/20] NBD patches through 2021-09-27 Peter Maydell
2021-09-29 12:40   ` Paolo Bonzini
2021-09-29 13:58     ` Richard Henderson
2021-09-29 15:03       ` Paolo Bonzini
2021-09-29 18:29         ` Eric Blake
2021-09-29 19:14           ` Richard W.M. Jones
2021-09-30  8:29           ` Daniel P. Berrangé
2021-09-30  8:45           ` Richard W.M. Jones
2021-09-30 14:27             ` Richard Henderson
2021-09-30 14:37               ` Richard W.M. Jones

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=20210927215545.3930309-11-eblake@redhat.com \
    --to=eblake@redhat.com \
    --cc=fam@euphon.net \
    --cc=hreitz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=vsementsov@virtuozzo.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).