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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox