diff options
| author | Mateusz Guzik <[email protected]> | 2024-08-10 06:47:53 +0000 |
|---|---|---|
| committer | Christian Brauner <[email protected]> | 2024-08-30 06:22:36 +0000 |
| commit | 8447d848e1dc6d42d1dcd00f133d7715fc732c47 (patch) | |
| tree | ce84df5664c493a20b444ab48b694d076a1d61fc /drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | |
| parent | fs/select: Annotate struct poll_list with __counted_by() (diff) | |
| download | kernel-8447d848e1dc6d42d1dcd00f133d7715fc732c47.tar.gz kernel-8447d848e1dc6d42d1dcd00f133d7715fc732c47.zip | |
vfs: only read fops once in fops_get/put
In do_dentry_open() the usage is:
f->f_op = fops_get(inode->i_fop);
In generated asm the compiler emits 2 reads from inode->i_fop instead of
just one.
This popped up due to false-sharing where loads from that offset end up
bouncing a cacheline during parallel open. While this is going to be fixed,
the spurious load does not need to be there.
This makes do_dentry_open() go down from 1177 to 1154 bytes.
fops_put() is patched to maintain some consistency.
No functional changes.
Reviewed-by: Josef Bacik <[email protected]>
Signed-off-by: Mateusz Guzik <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Christian Brauner <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c')
0 files changed, 0 insertions, 0 deletions
