ovl: use plain list filler in indexdir and workdir cleanup
authorAmir Goldstein <amir73il@gmail.com>
Tue, 4 Oct 2022 10:34:33 +0000 (13:34 +0300)
committerMiklos Szeredi <mszeredi@redhat.com>
Thu, 8 Dec 2022 09:49:46 +0000 (10:49 +0100)
commitaf4dcb6d78b2b05a0431dfd3f67713bba8dc0900
treea77b4e78247c6bf0d6bd70961b7e34a84211a153
parent8ea2876577b57805489e3044de7fcb0330c52f40
ovl: use plain list filler in indexdir and workdir cleanup

Those two cleanup routines are using the helper ovl_dir_read() with the
merge dir filler, which populates an rb tree, that is never used.

The index dir entry names all have a long (42 bytes) constant prefix, so it
is not surprising that perf top has demostrated high CPU usage by rb tree
population during cleanup of a large index dir:

      - 9.53% ovl_fill_merge
         - 78.41% ovl_cache_entry_find_link.constprop.27
            + 72.11% strncmp

Use the plain list filler that does not populate the unneeded rb tree.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/overlayfs/readdir.c