[PATCH 0/6 v2] congestion_wait() and GFP_NOFAIL
From: NeilBrown
Date: Thu Sep 16 2021 - 22:59:27 EST
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