From: Andreas Gruenbacher <agruenba@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [RFC 00/17] gfs2: resource group glock sharing
Date: Wed, 14 Oct 2020 11:58:16 +0200 [thread overview]
Message-ID: <20201014095833.1035870-1-agruenba@redhat.com> (raw)
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
next reply other threads:[~2020-10-14 9:58 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-14 9:58 Andreas Gruenbacher [this message]
2020-10-14 9:58 ` [Cluster-devel] [RFC 01/17] gfs2: Turn gfs2_rbm_incr into gfs2_rbm_add Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 02/17] gfs2: Only use struct gfs2_rbm for bitmap manipulations Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 03/17] gfs2: Get rid of unnecessary variable in gfs2_alloc_blocks Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 04/17] gfs2: Minor gfs2_inplace_reserve cleanup Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 05/17] Revert "gfs2: Don't reject a supposedly full bitmap if we have blocks reserved" Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 06/17] gfs2: Don't clear GBF_FULL flags in rs_deltree Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 07/17] gfs2: Set GBF_FULL flags when reading resource groups Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 08/17] gfs2: When looking for blocks to allocate, don't clamp at free blocks Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 09/17] gfs2: Also reflect single-block allocations in rgd->rd_extfail_pt Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 10/17] gfs2: Only pass reservation down to gfs2_rbm_find Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 11/17] gfs: Don't search for unreserved space twice Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 12/17] gfs2: Add per-reservation reserved block accounting Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 13/17] gfs2: Add local resource group locking Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 14/17] gfs2: Allow node-wide exclusive glock sharing Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 15/17] gfs2: Use resource group " Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 16/17] gfs2: Limit the maximum amount of reserved space Andreas Gruenbacher
2020-10-14 9:58 ` [Cluster-devel] [RFC 17/17] gfs2: Rename rs_free to rs_wanted Andreas Gruenbacher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201014095833.1035870-1-agruenba@redhat.com \
--to=agruenba@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).