diff options
author | Mateusz Guzik <mjguzik@gmail.com> | 2024-05-08 10:14:00 +0200 |
---|---|---|
committer | Eric Biggers <ebiggers@google.com> | 2024-05-08 10:28:58 -0700 |
commit | 7f016edaa0f385da0c37eee1ebb64c7f6929c533 (patch) | |
tree | e68fcf72102a311d60bd6e0bd5c1f9f7c792e8c6 /fs/btrfs/tree-mod-log.c | |
parent | dd5a440a31fae6e459c0d6271dddd62825505361 (diff) |
fscrypt: try to avoid refing parent dentry in fscrypt_file_open
Merely checking if the directory is encrypted happens for every open
when using ext4, at the moment refing and unrefing the parent, costing 2
atomics and serializing opens of different files.
The most common case of encryption not being used can be checked for
with RCU instead.
Sample result from open1_processes -t 20 ("Separate file open/close")
from will-it-scale on Sapphire Rapids (ops/s):
before: 12539898
after: 25575494 (+103%)
v2:
- add a comment justifying rcu usage, submitted by Eric Biggers
- whack spurious IS_ENCRYPTED check from the refed case
Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link: https://lore.kernel.org/r/20240508081400.422212-1-mjguzik@gmail.com
Signed-off-by: Eric Biggers <ebiggers@google.com>
Diffstat (limited to 'fs/btrfs/tree-mod-log.c')
0 files changed, 0 insertions, 0 deletions