Hi, while testing I noticed that sometimes thousands of items are inserted into file_hashtbl, but it's a small fixed-size hash. That makes the buckets in file_hashtbl larger than two or three items. The comparison function (fh_match) used while walking through the buckets is expensive and cache-unfriendly. The following patches seem to help alleviate that overhead. --- Chuck Lever (2): NFSD: Use const pointers as parameters to fh_ helpers. NFSD: Use rhashtable for managing nfs4_file objects fs/nfsd/nfs4state.c | 227 ++++++++++++++++++++++++++++++-------------- fs/nfsd/nfsfh.h | 10 +- fs/nfsd/state.h | 5 +- 3 files changed, 162 insertions(+), 80 deletions(-) -- Chuck Lever