[Cluster-devel] [GFS2 PATCH 0/2] Improve throughput through rgrp sharing (v3)

Bob Peterson rpeterso at redhat.com
Tue May 15 18:29:40 UTC 2018


Hi,

This is version 3 of my patch set to allow rgrp glock sharing,
based on feedback I received from Steve Whitehouse and Andreas
Gruenbacher. It improves upon version 2 in the following ways:

1. Comments and descriptions are fixed to match the actual intent
   of the code. They were previously outdated and incorrect.
2. The rwsem has been replaced by a simple semaphore, since there
   is no non-exclusive access to the locks yet.
3. The newer versions of the patches don't take the rgrp exclusive
   lock multiple times for a transaction, so there is no longer a
   need to track who is holding the semaphore. Therefore all that
   has been eliminated.
4. Some variable and function names have been renamed to make more sense.

The first patch introduces the new glock holder flag that allows
multiple tasks on a single node to share a glock held in EX mode.

The second patch puts the new holder flag into use for rgrp sharing.
Exclusive access to the rgrp is implemented through a new rgrp
semaphore and supporting functions.

Performance tests done on an earlier prototype indicate the overall
throughput is 6X the original code when multiple processes are writing,
with vastly improved sharing of the block allocator.

Bob Peterson (2):
  GFS2: Introduce LM_FLAG_NODE_EX holder bit: Node Exclusive sharing
  GFS2: Introduce rgrp sharing

 fs/gfs2/bmap.c   |  2 +-
 fs/gfs2/dir.c    |  2 +-
 fs/gfs2/glock.c  | 23 ++++++++++---
 fs/gfs2/glock.h  |  6 ++++
 fs/gfs2/incore.h |  2 ++
 fs/gfs2/inode.c  |  7 ++--
 fs/gfs2/rgrp.c   | 86 ++++++++++++++++++++++++++++++++++++++++--------
 fs/gfs2/rgrp.h   |  2 +-
 fs/gfs2/super.c  |  8 +++--
 fs/gfs2/xattr.c  |  8 +++--
 10 files changed, 116 insertions(+), 30 deletions(-)

-- 
2.17.0




More information about the Cluster-devel mailing list