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