Message ID | 20230803024656epcms2p4da6defb8e1e9b050fe2fbd52cb2e9524@epcms2p4 (mailing list archive) |
---|---|
Headers | show |
Series | multi-page bvec configuration for integrity payload | expand |
Jinyoung, > In the case of NVMe, it has an integrity payload consisting of one > segment. So, rather than configuring SG_LIST, it was changed by direct > DMA mapping. > > The page-merge is not performed for the struct bio_vec when creating a > integrity payload in block. As a result, when creating an integrity > paylaod beyond one page, each struct bio_vec is generated, and its > bv_len does not exceed the PAGESIZE. > > To solve it, bio_integrity_add_page() should just add to the existing > bvec, similar to bio_add_page() and friends. This looks OK to me. I'll test on physical SCSI hardware tomorrow to make sure there are no regressions. Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Jinyoung, > This looks OK to me. I'll test on physical SCSI hardware tomorrow to > make sure there are no regressions. Lab test complete, no regressions seen. Tested-by: Martin K. Petersen <martin.petersen@oracle.com>
Hi, Martin. > Jinyoung, > > > This looks OK to me. I'll test on physical SCSI hardware tomorrow to > > make sure there are no regressions. > > Lab test complete, no regressions seen. > > Tested-by: Martin K. Petersen <martin.petersen@oracle.com> > > -- > Martin K. Petersen Oracle Linux Engineering I uploaded only the parts that would not be a problem in the patch-set I prepared for the first time. I will prepare to make good use of the nr_integrity_segments in the request structure. Thank you for your time. Have a nice day! Kind Regards, Jinyoung.
On Thu, 03 Aug 2023 11:46:56 +0900, Jinyoung Choi wrote: > In the case of NVMe, it has an integrity payload consisting of one segment. > So, rather than configuring SG_LIST, it was changed by direct DMA mapping. > > The page-merge is not performed for the struct bio_vec when creating > a integrity payload in block. > As a result, when creating an integrity paylaod beyond one page, each > struct bio_vec is generated, and its bv_len does not exceed the PAGESIZE. > > [...] Applied, thanks! [1/4] block: make bvec_try_merge_hw_page() non-static commit: 7c8998f75d2d42ddefb172239b0f689392958309 [2/4] bio-integrity: update the payload size in bio_integrity_add_page() commit: 80814b8e359f7207595f52702aea432a7bd61200 [3/4] bio-integrity: cleanup adding integrity pages to bip's bvec. commit: d1f04c2e23c99258049c6081c3147bae69e5bcb8 [4/4] bio-integrity: create multi-page bvecs in bio_integrity_add_page() commit: 0ece1d649b6dd615925a72bc1824d6b9fa5b998a Best regards,