mbox series

[0/6,v2] congestion_wait() and GFP_NOFAIL

Message ID 163184698512.29351.4735492251524335974.stgit@noble.brown (mailing list archive)
Headers show
Series congestion_wait() and GFP_NOFAIL | expand

Message

NeilBrown Sept. 17, 2021, 2:56 a.m. UTC
This second version:
  - add recipients for the Documentation/core-api changes
  - add fix for __alloc_pages_bulk() to handle GFP_NOFAIL
  - drops the annotations for congestion_wait() as being ineffective
    as that isn't really useful until an alternative is available
  - changes to GFP_NOFAIL documentation changes to focus on the possible
    deadlocks rather than the use of memory reserves
  - Improves ext4 and xfs patches based on feedback from Ted and Dave.

The patches are independent, except that the last patch depends on the
first.

As mentioned last time:

  These are the easy bits.  There are 5 calls to congestion_wait() and
  one to wait_iff_congested() in mm/ which need consideration.  There
  are multiple calls to congestion_wait in fs/, particularly fs/f2fs/
  which need to be addressed too.  I'll try to form an opinion about
  these in coming weeks.

(other interesting comment in original cover letter just duplicates
 observations made in the commit messages of individual patches).

NeilBrown


---

NeilBrown (6):
      MM: Support __GFP_NOFAIL in  alloc_pages_bulk_*() and improve doco
      MM: improve documentation for __GFP_NOFAIL
      EXT4: Remove ENOMEM/congestion_wait() loops.
      EXT4: remove congestion_wait from ext4_bio_write_page, and simplify
      XFS: remove congestion_wait() loop from kmem_alloc()
      XFS: remove congestion_wait() loop from xfs_buf_alloc_pages()


 Documentation/core-api/memory-allocation.rst | 25 ++++++++-
 fs/ext4/ext4.h                               |  2 +-
 fs/ext4/ext4_jbd2.c                          |  4 +-
 fs/ext4/ext4_jbd2.h                          | 14 +++---
 fs/ext4/extents.c                            | 53 ++++++++------------
 fs/ext4/extents_status.c                     | 35 +++++++------
 fs/ext4/extents_status.h                     |  2 +-
 fs/ext4/ialloc.c                             |  3 +-
 fs/ext4/indirect.c                           |  2 +-
 fs/ext4/inode.c                              |  6 +--
 fs/ext4/ioctl.c                              |  4 +-
 fs/ext4/page-io.c                            | 13 ++---
 fs/ext4/super.c                              |  2 +-
 fs/jbd2/transaction.c                        |  8 +--
 fs/xfs/kmem.c                                | 19 +++----
 fs/xfs/xfs_buf.c                             | 14 +++---
 include/linux/gfp.h                          |  6 ++-
 17 files changed, 113 insertions(+), 99 deletions(-)

--
Signature