Skip to content

Conversation

@amarts
Copy link
Owner

@amarts amarts commented Aug 29, 2020

inode_ref/inode_unref are very common operation, and taking
a table->lock makes no complete sense. By making 'ref' as atomic,
we can make most part of the inode_ref/inode_unref as lock-free.

also as a side effect, removed the check for root_inode from
ref/unref functions, thus making them even leaner.

also work on making critical section smaller

  • do all the 'static' tasks outside of locked region.
  • In this patch, considering hash_dentry() and hash_gfid().
  • Also remove extra __dentry_hash exported in libglusterfs.sym

Credits: Mohit Agarwal

updates: #1000
Change-Id: I78f0d77f28ed48cdd0dc7c3489fc8ca32c36e263
Signed-off-by: Amar Tumballi amar@kadalu.io

inode_ref/inode_unref are very common operation, and taking
a table->lock makes no complete sense. By making 'ref' as atomic,
we can make most part of the inode_ref/inode_unref as lock-free.

also as a side effect, removed the check for root_inode from
ref/unref functions, thus making them even leaner.

also work on making critical section smaller

 * do all the 'static' tasks outside of locked region.
 * In this patch, considering hash_dentry() and hash_gfid().
 * Also remove extra __dentry_hash exported in libglusterfs.sym

Credits: Mohit Agarwal

updates: #1000
Change-Id: I78f0d77f28ed48cdd0dc7c3489fc8ca32c36e263
Signed-off-by: Amar Tumballi <amar@kadalu.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants