linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: NeilBrown <neilb@suse.de>
To: Andrew Morton <akpm@linux-foundation.org>,
	Theodore Ts'o <tytso@mit.edu>,
	Andreas Dilger <adilger.kernel@dilger.ca>,
	"Darrick J. Wong" <djwong@kernel.org>,
	Matthew Wilcox <willy@infradead.org>,
	Mel Gorman <mgorman@suse.com>
Cc: linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: [PATCH 0/6] congestion_wait() and GFP_NOFAIL
Date: Tue, 14 Sep 2021 10:13:04 +1000	[thread overview]
Message-ID: <163157808321.13293.486682642188075090.stgit@noble.brown> (raw)

While working on an NFS issue recently I was informed (or maybe
"reminded") that congestion_wait() doesn't really do what we think it
does.   It is indistinguishable from schedule_timeout_uninterruptible().

Some current users for congestion_wait() would be better suited by
__GFP_NOFAIL.   In related discussions it was pointed out that the 
__GFP_NOFAIL documentation could usefully clarify the costs of its use.

So this set of patch addresses some of these issues.  The patches are
all independent and can safely be applied separately in different tress
as appropriate.

They:
 - add or improve documentation relating to these issues
 - make a tiny fix to the page_alloc_bulk_*
 - replace those calls to congestion_wait() which are simply waiting
   to retry a memory allocation.

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.

Thanks,
NeilBrown


---

NeilBrown (6):
      MM: improve documentation for __GFP_NOFAIL
      MM: annotate congestion_wait() and wait_iff_congested() as ineffective.
      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()


 fs/ext4/ext4.h              |  2 +-
 fs/ext4/ext4_jbd2.c         |  8 +++++-
 fs/ext4/extents.c           | 49 ++++++++++++++-----------------------
 fs/ext4/extents_status.c    | 35 ++++++++++++++------------
 fs/ext4/extents_status.h    |  2 +-
 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               | 16 +++---------
 fs/xfs/xfs_buf.c            |  6 ++---
 include/linux/backing-dev.h |  7 ++++++
 mm/backing-dev.c            |  9 +++++++
 15 files changed, 86 insertions(+), 83 deletions(-)

--
Signature


             reply	other threads:[~2021-09-14  0:27 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-14  0:13 NeilBrown [this message]
2021-09-14  0:13 ` [PATCH 2/6] MM: annotate congestion_wait() and wait_iff_congested() as ineffective NeilBrown
2021-09-15 11:56   ` Michal Hocko
2021-09-16 22:13     ` NeilBrown
2021-09-14  0:13 ` [PATCH 5/6] XFS: remove congestion_wait() loop from kmem_alloc() NeilBrown
2021-09-14  1:31   ` Dave Chinner
2021-09-14  3:27     ` NeilBrown
2021-09-14  6:05       ` Dave Chinner
2021-09-14  0:13 ` [PATCH 3/6] EXT4: Remove ENOMEM/congestion_wait() loops NeilBrown
2021-09-14 16:34   ` Mel Gorman
2021-09-14 21:48     ` NeilBrown
2021-09-15 12:06       ` Michal Hocko
2021-09-15 22:35         ` NeilBrown
2021-09-16  0:37           ` Dave Chinner
2021-09-16  6:52           ` Michal Hocko
2021-09-14 23:55     ` Dave Chinner
2021-09-15  8:59       ` Mel Gorman
2021-09-15 12:20         ` Michal Hocko
2021-09-15 14:35         ` Mel Gorman
2021-09-15 22:38           ` Dave Chinner
2021-09-16  9:00             ` Mel Gorman
2021-09-15  0:28   ` Theodore Ts'o
2021-09-15  5:25     ` NeilBrown
2021-09-15 17:02       ` Theodore Ts'o
2021-09-14  0:13 ` [PATCH 1/6] MM: improve documentation for __GFP_NOFAIL NeilBrown
2021-09-15 11:51   ` Michal Hocko
2021-09-14  0:13 ` [PATCH 6/6] XFS: remove congestion_wait() loop from xfs_buf_alloc_pages() NeilBrown
2021-09-14  2:08   ` Dave Chinner
2021-09-14  2:35     ` NeilBrown
2021-09-14  5:33       ` Dave Chinner
2021-09-14 16:45       ` Mel Gorman
2021-09-14 21:13         ` NeilBrown
2021-09-14  0:13 ` [PATCH 4/6] EXT4: remove congestion_wait from ext4_bio_write_page, and simplify NeilBrown

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=163157808321.13293.486682642188075090.stgit@noble.brown \
    --to=neilb@suse.de \
    --cc=adilger.kernel@dilger.ca \
    --cc=akpm@linux-foundation.org \
    --cc=djwong@kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=mgorman@suse.com \
    --cc=tytso@mit.edu \
    --cc=willy@infradead.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).