public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] xfs: support removal of multi-record inode chunks
@ 2015-05-28 20:16 Brian Foster
  2015-05-28 20:16 ` [PATCH 1/3] xfs: create helper to delete multiple inobt records Brian Foster
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Brian Foster @ 2015-05-28 20:16 UTC (permalink / raw)
  To: xfs

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-05-28 20:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-28 20:16 [PATCH 0/3] xfs: support removal of multi-record inode chunks Brian Foster
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox