Re: [Question] Accessing read data in bio request

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Please don't top post

On 4/18/22 7:06 AM, Jasper Surmont wrote:
> On 18/04/2022 04:59, Jens Axboe wrote:
>> On 4/14/22 8:15 AM, Jasper Surmont wrote:
>>> I'm writing a device mapper target, and on a bio (read) request I want
>>> to access (for example just logging) the data that was just read (by
>>> providing a callback to bio->bio_end_io).
>>>
>>> I've figured out I could read the data by using bvec_kmap_local() on
>>> each bio_vec to get a pointer to the data. However, if my
>>> understanding is correct this seems like an unefficient way: if the
>>> bio just finished a read then shouldn't the data already be mapped
>>> somewhere? If so, where?
>>
>> Not necessarily - if you're doing passthrough or O_DIRECT IO, then
>> no mapping necessarily exists for any part of the IO.
>
> Okay thanks! So does this mean that you would suggest doing it with
> bvec_kmap_local()? Or are there other, maybe better, methods?

That's the way, yes.

-- 
Jens Axboe




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux