On 10/9/21 6:25 AM, Pavel Begunkov wrote: > bdev = &BDEV_I(file->f_mapping->host)->bdev > > Getting struct block_device from a file requires 2 memory dereferences > as illustrated above, that takes a toll on performance, so cache it in > yet unused file->private_data. That gives a noticeable peak performance > improvement. It's hilariously bad right now, so I really welcome this change. One comment: > +static inline struct block_device *blkdev_get_bdev(struct file *file) > +{ > + return file->private_data; > +} Get rid of this and just use bdev = file->private_data where appropriate. Easier to read, we don't need to hide this in a function. -- Jens Axboe