Thread (62 messages) 62 messages, 2 authors, 2022-01-04

Re: [PATCH v11 11/14] btrfs: send: write larger chunks when using stream v2

From: Nikolay Borisov <hidden>
Date: 2021-10-18 12:57:22
Also in: linux-btrfs, linux-fsdevel


On 1.09.21 г. 20:01, Omar Sandoval wrote:
From: Omar Sandoval <redacted>

The length field of the send stream TLV header is 16 bits. This means
that the maximum amount of data that can be sent for one write is 64k
minus one. However, encoded writes must be able to send the maximum
compressed extent (128k) in one command. To support this, send stream
version 2 encodes the DATA attribute differently: it has no length
field, and the length is implicitly up to the end of containing command
(which has a 32-bit length field). Although this is necessary for
encoded writes, normal writes can benefit from it, too.

For v2, let's bump up the send buffer to the maximum compressed extent
size plus 16k for the other metadata (144k total). Since this will most
likely be vmalloc'd (and always will be after the next commit), we round
it up to the next page since we might as well use the rest of the page
on systems with >16k pages.

Signed-off-by: Omar Sandoval <redacted>
Reviewed-by: Nikolay Borisov <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help