From: Christian Brauner Date: Thu, 21 Nov 2024 10:15:21 +0000 (+0100) Subject: Merge patch series "symlink length caching" X-Git-Tag: v6.14-rc1~216^2~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=84208b8fa3b7e73d1cc08efe7eaf527e28d8b951;p=thirdparty%2Fkernel%2Flinux.git Merge patch series "symlink length caching" Mateusz Guzik says: quote: When utilized it dodges strlen() in vfs_readlink(), giving about 1.5% speed up when issuing readlink on /initrd.img on ext4. The size is stored in a union with i_devices, which is never looked at unless the inode is for a device. ext4 and tmpfs are patched, other filesystems can also get there with some more work. benchmark: plug into will-it-scale into tests/readlink1.c: char *testcase_description = "readlink /initrd.img"; void testcase(unsigned long long *iterations, unsigned long nr) { char *tmplink = "/initrd.img"; char buf[1024]; while (1) { int error = readlink(tmplink, buf, sizeof(buf)); assert(error > 0); (*iterations)++; } } * patches from https://lore.kernel.org/r/20241120112037.822078-1-mjguzik@gmail.com: tmpfs: use inode_set_cached_link() ext4: use inode_set_cached_link() vfs: support caching symlink lengths in inodes Link: https://lore.kernel.org/r/20241120112037.822078-1-mjguzik@gmail.com Signed-off-by: Christian Brauner --- 84208b8fa3b7e73d1cc08efe7eaf527e28d8b951