[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v4 14/14] nbd: Implement NBD_CMD_WRITE_ZEROES on
From: |
Eric Blake |
Subject: |
Re: [Qemu-block] [PATCH v4 14/14] nbd: Implement NBD_CMD_WRITE_ZEROES on client |
Date: |
Mon, 27 Jun 2016 07:00:49 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 06/27/2016 06:13 AM, Paolo Bonzini wrote:
>
>
> On 26/06/2016 00:15, Eric Blake wrote:
>> diff --git a/block/nbd.c b/block/nbd.c
>> index 8d57220..049d1bd 100644
>> --- a/block/nbd.c
>> +++ b/block/nbd.c
>> @@ -357,6 +357,7 @@ static int nbd_co_flush(BlockDriverState *bs)
>> static void nbd_refresh_limits(BlockDriverState *bs, Error **errp)
>> {
>> bs->bl.max_pdiscard = NBD_MAX_BUFFER_SIZE;
>> + bs->bl.max_pwrite_zeroes = NBD_MAX_BUFFER_SIZE;
>
> I have probably asked before---is there any reason for these to be
> limited, since the commands have no payload?
Here's the last time it was brought up on the nbd-general list [1]. We
have the potential BLOCK_SIZE handshake negotiation extension, where I
was proposing that the server can advertise its actual limits (rather
than the client having to guess them or rely on out-of-band information)
- and I was proposing that NBD_CMD_TRIM and NBD_CMD_WRITE_ZEROES should
be permitted to advertise additional limits that are larger than the
NBD_CMD_WRITE limit, precisely because they don't carry a payload and
can therefore be more efficient if done in bulk.
[1] https://sourceforge.net/p/nbd/mailman/message/35081223/
But at the time of that thread, there was concern expressed whether
adding and additional NBD_INFO for each NBD_CMD limit would scale well,
or whether we need a different approach, and I haven't revisited the
thread since that comment. At any rate, I have BLOCK_SIZE patches ready
for qemu, once the WRITE_ZERO patches land, and where it should be easy
to make this limit runtime-settable to a larger value from actual server
limits, if we can decide how BLOCK_SIZE should advertise such a limit.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-block] [PATCH v4 02/14] nbd: Add qemu-nbd -D for human-readable description, (continued)
- [Qemu-block] [PATCH v4 02/14] nbd: Add qemu-nbd -D for human-readable description, Eric Blake, 2016/06/25
- [Qemu-block] [PATCH v4 03/14] nbd: Limit nbdflags to 16 bits, Eric Blake, 2016/06/25
- [Qemu-block] [PATCH v4 05/14] nbd: Share common reply-sending code in server, Eric Blake, 2016/06/25
- [Qemu-block] [PATCH v4 06/14] nbd: Send message along with server NBD_REP_ERR errors, Eric Blake, 2016/06/25
- [Qemu-block] [PATCH v4 11/14] nbd: Support shorter handshake, Eric Blake, 2016/06/25
- [Qemu-block] [PATCH v4 07/14] nbd: Share common option-sending code in client, Eric Blake, 2016/06/25
- [Qemu-block] [PATCH v4 12/14] nbd: Improve server handling of shutdown requests, Eric Blake, 2016/06/25
- [Qemu-block] [PATCH v4 14/14] nbd: Implement NBD_CMD_WRITE_ZEROES on client, Eric Blake, 2016/06/25
- [Qemu-block] [PATCH v4 04/14] nbd: Treat flags vs. command type as separate fields, Eric Blake, 2016/06/25
- [Qemu-block] [PATCH v4 13/14] nbd: Implement NBD_CMD_WRITE_ZEROES on server, Eric Blake, 2016/06/25