[PATCH 04/10] block: avoid unpinning/freeing the bio_vec incase of cloned bio
Kanchan Joshi
joshi.k at samsung.com
Wed May 1 06:02:45 PDT 2024
On 4/29/2024 10:39 PM, Christoph Hellwig wrote:
> On Mon, Apr 29, 2024 at 05:10:59PM +0530, Kanchan Joshi wrote:
>>> This feels wrong. I suspect the problem is that BIP_COPY_USER is
>>> inherited for clone bios while it shouldn't.
>>>
>>
>> But BIP_COPY_USER flag is really required in the clone bio. So that we
>> can copy the subset of the metadata back (from kernel bounce buffer to
>> user space pinned buffer) in case of read io.
>>
>> Overall, copy-back will happen in installments (for each cloned bio),
>> while the unpin will happen in one shot (for the source bio).
>
> That seems a bit odd compared to the bio data path. If you think this
> is better than the version used in the data path let's convert the
> data path to this scheme first to make sure we don't diverge and get
> the far better testing on the main data map side.
>
Can you please tell what function(s) in bio data path that need this
conversion?
To me data path handling seems similar. Each cloned bio will lead to
some amount of data transfer to pinned user-memory. The same is
happening for meta transfer here.
More information about the Linux-nvme
mailing list