Messages in this thread | | | Date | Wed, 13 Oct 2021 19:44:20 +0100 | From | Pavel Begunkov <> | Subject | Re: [PATCH v2 2/3] block: don't hide inode from block_device users |
| |
On 10/13/21 16:25, Christoph Hellwig wrote: > On Wed, Oct 13, 2021 at 09:57:12AM +0100, Pavel Begunkov wrote: >> Instead of tricks with struct bdev_inode, just openly place the inode >> inside struct block_device. First, it allows us to inline I_BDEV, which >> is simple but non-inline nature of it impacts performance. Also, make it >> possible to get rid of ->bd_inode pointer and hooping with extra >> indirection, the amount of which became a noticeable problem for the >> block layer. > > What fast path outside of bdev.c cares about an inlined I_BDEV?
Mildly hot in io_uring w/o fixed files, but that's not peak perf, but would also be great to get rid of bdev->bd_inode dereference, e.g. lots of in fops.c.
Are you going to just hid the dereference in helpers or kill it with some offseting magic?
> I have dusted off patches to reduce (and hopefully eventually kill) > accesses to bd_inode outside of bdev.c, so this goes into the wrong > direction. > > If needed I'd rather figure out a way to fix any smoking gun without > this change. >
-- Pavel Begunkov
| |