OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_2-5-g3f393ce
Gerrit Code Review
gerrit@openafs.org
Thu, 14 Nov 2024 11:26:05 -0500
The following commit has been merged in the master branch:
commit 3f393cea96aab46649457ad2a43d6d0a1a8fe83d
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
Date: Mon Jun 27 19:06:54 2022 +0000
afs: Prioritize removal of unlinked vcaches
On some platforms (such as LINUX), unlinked vcaches are not destroyed
until the next execution of afs_ShakeLooseVCaches(). Since the hash for
a given vcache is computed from its volume id and vnode number, keeping
unlinked vcaches around can be a problem if files are repeatedly deleted
and recreated in the same volume. In this scenario, the same vnode
number will be reused several times, resulting in many vcaches with the
same volume id and vnode number (but different unique ids) in the same
bucket. Consequently, finding a given vcache in the bucket in question
can be time consuming (and cause extra cpu processing), as we would have
to traverse a long linked list.
To mitigate this problem, move vcaches associated with unlinked files to
the least recently used position in our VLRU, prioritizing their removal
the next time afs_ShakeLooseVCaches() is executed.
Introduce the QAddEnd() macro to make it easier to add a vcache to the
end of the VLRU.
Change-Id: Idc74da0c3c0b27bfdf2cd491b003bdd42c889a95
Reviewed-on: https://gerrit.openafs.org/14961
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
src/afs/VNOPS/afs_vnop_remove.c | 38 +++++++++++++++++++++++++++++++++++++-
src/afs/afs.h | 3 +++
2 files changed, 40 insertions(+), 1 deletion(-)
--
OpenAFS Master Repository