From: Brian Foster <bfoster@redhat.com>
To: xfs@oss.sgi.com
Subject: Re: [PATCH v6 00/18] xfs: sparse inode chunks
Date: Wed, 6 May 2015 10:19:55 -0400 [thread overview]
Message-ID: <20150506141953.GA21159@bfoster.bfoster> (raw)
In-Reply-To: <1425302888-4962-1-git-send-email-bfoster@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 5502 bytes --]
On Mon, Mar 02, 2015 at 08:27:50AM -0500, Brian Foster wrote:
> Hi all,
>
> Here's a v6 of sparse inode chunks. This fixes a bug on large block size
> filesystems where an inode chunk was being incorrectly freed. The
> problem was that patch 2 changed the previously implicit behavior of
> never freeing an inode chunk on filesystems where the block size is
> large enough for multiple chunks (e.g., bsize=64k, isize<=512). Patch 2
> has been fixed to preserve original behavior.
>
> There have also been some minor fixups throughout associated with a
> rebase to the latest for-next. This includes killing some old sb logging
> bits and passing mp to XFS_WANT_CORRUPTED_GOTO().
>
> Brian
>
Attached is an xfsprogs tarball corresponding to this release. This
version is based on the libxfs-3.19-update xfsprogs branch. It includes
a few dependency backports on top of that branch, relevant backports
from the kernel series and various bits of userspace support.
xfs_metadump support has been added since the previous drop. mkfs
instructions remain the same as before, described here:
http://oss.sgi.com/archives/xfs/2015-02/msg00386.html
Brian
> v6:
> - Rebase to latest for-next (minor fixups).
> - Fix corruption bug on multi-inode-chunk per block fs (patch 2).
> v5: http://oss.sgi.com/archives/xfs/2015-02/msg00371.html
> - Use XFS helpers for allocmask code instead of generic bitmap helpers.
> v4: http://oss.sgi.com/archives/xfs/2015-02/msg00240.html
> - Rename sb_spinoalignmt to sb_spino_align.
> - Clean up error/warning messages.
> - Use a union to differentiate old/new xfs_inobt_rec on-disk format.
> Refactor such that in-core record fields are always valid.
> - Rename/move allocmap (bitmap) helper functions and provide extra
> helper for endian conv.
> - Refactor sparse chunk allocation record management code.
> - Clean up #ifdef and label usage for DEBUG mode sparse allocs.
> - Split up and moved some generic, preparatory hunks earlier in series.
> v3: http://oss.sgi.com/archives/xfs/2015-02/msg00110.html
> - Rebase to latest for-next (bulkstat rework, data structure shuffling,
> etc.).
> - Fix issparse helper logic.
> - Update inode alignment model w/ spinodes enabled. All inode records
> are chunk size aligned, sparse allocations cluster size aligned (both
> enforced on mount).
> - Reworked sparse inode record merge logic to coincide w/ new alignment
> model.
> - Mark feature as experimental (warn on mount).
> - Include and use block allocation agbno range limit to prevent
> allocation of invalid inode records.
> - Add some DEBUG bits to improve sparse alloc. test coverage.
> v2: http://oss.sgi.com/archives/xfs/2014-11/msg00007.html
> - Use a manually set feature bit instead of dynamic based on the
> existence of sparse inode chunks.
> - Add sb/mp fields for sparse alloc. granularity (use instead of cluster
> size).
> - Undo xfs_inobt_insert() loop removal to avoid breakage of larger page
> size arches.
> - Rename sparse record overlap helper and do XFS_LOOKUP_LE search.
> - Use byte of pad space in inobt record for inode count field.
> - Convert bitmap mgmt to use generic bitmap code.
> - Rename XFS_INODES_PER_SPCHUNK to XFS_INODES_PER_HOLEMASK_BIT.
> - Add fs geometry bit for sparse inodes.
> - Rebase to latest for-next (bulkstat refactor).
> v1: http://oss.sgi.com/archives/xfs/2014-07/msg00355.html
>
> Brian Foster (18):
> xfs: create individual inode alloc. helper
> xfs: update free inode record logic to support sparse inode records
> xfs: support min/max agbno args in block allocator
> xfs: add sparse inode chunk alignment superblock field
> xfs: use sparse chunk alignment for min. inode allocation requirement
> xfs: sparse inode chunks feature helpers and mount requirements
> xfs: add fs geometry bit for sparse inode chunks
> xfs: introduce inode record hole mask for sparse inode chunks
> xfs: use actual inode count for sparse records in bulkstat/inumbers
> xfs: pass inode count through ordered icreate log item
> xfs: handle sparse inode chunks in icreate log recovery
> xfs: helper to convert holemask to inode alloc. bitmap
> xfs: allocate sparse inode chunks on full chunk allocation failure
> xfs: randomly do sparse inode allocations in DEBUG mode
> xfs: filter out sparse regions from individual inode allocation
> xfs: only free allocated regions of inode chunks
> xfs: skip unallocated regions of inode chunks in xfs_ifree_cluster()
> xfs: enable sparse inode chunks for v5 superblocks
>
> fs/xfs/libxfs/xfs_alloc.c | 42 ++-
> fs/xfs/libxfs/xfs_alloc.h | 2 +
> fs/xfs/libxfs/xfs_format.h | 48 +++-
> fs/xfs/libxfs/xfs_fs.h | 1 +
> fs/xfs/libxfs/xfs_ialloc.c | 541 +++++++++++++++++++++++++++++++++++----
> fs/xfs/libxfs/xfs_ialloc.h | 12 +-
> fs/xfs/libxfs/xfs_ialloc_btree.c | 93 ++++++-
> fs/xfs/libxfs/xfs_ialloc_btree.h | 10 +
> fs/xfs/libxfs/xfs_sb.c | 30 ++-
> fs/xfs/xfs_fsops.c | 4 +-
> fs/xfs/xfs_inode.c | 28 +-
> fs/xfs/xfs_itable.c | 13 +-
> fs/xfs/xfs_log_recover.c | 26 +-
> fs/xfs/xfs_mount.c | 16 ++
> fs/xfs/xfs_mount.h | 2 +
> fs/xfs/xfs_trace.h | 47 ++++
> 16 files changed, 829 insertions(+), 86 deletions(-)
>
> --
> 1.9.3
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
[-- Attachment #2: xfsprogs-sparse-inodes-v6.tar.bz2 --]
[-- Type: application/x-bzip2, Size: 30577 bytes --]
[-- Attachment #3: Type: text/plain, Size: 121 bytes --]
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2015-05-06 14:20 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-02 13:27 [PATCH v6 00/18] xfs: sparse inode chunks Brian Foster
2015-03-02 13:27 ` [PATCH v6 01/18] xfs: create individual inode alloc. helper Brian Foster
2015-03-02 13:27 ` [PATCH v6 02/18] xfs: update free inode record logic to support sparse inode records Brian Foster
2015-03-02 13:27 ` [PATCH v6 03/18] xfs: support min/max agbno args in block allocator Brian Foster
2015-03-02 13:27 ` [PATCH v6 04/18] xfs: add sparse inode chunk alignment superblock field Brian Foster
2015-03-02 13:27 ` [PATCH v6 05/18] xfs: use sparse chunk alignment for min. inode allocation requirement Brian Foster
2015-03-02 13:27 ` [PATCH v6 06/18] xfs: sparse inode chunks feature helpers and mount requirements Brian Foster
2015-03-02 13:27 ` [PATCH v6 07/18] xfs: add fs geometry bit for sparse inode chunks Brian Foster
2015-03-02 13:27 ` [PATCH v6 08/18] xfs: introduce inode record hole mask " Brian Foster
2015-03-02 13:27 ` [PATCH v6 09/18] xfs: use actual inode count for sparse records in bulkstat/inumbers Brian Foster
2015-03-02 13:28 ` [PATCH v6 10/18] xfs: pass inode count through ordered icreate log item Brian Foster
2015-03-02 13:28 ` [PATCH v6 11/18] xfs: handle sparse inode chunks in icreate log recovery Brian Foster
2015-03-02 13:28 ` [PATCH v6 12/18] xfs: helper to convert holemask to inode alloc. bitmap Brian Foster
2015-03-02 13:28 ` [PATCH v6 13/18] xfs: allocate sparse inode chunks on full chunk allocation failure Brian Foster
2015-03-02 13:28 ` [PATCH v6 14/18] xfs: randomly do sparse inode allocations in DEBUG mode Brian Foster
2015-03-02 13:28 ` [PATCH v6 15/18] xfs: filter out sparse regions from individual inode allocation Brian Foster
2015-03-02 13:28 ` [PATCH v6 16/18] xfs: only free allocated regions of inode chunks Brian Foster
2015-03-02 13:28 ` [PATCH v6 17/18] xfs: skip unallocated regions of inode chunks in xfs_ifree_cluster() Brian Foster
2015-03-02 13:28 ` [PATCH v6 18/18] xfs: enable sparse inode chunks for v5 superblocks Brian Foster
2015-05-06 14:19 ` Brian Foster [this message]
2015-05-06 22:09 ` [PATCH v6 00/18] xfs: sparse inode chunks Dave Chinner
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=20150506141953.GA21159@bfoster.bfoster \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.