[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cross-project PATCH v2] NBD 64-bit extensions
From: |
Eric Blake |
Subject: |
[cross-project PATCH v2] NBD 64-bit extensions |
Date: |
Mon, 14 Nov 2022 16:41:41 -0600 |
User-agent: |
NeoMutt/20220429 |
This is a cover letter for a set of multi-project patch series all
designed to implement 64-bit operations in NBD, and demonstrate
interoperability of the new extension between projects.
v1 of the project was attempted nearly a year ago:
https://lists.nongnu.org/archive/html/qemu-devel/2021-12/msg00453.html
Since then, I've addressed a lot of preliminary cleanups in libnbd to
make it easier to test things, and incorporated review comments issued
on v1, including:
- no orthogonality between simple/structured replies and 64-bit mode:
once extended headers are negotiated, all transmission traffic (both
from client to server and server to client) uses just one header
size
- add support for the client to pass a payload on commands to the
server, and demonstrate it by further implementing a way to pass a
flag with NBD_CMD_BLOCK_STATUS that says the client is passing a
payload to request status of just a subset of the negotiated
contexts, rather than all possible contexts that were earlier
negotiated during NBD_OPT_SET_META_CONTEXT
- tweaks to the header layouts: tweak block status to provide 64-bit
flags values (although "base:allocation" will remain usable with
just 32-bit flags); reply with offset rather than padding and with
fields rearranged for maximal sharing between client and server
layouts
- word-smithing of the NBD proposed protocol; split things into
several smaller patches, where we can choose how much to take
- more unit tests added in qemu and libnbd
- the series end with RFC patches on whether to support 64-bit hole
responses to NBD_CMD_READ, even though our current limitations say
servers don't have to accept more than a 32M read request and
therefore will never have that big of a hole to read)
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
- [cross-project PATCH v2] NBD 64-bit extensions,
Eric Blake <=
- [libnbd PATCH v2 00/23] libnbd 64-bit NBD extensions, Eric Blake, 2022/11/14
- [libnbd PATCH v2 15/23] info: Update nbdinfo --map to use 64-bit block status, Eric Blake, 2022/11/14
- [libnbd PATCH v2 12/23] copy: Update nbdcopy to use 64-bit block status, Eric Blake, 2022/11/14
- [libnbd PATCH v2 23/23] RFC: pread: Accept 64-bit holes, Eric Blake, 2022/11/14
- [libnbd PATCH v2 21/23] api: Add nbd_can_block_status_payload(), Eric Blake, 2022/11/14
- [libnbd PATCH v2 16/23] examples: Update copy-libev to use 64-bit block status, Eric Blake, 2022/11/14
- [libnbd PATCH v2 19/23] api: Add nbd_[aio_]opt_extended_headers(), Eric Blake, 2022/11/14
- [libnbd PATCH v2 17/23] ocaml: Add example for 64-bit extents, Eric Blake, 2022/11/14
- [libnbd PATCH v2 22/23] api: Add nbd_[aio_]block_status_filter(), Eric Blake, 2022/11/14
- [libnbd PATCH v2 08/23] block_status: Track 64-bit extents internally, Eric Blake, 2022/11/14