[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v2 04/17] nbd: Allow larger requests
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-block] [PATCH v2 04/17] nbd: Allow larger requests |
Date: |
Wed, 15 Jun 2016 15:37:42 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 |
On 14/06/2016 23:30, Eric Blake wrote:
> The NBD layer was breaking up request at a limit of 2040 sectors
> (just under 1M) to cater to old qemu-nbd. But the server limit
> was raised to 32M in commit 2d8214885 to match the kernel, more
> than three years ago; and the upstream NBD Protocol is proposing
> documentation that without any explicit communication to state
> otherwise, a client should be able to safely assume that a 32M
> transaction will work. It is time to rely on the larger sizing,
> and any downstream distro that cares about maximum
> interoperability to older qemu-nbd servers can just tweak the
> value of #define NBD_MAX_SECTORS.
>
> Signed-off-by: Eric Blake <address@hidden>
>
> ---
> v2: new patch
> ---
> include/block/nbd.h | 1 +
> block/nbd-client.c | 4 ----
> 2 files changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/include/block/nbd.h b/include/block/nbd.h
> index b86a976..36dde24 100644
> --- a/include/block/nbd.h
> +++ b/include/block/nbd.h
> @@ -76,6 +76,7 @@ enum {
>
> /* Maximum size of a single READ/WRITE data buffer */
> #define NBD_MAX_BUFFER_SIZE (32 * 1024 * 1024)
> +#define NBD_MAX_SECTORS (NBD_MAX_BUFFER_SIZE / BDRV_SECTOR_SIZE)
>
> ssize_t nbd_wr_syncv(QIOChannel *ioc,
> struct iovec *iov,
> diff --git a/block/nbd-client.c b/block/nbd-client.c
> index 4d13444..420bce8 100644
> --- a/block/nbd-client.c
> +++ b/block/nbd-client.c
> @@ -269,10 +269,6 @@ static int nbd_co_writev_1(BlockDriverState *bs, int64_t
> sector_num,
> return -reply.error;
> }
>
> -/* qemu-nbd has a limit of slightly less than 1M per request. Try to
> - * remain aligned to 4K. */
> -#define NBD_MAX_SECTORS 2040
> -
> int nbd_client_co_readv(BlockDriverState *bs, int64_t sector_num,
> int nb_sectors, QEMUIOVector *qiov)
> {
>
Acked-by: Paolo Bonzini <address@hidden>
- [Qemu-block] [PATCH v2 00/17] Byte-based block limits, Eric Blake, 2016/06/14
- [Qemu-block] [PATCH v2 02/17] block: Document supported flags during bdrv_aligned_preadv(), Eric Blake, 2016/06/14
- [Qemu-block] [PATCH v2 01/17] block: Tighter assertions on bdrv_aligned_pwritev(), Eric Blake, 2016/06/14
- [Qemu-block] [PATCH v2 04/17] nbd: Allow larger requests, Eric Blake, 2016/06/14
- [Qemu-block] [PATCH v2 03/17] block: Fix harmless off-by-one in bdrv_aligned_preadv(), Eric Blake, 2016/06/14
- [Qemu-block] [PATCH v2 05/17] nbd: Advertise realistic limits to block layer, Eric Blake, 2016/06/14