blk-integrity: support arbitrary buffer alignment#588
blk-integrity: support arbitrary buffer alignment#588blktests-ci[bot] wants to merge 1 commit intolinus-master_basefrom
Conversation
|
Upstream branch: 6de23f8 |
c90f83b to
c475e20
Compare
|
Upstream branch: 7dff99b |
b412689 to
9c4134d
Compare
c475e20 to
14f6b99
Compare
|
Upstream branch: a75cb86 |
9c4134d to
19e64d2
Compare
14f6b99 to
856dc37
Compare
|
Upstream branch: 4d349ee |
19e64d2 to
551fcd3
Compare
856dc37 to
40967f0
Compare
|
Upstream branch: 11439c4 |
551fcd3 to
b689ffa
Compare
40967f0 to
d4e9bad
Compare
|
Upstream branch: af4e9ef |
b689ffa to
800339e
Compare
d4e9bad to
ecd10e2
Compare
|
Upstream branch: af4e9ef |
ecd10e2 to
d0e1bed
Compare
800339e to
9202378
Compare
d0e1bed to
6b51c57
Compare
|
Upstream branch: 0031c06 |
9202378 to
0183668
Compare
6b51c57 to
78036b2
Compare
|
Upstream branch: ecc64d2 |
0183668 to
7c7eab7
Compare
78036b2 to
bbb3394
Compare
|
Upstream branch: c107785 |
7c7eab7 to
6de080f
Compare
bbb3394 to
901a429
Compare
|
Upstream branch: 5ee8dbf |
6de080f to
00c1d08
Compare
901a429 to
1f19ba6
Compare
|
Upstream branch: 1f318b9 |
00c1d08 to
b87ce81
Compare
1f19ba6 to
e79276a
Compare
A bio segment may have partial interval block data with the rest continuing into the next segments because direct-io data payloads only need to align in memory to the device's DMA limits. At the same time, the protection information may also be split in multiple segments. The most likely way that may happen is if two requests merge, or if we're directly using the io_uring user metadata. The generate/verify, however, only ever accessed the first bip_vec. Further, it may be possible to unalign the protection fields from the user space buffer, or if there are odd additional opaque bytes in front or in back of the protection information metadata region. Change up the iteration to allow spanning multiple segments. This patch is mostly a re-write of the protection information handling to allow any arbitrary alignments, so it's probably easier to review the end result rather than the diff. Many controllers are not able to handle interval data composed of multiple segments when PI is used, so this patch introduces a new integrity limit that a low level driver can set to notify that it is capable, default to false. The nvme driver is the first one to enable it in this patch. Everyone else will force DMA alignment to the logical block size as before to ensure interval data is always aligned within a single segment. Reviewed-by: "Martin K. Petersen" <martin.petersen@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Keith Busch <kbusch@kernel.org>
|
Upstream branch: None |
b87ce81 to
259c252
Compare
Pull request for series with
subject: blk-integrity: support arbitrary buffer alignment
version: 1
url: https://patchwork.kernel.org/project/linux-block/list/?series=1056653