On Wed, May 08, 2024 at 10:14:00AM +0200, Mateusz Guzik wrote: > 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@xxxxxxxxx> > --- > fs/crypto/hooks.c | 32 ++++++++++++++++++++++++++------ > 1 file changed, 26 insertions(+), 6 deletions(-) Applied to https://git.kernel.org/pub/scm/fs/fscrypt/linux.git/log/?h=for-next Thanks! - Eric