From: Bill O'Donnell <bodonnel@redhat.com>
To: "Darrick J. Wong" <djwong@kernel.org>
Cc: cem@kernel.org, linux-xfs@vger.kernel.org
Subject: Re: [PATCH 2/2] xfs_repair: bulk load records into new btree blocks
Date: Wed, 13 Mar 2024 12:49:04 -0500 [thread overview]
Message-ID: <ZfHnEIqJUu8FQ1cC@redhat.com> (raw)
In-Reply-To: <171029432531.2063452.98834952088069975.stgit@frogsfrogsfrogs>
On Tue, Mar 12, 2024 at 07:11:01PM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
>
> Amortize the cost of indirect calls further by loading a batch of
> records into a new btree block instead of one record per ->get_record
> call. On a rmap btree with 3.9 million records, this reduces the
> runtime of xfs_btree_bload by 3% for xfsprogs. For the upcoming online
> repair functionality, this will reduce runtime by 6% when spectre
> mitigations are enabled in the kernel.
>
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Bill O'Donnell <bodonnel@redhat.com>
> ---
> repair/agbtree.c | 161 ++++++++++++++++++++++++++++++------------------------
> 1 file changed, 90 insertions(+), 71 deletions(-)
>
>
> diff --git a/repair/agbtree.c b/repair/agbtree.c
> index 981d8e340bf2..e014e216e0a5 100644
> --- a/repair/agbtree.c
> +++ b/repair/agbtree.c
> @@ -220,15 +220,19 @@ get_bnobt_records(
> struct bt_rebuild *btr = priv;
> struct xfs_alloc_rec_incore *arec = &cur->bc_rec.a;
> union xfs_btree_rec *block_rec;
> + unsigned int loaded;
>
> - btr->bno_rec = get_bno_rec(cur, btr->bno_rec);
> - arec->ar_startblock = btr->bno_rec->ex_startblock;
> - arec->ar_blockcount = btr->bno_rec->ex_blockcount;
> - btr->freeblks += btr->bno_rec->ex_blockcount;
> + for (loaded = 0; loaded < nr_wanted; loaded++, idx++) {
> + btr->bno_rec = get_bno_rec(cur, btr->bno_rec);
> + arec->ar_startblock = btr->bno_rec->ex_startblock;
> + arec->ar_blockcount = btr->bno_rec->ex_blockcount;
> + btr->freeblks += btr->bno_rec->ex_blockcount;
>
> - block_rec = libxfs_btree_rec_addr(cur, idx, block);
> - cur->bc_ops->init_rec_from_cur(cur, block_rec);
> - return 1;
> + block_rec = libxfs_btree_rec_addr(cur, idx, block);
> + cur->bc_ops->init_rec_from_cur(cur, block_rec);
> + }
> +
> + return loaded;
> }
>
> void
> @@ -388,65 +392,72 @@ get_inobt_records(
> {
> struct bt_rebuild *btr = priv;
> struct xfs_inobt_rec_incore *irec = &cur->bc_rec.i;
> - struct ino_tree_node *ino_rec;
> - union xfs_btree_rec *block_rec;
> - int inocnt = 0;
> - int finocnt = 0;
> - int k;
> -
> - btr->ino_rec = ino_rec = get_ino_rec(cur, btr->ino_rec);
> -
> - /* Transform the incore record into an on-disk record. */
> - irec->ir_startino = ino_rec->ino_startnum;
> - irec->ir_free = ino_rec->ir_free;
> -
> - for (k = 0; k < sizeof(xfs_inofree_t) * NBBY; k++) {
> - ASSERT(is_inode_confirmed(ino_rec, k));
> -
> - if (is_inode_sparse(ino_rec, k))
> - continue;
> - if (is_inode_free(ino_rec, k))
> - finocnt++;
> - inocnt++;
> - }
> + unsigned int loaded = 0;
> +
> + while (loaded < nr_wanted) {
> + struct ino_tree_node *ino_rec;
> + union xfs_btree_rec *block_rec;
> + int inocnt = 0;
> + int finocnt = 0;
> + int k;
> +
> + btr->ino_rec = ino_rec = get_ino_rec(cur, btr->ino_rec);
>
> - irec->ir_count = inocnt;
> - irec->ir_freecount = finocnt;
> -
> - if (xfs_has_sparseinodes(cur->bc_mp)) {
> - uint64_t sparse;
> - int spmask;
> - uint16_t holemask;
> -
> - /*
> - * Convert the 64-bit in-core sparse inode state to the
> - * 16-bit on-disk holemask.
> - */
> - holemask = 0;
> - spmask = (1 << XFS_INODES_PER_HOLEMASK_BIT) - 1;
> - sparse = ino_rec->ir_sparse;
> - for (k = 0; k < XFS_INOBT_HOLEMASK_BITS; k++) {
> - if (sparse & spmask) {
> - ASSERT((sparse & spmask) == spmask);
> - holemask |= (1 << k);
> - } else
> - ASSERT((sparse & spmask) == 0);
> - sparse >>= XFS_INODES_PER_HOLEMASK_BIT;
> + /* Transform the incore record into an on-disk record. */
> + irec->ir_startino = ino_rec->ino_startnum;
> + irec->ir_free = ino_rec->ir_free;
> +
> + for (k = 0; k < sizeof(xfs_inofree_t) * NBBY; k++) {
> + ASSERT(is_inode_confirmed(ino_rec, k));
> +
> + if (is_inode_sparse(ino_rec, k))
> + continue;
> + if (is_inode_free(ino_rec, k))
> + finocnt++;
> + inocnt++;
> }
>
> - irec->ir_holemask = holemask;
> - } else {
> - irec->ir_holemask = 0;
> - }
> + irec->ir_count = inocnt;
> + irec->ir_freecount = finocnt;
>
> - if (btr->first_agino == NULLAGINO)
> - btr->first_agino = ino_rec->ino_startnum;
> - btr->freecount += finocnt;
> - btr->count += inocnt;
> + if (xfs_has_sparseinodes(cur->bc_mp)) {
> + uint64_t sparse;
> + int spmask;
> + uint16_t holemask;
> +
> + /*
> + * Convert the 64-bit in-core sparse inode state to the
> + * 16-bit on-disk holemask.
> + */
> + holemask = 0;
> + spmask = (1 << XFS_INODES_PER_HOLEMASK_BIT) - 1;
> + sparse = ino_rec->ir_sparse;
> + for (k = 0; k < XFS_INOBT_HOLEMASK_BITS; k++) {
> + if (sparse & spmask) {
> + ASSERT((sparse & spmask) == spmask);
> + holemask |= (1 << k);
> + } else
> + ASSERT((sparse & spmask) == 0);
> + sparse >>= XFS_INODES_PER_HOLEMASK_BIT;
> + }
> +
> + irec->ir_holemask = holemask;
> + } else {
> + irec->ir_holemask = 0;
> + }
> +
> + if (btr->first_agino == NULLAGINO)
> + btr->first_agino = ino_rec->ino_startnum;
> + btr->freecount += finocnt;
> + btr->count += inocnt;
> +
> + block_rec = libxfs_btree_rec_addr(cur, idx, block);
> + cur->bc_ops->init_rec_from_cur(cur, block_rec);
> + loaded++;
> + idx++;
> + }
>
> - block_rec = libxfs_btree_rec_addr(cur, idx, block);
> - cur->bc_ops->init_rec_from_cur(cur, block_rec);
> - return 1;
> + return loaded;
> }
>
> /* Initialize both inode btree cursors as needed. */
> @@ -585,13 +596,17 @@ get_rmapbt_records(
> struct xfs_rmap_irec *rec;
> struct bt_rebuild *btr = priv;
> union xfs_btree_rec *block_rec;
> + unsigned int loaded;
>
> - rec = pop_slab_cursor(btr->slab_cursor);
> - memcpy(&cur->bc_rec.r, rec, sizeof(struct xfs_rmap_irec));
> + for (loaded = 0; loaded < nr_wanted; loaded++, idx++) {
> + rec = pop_slab_cursor(btr->slab_cursor);
> + memcpy(&cur->bc_rec.r, rec, sizeof(struct xfs_rmap_irec));
>
> - block_rec = libxfs_btree_rec_addr(cur, idx, block);
> - cur->bc_ops->init_rec_from_cur(cur, block_rec);
> - return 1;
> + block_rec = libxfs_btree_rec_addr(cur, idx, block);
> + cur->bc_ops->init_rec_from_cur(cur, block_rec);
> + }
> +
> + return loaded;
> }
>
> /* Set up the rmap rebuild parameters. */
> @@ -663,13 +678,17 @@ get_refcountbt_records(
> struct xfs_refcount_irec *rec;
> struct bt_rebuild *btr = priv;
> union xfs_btree_rec *block_rec;
> + unsigned int loaded;
>
> - rec = pop_slab_cursor(btr->slab_cursor);
> - memcpy(&cur->bc_rec.rc, rec, sizeof(struct xfs_refcount_irec));
> + for (loaded = 0; loaded < nr_wanted; loaded++, idx++) {
> + rec = pop_slab_cursor(btr->slab_cursor);
> + memcpy(&cur->bc_rec.rc, rec, sizeof(struct xfs_refcount_irec));
>
> - block_rec = libxfs_btree_rec_addr(cur, idx, block);
> - cur->bc_ops->init_rec_from_cur(cur, block_rec);
> - return 1;
> + block_rec = libxfs_btree_rec_addr(cur, idx, block);
> + cur->bc_ops->init_rec_from_cur(cur, block_rec);
> + }
> +
> + return loaded;
> }
>
> /* Set up the refcount rebuild parameters. */
>
>
next prev parent reply other threads:[~2024-03-13 17:49 UTC|newest]
Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-13 1:41 [PATCHBOMB] xfsprogs: everything headed towards 6.8 Darrick J. Wong
2024-03-13 1:47 ` [PATCHSET 01/10] xfsprogs: convert utilities to use new rt helpers Darrick J. Wong
2024-03-13 1:49 ` [PATCH 01/13] libxfs: fix incorrect porting to 6.7 Darrick J. Wong
2024-03-13 21:58 ` Christoph Hellwig
2024-03-13 1:50 ` [PATCH 02/13] mkfs: fix log sunit rounding when external logs are in use Darrick J. Wong
2024-03-13 21:59 ` Christoph Hellwig
2024-03-14 23:43 ` Darrick J. Wong
2024-03-13 1:50 ` [PATCH 03/13] xfs_repair: fix confusing rt space units in the duplicate detection code Darrick J. Wong
2024-03-13 22:00 ` Christoph Hellwig
2024-03-13 1:50 ` [PATCH 04/13] libxfs: create a helper to compute leftovers of realtime extents Darrick J. Wong
2024-03-13 22:00 ` Christoph Hellwig
2024-03-13 1:50 ` [PATCH 05/13] libxfs: use helpers to convert rt block numbers to rt extent numbers Darrick J. Wong
2024-03-13 22:00 ` Christoph Hellwig
2024-03-13 1:51 ` [PATCH 06/13] xfs_repair: convert utility to use new rt extent helpers and types Darrick J. Wong
2024-03-13 22:01 ` Christoph Hellwig
2024-03-13 1:51 ` [PATCH 07/13] mkfs: " Darrick J. Wong
2024-03-13 22:01 ` Christoph Hellwig
2024-03-13 1:51 ` [PATCH 08/13] xfs_{db,repair}: convert open-coded xfs_rtword_t pointer accesses to helper Darrick J. Wong
2024-03-13 22:01 ` Christoph Hellwig
2024-03-13 1:52 ` [PATCH 09/13] xfs_repair: convert helpers for rtbitmap block/wordcount computations Darrick J. Wong
2024-03-13 22:01 ` Christoph Hellwig
2024-03-13 1:52 ` [PATCH 10/13] xfs_{db,repair}: use accessor functions for bitmap words Darrick J. Wong
2024-03-13 22:02 ` Christoph Hellwig
2024-03-13 1:52 ` [PATCH 11/13] xfs_{db,repair}: use helpers for rtsummary block/wordcount computations Darrick J. Wong
2024-03-13 22:02 ` Christoph Hellwig
2024-03-13 1:52 ` [PATCH 12/13] xfs_{db,repair}: use accessor functions for summary info words Darrick J. Wong
2024-03-13 22:02 ` Christoph Hellwig
2024-03-13 1:53 ` [PATCH 13/13] xfs_{db,repair}: use m_blockwsize instead of sb_blocksize for rt blocks Darrick J. Wong
2024-03-13 22:03 ` Christoph Hellwig
2024-03-13 17:20 ` [PATCHSET 01/10] xfsprogs: convert utilities to use new rt helpers Bill O'Donnell
2024-03-13 1:47 ` [PATCHSET 02/10] libxfs: sync with 6.8 Darrick J. Wong
2024-03-13 1:53 ` [PATCH 01/67] xfs: use xfs_defer_pending objects to recover intent items Darrick J. Wong
2024-03-13 1:53 ` [PATCH 02/67] xfs: recreate work items when recovering " Darrick J. Wong
2024-03-13 1:53 ` [PATCH 03/67] xfs: use xfs_defer_finish_one to finish recovered work items Darrick J. Wong
2024-03-13 1:54 ` [PATCH 04/67] xfs: move ->iop_recover to xfs_defer_op_type Darrick J. Wong
2024-03-13 1:54 ` [PATCH 05/67] xfs: hoist intent done flag setting to ->finish_item callsite Darrick J. Wong
2024-03-13 1:54 ` [PATCH 06/67] xfs: hoist ->create_intent boilerplate to its callsite Darrick J. Wong
2024-03-13 1:54 ` [PATCH 07/67] xfs: use xfs_defer_create_done for the relogging operation Darrick J. Wong
2024-03-13 1:55 ` [PATCH 08/67] xfs: clean out XFS_LI_DIRTY setting boilerplate from ->iop_relog Darrick J. Wong
2024-03-13 1:55 ` [PATCH 09/67] xfs: hoist xfs_trans_add_item calls to defer ops functions Darrick J. Wong
2024-03-13 1:55 ` [PATCH 10/67] xfs: move ->iop_relog to struct xfs_defer_op_type Darrick J. Wong
2024-03-13 1:55 ` [PATCH 11/67] xfs: make rextslog computation consistent with mkfs Darrick J. Wong
2024-03-13 1:56 ` [PATCH 12/67] xfs: fix 32-bit truncation in xfs_compute_rextslog Darrick J. Wong
2024-03-13 1:56 ` [PATCH 13/67] xfs: don't allow overly small or large realtime volumes Darrick J. Wong
2024-03-13 1:56 ` [PATCH 14/67] xfs: elide ->create_done calls for unlogged deferred work Darrick J. Wong
2024-03-13 1:56 ` [PATCH 15/67] xfs: don't append work items to logged xfs_defer_pending objects Darrick J. Wong
2024-03-13 1:57 ` [PATCH 16/67] xfs: allow pausing of pending deferred work items Darrick J. Wong
2024-03-13 1:57 ` [PATCH 17/67] xfs: remove __xfs_free_extent_later Darrick J. Wong
2024-03-13 1:57 ` [PATCH 18/67] xfs: automatic freeing of freshly allocated unwritten space Darrick J. Wong
2024-03-13 1:57 ` [PATCH 19/67] xfs: remove unused fields from struct xbtree_ifakeroot Darrick J. Wong
2024-03-13 1:58 ` [PATCH 20/67] xfs: force small EFIs for reaping btree extents Darrick J. Wong
2024-03-13 1:58 ` [PATCH 21/67] xfs: ensure logflagsp is initialized in xfs_bmap_del_extent_real Darrick J. Wong
2024-03-13 1:58 ` [PATCH 22/67] xfs: update dir3 leaf block metadata after swap Darrick J. Wong
2024-03-13 1:59 ` [PATCH 23/67] xfs: extract xfs_da_buf_copy() helper function Darrick J. Wong
2024-03-13 1:59 ` [PATCH 24/67] xfs: move xfs_ondisk.h to libxfs/ Darrick J. Wong
2024-03-13 1:59 ` [PATCH 25/67] xfs: consolidate the xfs_attr_defer_* helpers Darrick J. Wong
2024-03-13 1:59 ` [PATCH 26/67] xfs: store an ops pointer in struct xfs_defer_pending Darrick J. Wong
2024-03-13 2:00 ` [PATCH 27/67] xfs: pass the defer ops instead of type to xfs_defer_start_recovery Darrick J. Wong
2024-03-13 2:00 ` [PATCH 28/67] xfs: pass the defer ops directly to xfs_defer_add Darrick J. Wong
2024-03-13 2:00 ` [PATCH 29/67] xfs: force all buffers to be written during btree bulk load Darrick J. Wong
2024-03-13 2:00 ` [PATCH 30/67] xfs: set XBF_DONE on newly formatted btree block that are ready for writing Darrick J. Wong
2024-03-13 2:01 ` [PATCH 31/67] xfs: read leaf blocks when computing keys for bulkloading into node blocks Darrick J. Wong
2024-03-13 2:01 ` [PATCH 32/67] xfs: move btree bulkload record initialization to ->get_record implementations Darrick J. Wong
2024-03-13 2:01 ` [PATCH 33/67] xfs: constrain dirty buffers while formatting a staged btree Darrick J. Wong
2024-03-13 2:01 ` [PATCH 34/67] xfs: repair free space btrees Darrick J. Wong
2024-03-13 2:02 ` [PATCH 35/67] xfs: repair inode btrees Darrick J. Wong
2024-03-13 2:02 ` [PATCH 36/67] xfs: repair refcount btrees Darrick J. Wong
2024-03-13 2:02 ` [PATCH 37/67] xfs: dont cast to char * for XFS_DFORK_*PTR macros Darrick J. Wong
2024-03-13 2:02 ` [PATCH 38/67] xfs: set inode sick state flags when we zap either ondisk fork Darrick J. Wong
2024-03-13 2:03 ` [PATCH 39/67] xfs: zap broken inode forks Darrick J. Wong
2024-03-13 2:03 ` [PATCH 40/67] xfs: repair inode fork block mapping data structures Darrick J. Wong
2024-03-13 2:03 ` [PATCH 41/67] xfs: create a ranged query function for refcount btrees Darrick J. Wong
2024-03-13 2:03 ` [PATCH 42/67] xfs: create a new inode fork block unmap helper Darrick J. Wong
2024-03-13 2:04 ` [PATCH 43/67] xfs: improve dquot iteration for scrub Darrick J. Wong
2024-03-13 2:04 ` [PATCH 44/67] xfs: add lock protection when remove perag from radix tree Darrick J. Wong
2024-03-13 2:04 ` [PATCH 45/67] xfs: fix perag leak when growfs fails Darrick J. Wong
2024-03-13 2:05 ` [PATCH 46/67] xfs: remove the xfs_alloc_arg argument to xfs_bmap_btalloc_accounting Darrick J. Wong
2024-03-13 2:05 ` [PATCH 47/67] xfs: also use xfs_bmap_btalloc_accounting for RT allocations Darrick J. Wong
2024-03-13 2:05 ` [PATCH 48/67] xfs: return -ENOSPC from xfs_rtallocate_* Darrick J. Wong
2024-03-13 2:05 ` [PATCH 49/67] xfs: indicate if xfs_bmap_adjacent changed ap->blkno Darrick J. Wong
2024-03-13 2:06 ` [PATCH 50/67] xfs: move xfs_rtget_summary to xfs_rtbitmap.c Darrick J. Wong
2024-03-13 2:06 ` [PATCH 51/67] xfs: split xfs_rtmodify_summary_int Darrick J. Wong
2024-03-13 2:06 ` [PATCH 52/67] xfs: remove rt-wrappers from xfs_format.h Darrick J. Wong
2024-03-13 2:06 ` [PATCH 53/67] xfs: remove XFS_RTMIN/XFS_RTMAX Darrick J. Wong
2024-03-13 2:07 ` [PATCH 54/67] xfs: make if_data a void pointer Darrick J. Wong
2024-03-13 2:07 ` [PATCH 55/67] xfs: return if_data from xfs_idata_realloc Darrick J. Wong
2024-03-13 2:07 ` [PATCH 56/67] xfs: move the xfs_attr_sf_lookup tracepoint Darrick J. Wong
2024-03-13 2:07 ` [PATCH 57/67] xfs: simplify xfs_attr_sf_findname Darrick J. Wong
2024-03-13 2:08 ` [PATCH 58/67] xfs: remove xfs_attr_shortform_lookup Darrick J. Wong
2024-03-13 2:08 ` [PATCH 59/67] xfs: use xfs_attr_sf_findname in xfs_attr_shortform_getvalue Darrick J. Wong
2024-03-13 2:08 ` [PATCH 60/67] xfs: remove struct xfs_attr_shortform Darrick J. Wong
2024-03-13 2:08 ` [PATCH 61/67] xfs: remove xfs_attr_sf_hdr_t Darrick J. Wong
2024-03-13 2:09 ` [PATCH 62/67] xfs: turn the XFS_DA_OP_REPLACE checks in xfs_attr_shortform_addname into asserts Darrick J. Wong
2024-03-13 2:09 ` [PATCH 63/67] xfs: fix a use after free in xfs_defer_finish_recovery Darrick J. Wong
2024-03-13 2:09 ` [PATCH 64/67] xfs: use the op name in trace_xlog_intent_recovery_failed Darrick J. Wong
2024-03-13 2:09 ` [PATCH 65/67] xfs: fix backwards logic in xfs_bmap_alloc_account Darrick J. Wong
2024-03-13 2:10 ` [PATCH 66/67] xfs: reset XFS_ATTR_INCOMPLETE filter on node removal Darrick J. Wong
2024-03-13 2:10 ` [PATCH 67/67] xfs: remove conditional building of rt geometry validator functions Darrick J. Wong
2024-03-13 17:43 ` [PATCHSET 02/10] libxfs: sync with 6.8 Bill O'Donnell
2024-03-13 1:47 ` [PATCHSET 03/10] xfs_repair: faster btree bulkloading Darrick J. Wong
2024-03-13 2:10 ` [PATCH 1/2] xfs_repair: adjust btree bulkloading slack computations to match online repair Darrick J. Wong
2024-03-13 17:48 ` Bill O'Donnell
2024-03-13 22:04 ` Christoph Hellwig
2024-03-13 2:11 ` [PATCH 2/2] xfs_repair: bulk load records into new btree blocks Darrick J. Wong
2024-03-13 17:49 ` Bill O'Donnell [this message]
2024-03-13 22:04 ` Christoph Hellwig
2024-03-13 1:48 ` [PATCHSET 04/10] xfsprogs: bug fixes for 6.8 Darrick J. Wong
2024-03-13 2:11 ` [PATCH 1/1] xfs_repair: double-check with shortform attr verifiers Darrick J. Wong
2024-03-13 17:52 ` Bill O'Donnell
2024-03-13 22:05 ` Christoph Hellwig
2024-03-13 1:48 ` [PATCHSET V2 05/10] xfsprogs: fix log sector size detection Darrick J. Wong
2024-03-13 2:11 ` [PATCH 1/5] libxfs: remove the unused fs_topology_t typedef Darrick J. Wong
2024-03-13 2:11 ` [PATCH 2/5] libxfs: refactor the fs_topology structure Darrick J. Wong
2024-03-13 2:12 ` [PATCH 3/5] libxfs: remove the S_ISREG check from blkid_get_topology Darrick J. Wong
2024-03-13 2:12 ` [PATCH 4/5] libxfs: also query log device topology in get_topology Darrick J. Wong
2024-03-13 2:12 ` [PATCH 5/5] mkfs: use a sensible log sector size default Darrick J. Wong
2024-03-13 17:54 ` [PATCHSET V2 05/10] xfsprogs: fix log sector size detection Bill O'Donnell
2024-03-13 22:06 ` Christoph Hellwig
2024-03-13 1:48 ` [PATCHSET 06/10] mkfs: scale shards on ssds Darrick J. Wong
2024-03-13 2:12 ` [PATCH 1/2] mkfs: allow sizing allocation groups for concurrency Darrick J. Wong
2024-03-13 2:13 ` [PATCH 2/2] mkfs: allow sizing internal logs " Darrick J. Wong
2024-03-13 18:17 ` [PATCHSET 06/10] mkfs: scale shards on ssds Bill O'Donnell
2024-03-13 1:48 ` [PATCHSET v29.4 07/10] xfs_scrub: scan metadata files in parallel Darrick J. Wong
2024-03-13 2:13 ` [PATCH 1/3] libfrog: rename XFROG_SCRUB_TYPE_* to XFROG_SCRUB_GROUP_* Darrick J. Wong
2024-03-13 2:13 ` [PATCH 2/3] libfrog: promote XFROG_SCRUB_DESCR_SUMMARY to a scrub type Darrick J. Wong
2024-03-13 2:13 ` [PATCH 3/3] xfs_scrub: scan whole-fs metadata files in parallel Darrick J. Wong
2024-03-13 18:19 ` [PATCHSET v29.4 07/10] xfs_scrub: scan " Bill O'Donnell
2024-03-13 1:49 ` [PATCHSET v29.4 08/10] xfs_repair: rebuild inode fork mappings Darrick J. Wong
2024-03-13 2:14 ` [PATCH 1/3] xfs_repair: push inode buf and dinode pointers all the way to inode fork processing Darrick J. Wong
2024-03-13 21:58 ` Bill O'Donnell
2024-03-13 22:10 ` Christoph Hellwig
2024-03-13 2:14 ` [PATCH 2/3] xfs_repair: sync bulkload data structures with kernel newbt code Darrick J. Wong
2024-03-13 22:11 ` Christoph Hellwig
2024-03-14 16:35 ` Bill O'Donnell
2024-03-13 2:14 ` [PATCH 3/3] xfs_repair: rebuild block mappings from rmapbt data Darrick J. Wong
2024-03-14 1:59 ` Christoph Hellwig
2024-03-14 23:56 ` Darrick J. Wong
2024-03-17 21:10 ` Christoph Hellwig
2024-03-14 17:13 ` Bill O'Donnell
2024-03-18 18:27 ` [PATCH v24.5.1 " Darrick J. Wong
2024-03-13 1:49 ` [PATCHSET 09/10] xfs_repair: support more than 4 billion records Darrick J. Wong
2024-03-13 2:14 ` [PATCH 1/8] xfs_db: add a bmbt inflation command Darrick J. Wong
2024-03-14 2:01 ` Christoph Hellwig
2024-03-14 23:57 ` Darrick J. Wong
2024-03-18 18:32 ` [PATCH v24.5.1 " Darrick J. Wong
2024-03-13 2:15 ` [PATCH 2/8] xfs_repair: slab and bag structs need to track more than 2^32 items Darrick J. Wong
2024-03-14 2:02 ` Christoph Hellwig
2024-03-13 2:15 ` [PATCH 3/8] xfs_repair: support more than 2^32 rmapbt records per AG Darrick J. Wong
2024-03-14 2:02 ` Christoph Hellwig
2024-03-13 2:15 ` [PATCH 4/8] xfs_repair: support more than 2^32 owners per physical block Darrick J. Wong
2024-03-14 2:03 ` Christoph Hellwig
2024-03-14 23:59 ` Darrick J. Wong
2024-03-18 18:32 ` [PATCH v24.5.1 " Darrick J. Wong
2024-03-13 2:15 ` [PATCH 5/8] xfs_repair: clean up lock resources Darrick J. Wong
2024-03-14 2:03 ` Christoph Hellwig
2024-03-13 2:16 ` [PATCH 6/8] xfs_repair: constrain attr fork extent count Darrick J. Wong
2024-03-14 2:03 ` Christoph Hellwig
2024-03-13 2:16 ` [PATCH 7/8] xfs_repair: don't create block maps for data files Darrick J. Wong
2024-03-14 2:05 ` Christoph Hellwig
2024-03-15 0:02 ` Darrick J. Wong
2024-03-17 21:11 ` Christoph Hellwig
2024-03-18 18:33 ` [PATCH v24.5.1 " Darrick J. Wong
2024-03-13 2:16 ` [PATCH 8/8] xfs_repair: support more than INT_MAX block maps Darrick J. Wong
2024-03-14 2:06 ` Christoph Hellwig
2024-03-15 0:03 ` Darrick J. Wong
2024-03-13 1:49 ` [PATCHSET v29.4 10/10] libxfs: prepare to sync with 6.9 Darrick J. Wong
2024-03-13 2:17 ` [PATCH 1/3] libxfs: actually set m_fsname Darrick J. Wong
2024-03-14 2:07 ` Christoph Hellwig
2024-03-13 2:17 ` [PATCH 2/3] libxfs: clean up xfs_da_unmount usage Darrick J. Wong
2024-03-14 2:08 ` Christoph Hellwig
2024-03-13 2:17 ` [PATCH 3/3] libfrog: create a new scrub group for things requiring full inode scans Darrick J. Wong
2024-03-14 2:08 ` Christoph Hellwig
2024-03-18 21:30 ` [PATCHSET v29.4] xfsprogs: various bug fixes for 6.8 Darrick J. Wong
2024-03-18 21:30 ` [PATCH 1/4] xfs_db: fix alignment checks in getbitval Darrick J. Wong
2024-03-18 21:30 ` [PATCH 2/4] xfs_scrub: fix threadcount estimates for phase 6 Darrick J. Wong
2024-03-18 21:30 ` [PATCH 3/4] xfs_scrub: don't fail while reporting media scan errors Darrick J. Wong
2024-03-18 21:31 ` [PATCH 4/4] xfs_io: add linux madvise advice codes Darrick J. Wong
-- strict thread matches above, loose matches on Subject: below --
2024-03-26 2:55 [PATCHSET 03/18] xfs_repair: faster btree bulkloading Darrick J. Wong
2024-03-26 3:20 ` [PATCH 2/2] xfs_repair: bulk load records into new btree blocks Darrick J. Wong
2024-04-17 21:16 [PATCHSET 05/11] xfs_repair: faster btree bulkloading Darrick J. Wong
2024-04-17 21:39 ` [PATCH 2/2] xfs_repair: bulk load records into new btree blocks Darrick J. Wong
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=ZfHnEIqJUu8FQ1cC@redhat.com \
--to=bodonnel@redhat.com \
--cc=cem@kernel.org \
--cc=djwong@kernel.org \
--cc=linux-xfs@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).