[Gluster-devel] [RFC] inode table locking contention reduction experiment

Changwei Ge chge at linux.alibaba.com
Tue Oct 29 06:51:08 UTC 2019


Hi,

I am recently working on reducing inode_[un]ref() locking contention by 
getting rid of inode table lock. Just use inode lock to protect inode 
REF. I have already discussed a couple rounds with several Glusterfs 
developers via emails and Gerrit and basically get understood on major 
logic around.

Currently, inode REF can be ZERO and be reused by increasing it to ONE.
This is IMO why we have to burden so much work for inode table when 
REF/UNREF. It makes inode [un]ref() and inode table and dentries(alias) 
searching hard to run concurrently.

So my question is in what cases, how can we find a inode whose REF is ZERO?

As Glusterfs store its inode memory address into kernel/fuse, can we 
conclude that only fuse_ino_to_inode() can bring back a REF=0 inode?


Thanks,
Changwei


More information about the Gluster-devel mailing list