public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Brian Foster <bfoster@redhat.com>
To: xfs@oss.sgi.com
Subject: [PATCH 0/3] xfs: support removal of multi-record inode chunks
Date: Thu, 28 May 2015 16:16:53 -0400	[thread overview]
Message-ID: <1432844216-5820-1-git-send-email-bfoster@redhat.com> (raw)

Hi all,

I had recently started prototyping a mechanism to do inode preallocation
and deferred removal and one of my goals for that work was to also
handle the existing problem where inode chunks are never removed on
filesystems with large block sizes. While hashing the prealloc work out,
it became apparent that the large block size problem could stand on its
own. 

The problem is that for fs' where the number of inodes per block is
larger than 64 (e.g., -bsize=64k -isize=512b), a single inode chunk
requires more than one inobt record. For such fs', we don't currently
have enough context on inode removal to determine whether records other
than those for the particular inode can be removed. As such, inode
chunks are never freed. This series aims to provide enough context so
that inode records can be removed once the entire chunk is free.

Patch 1 introduces a new multi-record deletion helper but does not
change existing behavior. Patch 2 is the bulk of the enhancement. In a
nutshell, it provides a mechanism to determine whether an inode chunk
that spans one or more inobt records is completely free and to remove
the entire chunk if so. Patch 3 introduces some inobt record management
tracepoints.

So far this has seen medium testing on ppc64 with various block sizes up
to 64k (single and multiple inobt record per chunk configurations).
Thoughts, reviews, flames appreciated.

Brian

P.S., Note that this series applies on top of the sparse inode series.

Brian Foster (3):
  xfs: create helper to delete multiple inobt records
  xfs: remove entire inode chunks when all inodes are free
  xfs: inobt record insert/delete tracepoints

 fs/xfs/libxfs/xfs_ialloc.c | 270 +++++++++++++++++++++++++++++++++++++++++----
 fs/xfs/xfs_trace.h         |  32 ++++++
 2 files changed, 281 insertions(+), 21 deletions(-)

-- 
1.9.3

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

             reply	other threads:[~2015-05-28 20:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-28 20:16 Brian Foster [this message]
2015-05-28 20:16 ` [PATCH 1/3] xfs: create helper to delete multiple inobt records Brian Foster
2015-05-28 20:16 ` [PATCH 2/3] xfs: remove entire inode chunks when all inodes are free Brian Foster
2015-05-28 20:16 ` [PATCH 3/3] xfs: inobt record insert/delete tracepoints Brian Foster

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=1432844216-5820-1-git-send-email-bfoster@redhat.com \
    --to=bfoster@redhat.com \
    --cc=xfs@oss.sgi.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