From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Gruenbacher Date: Wed, 14 Oct 2020 11:58:16 +0200 Subject: [Cluster-devel] [RFC 00/17] gfs2: resource group glock sharing Message-ID: <20201014095833.1035870-1-agruenba@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Here's an update of my resource group glock sharing patches. The key patch of this patch queue is "gfs2: Add per-reservation reserved block accounting": with resource group glock sharing, multiple allocations can be going on in parallel. This requires tracking of the actual space reserved for each allocation to prevent the allocator from handing out more blocks than available. Before this commit, the filesystem would report to be out of space when the number of tentatively reserved blocks would exceed the free space available. In the most extreme workload that only creates empty inodes, that would be the case when only 1/32 of the filesystem is full. With the above mentioned commit, the filesystem will continue to allocate blocks in such situations, but only at a very slow rate because the tentatively reserved blocks will still get in the way. Commit "gfs2: Limit the maximum amount of reserved space" changes that to shrink the amount of tentatively reserved space to no more than half the free space when no more blocks can be reserved. Thanks, Andreas Andreas Gruenbacher (14): gfs2: Turn gfs2_rbm_incr into gfs2_rbm_add gfs2: Only use struct gfs2_rbm for bitmap manipulations gfs2: Get rid of unnecessary variable in gfs2_alloc_blocks gfs2: Minor gfs2_inplace_reserve cleanup Revert "gfs2: Don't reject a supposedly full bitmap if we have blocks reserved" gfs2: Don't clear GBF_FULL flags in rs_deltree gfs2: Set GBF_FULL flags when reading resource groups gfs2: When looking for blocks to allocate, don't clamp at free blocks gfs2: Also reflect single-block allocations in rgd->rd_extfail_pt gfs2: Only pass reservation down to gfs2_rbm_find gfs: Don't search for unreserved space twice gfs2: Add per-reservation reserved block accounting gfs2: Limit the maximum amount of reserved space gfs2: Rename rs_free to rs_wanted Bob Peterson (3): gfs2: Add local resource group locking gfs2: Allow node-wide exclusive glock sharing gfs2: Use resource group glock sharing fs/gfs2/bmap.c | 4 +- fs/gfs2/file.c | 4 +- fs/gfs2/glock.c | 22 +- fs/gfs2/glock.h | 6 + fs/gfs2/incore.h | 36 +--- fs/gfs2/inode.c | 6 +- fs/gfs2/lops.c | 7 +- fs/gfs2/rgrp.c | 489 ++++++++++++++++++++++++++----------------- fs/gfs2/rgrp.h | 4 + fs/gfs2/super.c | 3 +- fs/gfs2/trace_gfs2.h | 33 ++- fs/gfs2/trans.h | 2 +- fs/gfs2/xattr.c | 6 +- 13 files changed, 376 insertions(+), 246 deletions(-) -- 2.26.2