From: Brian Foster <bfoster@redhat.com>
To: Dave Chinner <david@fromorbit.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH 00/28] xfsprogs: sparse inode chunks
Date: Tue, 16 Jun 2015 06:55:04 -0400 [thread overview]
Message-ID: <20150616105504.GA24853@bfoster.bfoster> (raw)
In-Reply-To: <20150616003923.GH20262@dastard>
On Tue, Jun 16, 2015 at 10:39:23AM +1000, Dave Chinner wrote:
> On Tue, Jun 16, 2015 at 10:33:44AM +1000, Dave Chinner wrote:
> > On Tue, Jun 02, 2015 at 02:41:33PM -0400, Brian Foster wrote:
> > > Hi all,
> > >
> > > Now that the sparse inode chunks feature is merged into the kernel tree
> > > for 4.2, here is the first official drop of userspace support. This
> > > series is based on the current libxfs-4.1-update branch.
> > >
> > > Patches 1-10 are libxfs infrastructure and correspond to the similarly
> > > named kernel patches. The bits not relevant to userspace are dropped
> > > along with the bulk of the sparse inode chunk allocation logic from the
> > > kernel due to the combination of non-existent dependencies in userspace
> > > (e.g., xfs_bit.c) and the fact that this code isn't invoked from
> > > userspace.
> >
> > Ok, so this is causing problems with merging other code into
> > userspace. What I'm trying to do is keepthe kernel fs/xfs/libxfs/
> > code as close to identical with the xfsprogs libxfs/ code so that
> > patches just port straight across. I came across this difference
> > because my rmap btree patches fail to apply cleanly to xfs_ialloc.c
> > and it's because of all this missing code in userspace.
> >
> > Rather than wait another day or two for you to rework this, Brian,
> > I'm simply going to rework this series to pull all the kernel patches
> > across and make it compile in userspace so that I can pull all the
> > rmap btree stuff across without needing to rework bits and peices of
> > the patchset.
>
> BTW, with patches I'll soon commit:
>
> $ tools/libxfs-apply --source ../kern/xfsdev/ --commit 22419ac..22ce1e1
> Commits to apply:
> d4cc540 xfs: create individual inode alloc. helper
> 999633d xfs: update free inode record logic to support sparse inode records
> bfe46d4 xfs: support min/max agbno args in block allocator
> fb4f2b4 xfs: add sparse inode chunk alignment superblock field
> 066a188 xfs: use sparse chunk alignment for min. inode allocation requirement
> e5376fc xfs: sparse inode chunks feature helpers and mount requirements
> 502a4e7 xfs: add fs geometry bit for sparse inode chunks
> 5419040 xfs: introduce inode record hole mask for sparse inode chunks
> 12d0714 xfs: use actual inode count for sparse records in bulkstat/inumbers
> 463958a xfs: pass inode count through ordered icreate log item
> 7f43c90 xfs: handle sparse inode chunks in icreate log recovery
> 4148c34 xfs: helper to convert holemask to inode alloc. bitmap
> 56d1115 xfs: allocate sparse inode chunks on full chunk allocation failure
> 1cdadee xfs: randomly do sparse inode allocations in DEBUG mode
> 26dd521 xfs: filter out sparse regions from individual inode allocation
> 10ae3dc7 xfs: only free allocated regions of inode chunks
> 09b5660 xfs: skip unallocated regions of inode chunks in xfs_ifree_cluster()
> 22ce1e1 xfs: enable sparse inode chunks for v5 superblocks
> Proceed [y|N]? y
> Applying patch..xfs__create_individual_inode_alloc_helper
> Patch applied.
> Patch xfs__create_individual_inode_alloc_helper refreshed
> Applying patch..xfs__update_free_inode_record_logic_to_support_sparse_inode_records
> Patch applied.
> Patch xfs__update_free_inode_record_logic_to_support_sparse_inode_records refreshed
> Applying patch..xfs__support_min-max_agbno_args_in_block_allocator
> Patch applied.
> Patch xfs__support_min-max_agbno_args_in_block_allocator refreshed
> Applying patch..xfs__add_sparse_inode_chunk_alignment_superblock_field
> Patch applied.
> Patch xfs__add_sparse_inode_chunk_alignment_superblock_field refreshed
> Applying patch..xfs__use_sparse_chunk_alignment_for_min_inode_allocation_requirement
> Patch applied.
> Patch xfs__use_sparse_chunk_alignment_for_min_inode_allocation_requirement refreshed
> Applying patch..xfs__sparse_inode_chunks_feature_helpers_and_mount_requirements
> Patch applied.
> Patch xfs__sparse_inode_chunks_feature_helpers_and_mount_requirements refreshed
> Applying patch..xfs__add_fs_geometry_bit_for_sparse_inode_chunks
> Patch applied.
> Patch xfs__add_fs_geometry_bit_for_sparse_inode_chunks refreshed
> Applying patch..xfs__introduce_inode_record_hole_mask_for_sparse_inode_chunks
> Patch applied.
> Patch xfs__introduce_inode_record_hole_mask_for_sparse_inode_chunks refreshed
> Applying patch..xfs__use_actual_inode_count_for_sparse_records_in_bulkstat-inumbers
> Patch applied.
> Patch xfs__use_actual_inode_count_for_sparse_records_in_bulkstat-inumbers refreshed
> Applying patch..xfs__pass_inode_count_through_ordered_icreate_log_item
> Patch applied.
> Patch xfs__pass_inode_count_through_ordered_icreate_log_item refreshed
> Applying patch..xfs__handle_sparse_inode_chunks_in_icreate_log_recovery
> Patch applied.
> Patch xfs__handle_sparse_inode_chunks_in_icreate_log_recovery refreshed
> Applying patch..xfs__helper_to_convert_holemask_to_inode_alloc_bitmap
> Patch applied.
> Patch xfs__helper_to_convert_holemask_to_inode_alloc_bitmap refreshed
> Applying patch..xfs__allocate_sparse_inode_chunks_on_full_chunk_allocation_failure
> Patch applied.
> Patch xfs__allocate_sparse_inode_chunks_on_full_chunk_allocation_failure refreshed
> Applying patch..xfs__randomly_do_sparse_inode_allocations_in_debug_mode
> Patch applied.
> Patch xfs__randomly_do_sparse_inode_allocations_in_debug_mode refreshed
> Applying patch..xfs__filter_out_sparse_regions_from_individual_inode_allocation
> Patch applied.
> Patch xfs__filter_out_sparse_regions_from_individual_inode_allocation refreshed
> Applying patch..xfs__only_free_allocated_regions_of_inode_chunks
> Patch applied.
> Patch xfs__only_free_allocated_regions_of_inode_chunks refreshed
> Applying patch..xfs__skip_unallocated_regions_of_inode_chunks_in_xfs_ifree_cluster
> Patch applied.
> Patch xfs__skip_unallocated_regions_of_inode_chunks_in_xfs_ifree_cluster refreshed
> Applying patch..xfs__enable_sparse_inode_chunks_for_v5_superblocks
> Patch applied.
> Patch xfs__enable_sparse_inode_chunks_for_v5_superblocks refreshed
> $
>
> The series has applied cleanly with less than 30s work, now I can go
> and do the bits I need to make it compile....
>
Yeah, the issue was never that it didn't apply. For the most part,
everything in the kernel series applied fine to userspace (save for
non-existent files in userspace, etc.). The issue was that some of the
bits didn't compile in userspace and it didn't seem worth the effort to
port over the dependent bits for code that ultimately doesn't execute in
userspace (and thus can't be tested easily either).
So what is the plan to handle that? I suppose we could comment out those
particular bits, just leave stub functions for the depending or
dependent code, move it to part of the shared libxfs assuming it doesn't
create further dependencies, etc. The first couple options would
probably still eventually lead to libxfs conflicts going forward,
whereas outside stubs or pulling more into libxfs probably avoids
that.
Brian
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2015-06-16 10:55 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-02 18:41 [PATCH 00/28] xfsprogs: sparse inode chunks Brian Foster
2015-06-02 18:41 ` [PATCH 01/28] xfs: create individual inode alloc. helper Brian Foster
2015-06-02 18:41 ` [PATCH 02/28] xfs: update free inode record logic to support sparse inode records Brian Foster
2015-06-02 18:41 ` [PATCH 03/28] xfs: support min/max agbno args in block allocator Brian Foster
2015-06-02 18:41 ` [PATCH 04/28] xfs: add sparse inode chunk alignment superblock field Brian Foster
2015-06-02 18:41 ` [PATCH 05/28] xfs: use sparse chunk alignment for min. inode allocation requirement Brian Foster
2015-06-02 18:41 ` [PATCH 06/28] xfs: sparse inode chunks feature helpers and mount requirements Brian Foster
2015-06-02 18:41 ` [PATCH 07/28] xfs: add fs geometry bit for sparse inode chunks Brian Foster
2015-06-02 18:41 ` [PATCH 08/28] xfs: introduce inode record hole mask " Brian Foster
2015-06-02 18:41 ` [PATCH 09/28] xfs: pass inode count through ordered icreate log item Brian Foster
2015-06-02 18:41 ` [PATCH 10/28] xfs: enable sparse inode chunks for v5 superblocks Brian Foster
2015-06-02 18:41 ` [PATCH 11/28] mkfs: sparse inode chunk support Brian Foster
2015-06-02 18:41 ` [PATCH 12/28] db: support sparse inode chunk inobt record and sb fields Brian Foster
2015-06-02 18:41 ` [PATCH 13/28] db: show sparse inodes feature state in version command output Brian Foster
2015-06-02 18:41 ` [PATCH 14/28] growfs: display sparse inode status from xfs_info Brian Foster
2015-06-02 18:41 ` [PATCH 15/28] repair: handle sparse format inobt record freecount correctly Brian Foster
2015-06-05 0:53 ` Dave Chinner
2015-06-02 18:41 ` [PATCH 16/28] repair: remove duplicate field from aghdr_cnts Brian Foster
2015-06-02 18:41 ` [PATCH 17/28] repair: use ir_count for filesystems with sparse inode support Brian Foster
2015-06-02 18:41 ` [PATCH 18/28] repair: scan and track sparse inode chunks correctly Brian Foster
2015-06-05 0:56 ` Dave Chinner
2015-06-02 18:41 ` [PATCH 19/28] repair: scan sparse finobt records correctly Brian Foster
2015-06-05 1:03 ` Dave Chinner
2015-06-05 16:52 ` Brian Foster
2015-06-02 18:41 ` [PATCH 20/28] repair: validate ir_count field for sparse format records Brian Foster
2015-06-02 18:41 ` [PATCH 21/28] repair: process sparse inode records correctly Brian Foster
2015-06-05 1:12 ` Dave Chinner
2015-06-02 18:41 ` [PATCH 22/28] repair: factor out sparse inodes from finobt reconstruction Brian Foster
2015-06-02 18:41 ` [PATCH 23/28] repair: do not account sparse inodes in phase 5 cursor init Brian Foster
2015-06-02 18:41 ` [PATCH 24/28] repair: reconstruct sparse inode records correctly on disk Brian Foster
2015-06-02 18:41 ` [PATCH 25/28] repair: do not prefetch holes in sparse inode chunks Brian Foster
2015-06-02 18:41 ` [PATCH 26/28] repair: handle sparse inode alignment Brian Foster
2015-06-02 18:42 ` [PATCH 27/28] metadump: reorder inode record sanity checks and inode buffer read Brian Foster
2015-06-02 18:42 ` [PATCH 28/28] metadump: support sparse inode records Brian Foster
2015-06-16 0:33 ` [PATCH 00/28] xfsprogs: sparse inode chunks Dave Chinner
2015-06-16 0:39 ` Dave Chinner
2015-06-16 10:55 ` Brian Foster [this message]
2015-06-16 20:26 ` 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=20150616105504.GA24853@bfoster.bfoster \
--to=bfoster@redhat.com \
--cc=david@fromorbit.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