public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: linux-xfs@vger.kernel.org
Subject: [GIT PULL] xfs: per-ag conversions for 5.20
Date: Fri, 8 Jul 2022 09:59:35 +1000	[thread overview]
Message-ID: <20220707235935.GA3600936@dread.disaster.area> (raw)
In-Reply-To: <20220707233717.GP227878@dread.disaster.area>

Hi Darrick,

Can you please pull the perag conversion changes from the tag listed
below? This branchis based on the linux-xfs/for-next tree as of two
days ago, so should merge cleanly with this. It also merges cleanly
with the xfs-cil-scalability-5.20 branch that I just posted a pull
request for, so you should be able to merge them in either order.

Cheers,

Dave.

The following changes since commit 7561cea5dbb97fecb952548a0fb74fb105bf4664:

  xfs: prevent a UAF when log IO errors race with unmount (2022-07-01 09:09:52 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs tags/xfs-perag-conv-5.20

for you to fetch changes up to 36029dee382a20cf515494376ce9f0d5949944eb:

  xfs: make is_log_ag() a first class helper (2022-07-07 19:13:21 +1000)

----------------------------------------------------------------
xfs: per-ag conversions for 5.20

This series drives the perag down into the AGI, AGF and AGFL access
routines and unifies the perag structure initialisation with the
high level AG header read functions. This largely replaces the
xfs_mount/agno pair that is passed to all these functions with a
perag, and in most places we already have a perag ready to pass in.
There are a few places where perags need to be grabbed before
reading the AG header buffers - some of these will need to be driven
to higher layers to ensure we can run operations on AGs without
getting stuck part way through waiting on a perag reference.

The latter section of this patchset moves some of the AG geometry
information from the xfs_mount to the xfs_perag, and starts
converting code that requires geometry validation to use a perag
instead of a mount and having to extract the AGNO from the object
location. This also allows us to store the AG size in the perag and
then we can stop having to compare the agno against sb_agcount to
determine if the AG is the last AG and so has a runt size.  This
greatly simplifies some of the type validity checking we do and
substantially reduces the CPU overhead of type validity checking. It
also cuts over 1.2kB out of the binary size.

Signed-off-by: Dave Chinner <dchinner@redhat.com>

----------------------------------------------------------------
Dave Chinner (14):
      xfs: make last AG grow/shrink perag centric
      xfs: kill xfs_ialloc_pagi_init()
      xfs: pass perag to xfs_ialloc_read_agi()
      xfs: kill xfs_alloc_pagf_init()
      xfs: pass perag to xfs_alloc_read_agf()
      xfs: pass perag to xfs_read_agi
      xfs: pass perag to xfs_read_agf
      xfs: pass perag to xfs_alloc_get_freelist
      xfs: pass perag to xfs_alloc_put_freelist
      xfs: pass perag to xfs_alloc_read_agfl
      xfs: Pre-calculate per-AG agbno geometry
      xfs: Pre-calculate per-AG agino geometry
      xfs: replace xfs_ag_block_count() with perag accesses
      xfs: make is_log_ag() a first class helper

 fs/xfs/libxfs/xfs_ag.c             | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
 fs/xfs/libxfs/xfs_ag.h             |  69 +++++++++++++++++++++++++++++++++++----
 fs/xfs/libxfs/xfs_ag_resv.c        |   2 +-
 fs/xfs/libxfs/xfs_alloc.c          | 143 ++++++++++++++++++++++++++++++++++++--------------------------------------------
 fs/xfs/libxfs/xfs_alloc.h          |  58 +++++++--------------------------
 fs/xfs/libxfs/xfs_alloc_btree.c    |   9 +++---
 fs/xfs/libxfs/xfs_bmap.c           |   3 +-
 fs/xfs/libxfs/xfs_btree.c          |  25 ++++++--------
 fs/xfs/libxfs/xfs_ialloc.c         |  86 ++++++++++++++++++++-----------------------------
 fs/xfs/libxfs/xfs_ialloc.h         |  25 +++-----------
 fs/xfs/libxfs/xfs_ialloc_btree.c   |  20 ++++++------
 fs/xfs/libxfs/xfs_inode_buf.c      |   5 ++-
 fs/xfs/libxfs/xfs_refcount.c       |  19 ++++++-----
 fs/xfs/libxfs/xfs_refcount_btree.c |   5 ++-
 fs/xfs/libxfs/xfs_rmap.c           |   8 ++---
 fs/xfs/libxfs/xfs_rmap_btree.c     |   9 +++---
 fs/xfs/libxfs/xfs_types.c          |  73 +++++------------------------------------
 fs/xfs/libxfs/xfs_types.h          |   9 ------
 fs/xfs/scrub/agheader.c            |  25 +++++++-------
 fs/xfs/scrub/agheader_repair.c     |  21 ++++--------
 fs/xfs/scrub/alloc.c               |   7 ++--
 fs/xfs/scrub/bmap.c                |   2 +-
 fs/xfs/scrub/common.c              |   6 ++--
 fs/xfs/scrub/fscounters.c          |   4 +--
 fs/xfs/scrub/health.c              |   2 ++
 fs/xfs/scrub/ialloc.c              |  12 +++----
 fs/xfs/scrub/refcount.c            |   9 +++---
 fs/xfs/scrub/repair.c              |  32 +++++++++---------
 fs/xfs/scrub/rmap.c                |   6 ++--
 fs/xfs/xfs_discard.c               |   2 +-
 fs/xfs/xfs_extfree_item.c          |   6 +++-
 fs/xfs/xfs_filestream.c            |   4 +--
 fs/xfs/xfs_fsmap.c                 |   3 +-
 fs/xfs/xfs_fsops.c                 |  13 +++++---
 fs/xfs/xfs_inode.c                 |  28 ++++++++--------
 fs/xfs/xfs_ioctl.c                 |   8 ++++-
 fs/xfs/xfs_log_recover.c           |  41 +++++++++++------------
 fs/xfs/xfs_mount.c                 |   3 +-
 fs/xfs/xfs_reflink.c               |  40 ++++++++++++-----------
 fs/xfs/xfs_reflink.h               |   3 --
 40 files changed, 486 insertions(+), 522 deletions(-)

-- 
Dave Chinner
david@fromorbit.com

           reply	other threads:[~2022-07-07 23:59 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <20220707233717.GP227878@dread.disaster.area>]

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=20220707235935.GA3600936@dread.disaster.area \
    --to=david@fromorbit.com \
    --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