mbox series

[GIT,PULL,v2] xfs: buffer cache bulk page allocation

Message ID 20210608041437.GA2419729@dread.disaster.area (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL,v2] xfs: buffer cache bulk page allocation | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git tags/xfs-buf-bulk-alloc-tag

Message

Dave Chinner June 8, 2021, 4:14 a.m. UTC
Hi Darrick,

As we talked about on IRC, I have (force) updated the branch and tag
containing the buffer cache bulk page allocation series to correct
the errors in the commit metadata. This version correctly attributes
all of Christoph's patches, fixes a couple of minor typos and adds a
missing committer SoB to another of Christoph's patches. There are
no code changes in this update.

When you next update the for-next branch, can you please pull the
updates from the tag below?

Cheers,

Dave.

The following changes since commit d07f6ca923ea0927a1024dfccafc5b53b61cfecc:

  Linux 5.13-rc2 (2021-05-16 15:27:44 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git tags/xfs-buf-bulk-alloc-tag

for you to fetch changes up to 8bcac7448a942fa4662441a310c97d47cec24310:

  xfs: merge xfs_buf_allocate_memory (2021-06-07 11:50:48 +1000)

----------------------------------------------------------------
xfs: buffer cache bulk page allocation

This patchset makes use of the new bulk page allocation interface to
reduce the overhead of allocating large numbers of pages in a
loop.

The first two patches are refactoring buffer memory allocation and
converting the uncached buffer path to use the same page allocation
path, followed by converting the page allocation path to use bulk
allocation.

The rest of the patches are then consolidation of the page
allocation and freeing code to simplify the code and remove a chunk
of unnecessary abstraction. This is largely based on a series of
changes made by Christoph Hellwig.

----------------------------------------------------------------
Christoph Hellwig (3):
      xfs: remove ->b_offset handling for page backed buffers
      xfs: simplify the b_page_count calculation
      xfs: cleanup error handling in xfs_buf_get_map

Dave Chinner (7):
      xfs: split up xfs_buf_allocate_memory
      xfs: use xfs_buf_alloc_pages for uncached buffers
      xfs: use alloc_pages_bulk_array() for buffers
      xfs: merge _xfs_buf_get_pages()
      xfs: move page freeing into _xfs_buf_free_pages()
      xfs: get rid of xb_to_gfp()
      xfs: merge xfs_buf_allocate_memory

 fs/xfs/libxfs/xfs_ag.c |   1 -
 fs/xfs/xfs_buf.c       | 305 ++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------
 fs/xfs/xfs_buf.h       |   3 +-
 3 files changed, 120 insertions(+), 189 deletions(-)

Comments

Darrick J. Wong June 9, 2021, 8:46 p.m. UTC | #1
On Tue, Jun 08, 2021 at 02:14:37PM +1000, Dave Chinner wrote:
> Hi Darrick,
> 
> As we talked about on IRC, I have (force) updated the branch and tag
> containing the buffer cache bulk page allocation series to correct
> the errors in the commit metadata. This version correctly attributes
> all of Christoph's patches, fixes a couple of minor typos and adds a
> missing committer SoB to another of Christoph's patches. There are
> no code changes in this update.
> 
> When you next update the for-next branch, can you please pull the
> updates from the tag below?

Pulled, thanks.

--D

> 
> Cheers,
> 
> Dave.
> 
> The following changes since commit d07f6ca923ea0927a1024dfccafc5b53b61cfecc:
> 
>   Linux 5.13-rc2 (2021-05-16 15:27:44 -0700)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git tags/xfs-buf-bulk-alloc-tag
> 
> for you to fetch changes up to 8bcac7448a942fa4662441a310c97d47cec24310:
> 
>   xfs: merge xfs_buf_allocate_memory (2021-06-07 11:50:48 +1000)
> 
> ----------------------------------------------------------------
> xfs: buffer cache bulk page allocation
> 
> This patchset makes use of the new bulk page allocation interface to
> reduce the overhead of allocating large numbers of pages in a
> loop.
> 
> The first two patches are refactoring buffer memory allocation and
> converting the uncached buffer path to use the same page allocation
> path, followed by converting the page allocation path to use bulk
> allocation.
> 
> The rest of the patches are then consolidation of the page
> allocation and freeing code to simplify the code and remove a chunk
> of unnecessary abstraction. This is largely based on a series of
> changes made by Christoph Hellwig.
> 
> ----------------------------------------------------------------
> Christoph Hellwig (3):
>       xfs: remove ->b_offset handling for page backed buffers
>       xfs: simplify the b_page_count calculation
>       xfs: cleanup error handling in xfs_buf_get_map
> 
> Dave Chinner (7):
>       xfs: split up xfs_buf_allocate_memory
>       xfs: use xfs_buf_alloc_pages for uncached buffers
>       xfs: use alloc_pages_bulk_array() for buffers
>       xfs: merge _xfs_buf_get_pages()
>       xfs: move page freeing into _xfs_buf_free_pages()
>       xfs: get rid of xb_to_gfp()
>       xfs: merge xfs_buf_allocate_memory
> 
>  fs/xfs/libxfs/xfs_ag.c |   1 -
>  fs/xfs/xfs_buf.c       | 305 ++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------
>  fs/xfs/xfs_buf.h       |   3 +-
>  3 files changed, 120 insertions(+), 189 deletions(-)
> 
> -- 
> Dave Chinner
> david@fromorbit.com