linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Shakeel Butt <shakeelb@google.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: Matthew Wilcox <willy@infradead.org>,
	linux-mm@kvack.org, Stefan Roesch <shr@fb.com>
Subject: Re: [PATCH v2] mm: honor FGP_NOWAIT for page cache page allocation
Date: Sun, 3 Jul 2022 05:41:24 +0000	[thread overview]
Message-ID: <20220703054124.f6goy5irvghc4knq@google.com> (raw)
In-Reply-To: <dd47b882-1a18-317c-9906-e73c5487678c@kernel.dk>

On Sat, Jul 02, 2022 at 09:43:32AM -0600, Jens Axboe wrote:
> If we're creating a page cache page with FGP_CREAT but FGP_NOWAIT is
> set, we should dial back the gfp flags to avoid frivolous blocking
> which is trivial to hit in low memory conditions:
> 
> [   10.117661]  __schedule+0x8c/0x550
> [   10.118305]  schedule+0x58/0xa0
> [   10.118897]  schedule_timeout+0x30/0xdc
> [   10.119610]  __wait_for_common+0x88/0x114
> [   10.120348]  wait_for_completion+0x1c/0x24
> [   10.121103]  __flush_work.isra.0+0x16c/0x19c
> [   10.121896]  flush_work+0xc/0x14
> [   10.122496]  __drain_all_pages+0x144/0x218
> [   10.123267]  drain_all_pages+0x10/0x18
> [   10.123941]  __alloc_pages+0x464/0x9e4
> [   10.124633]  __folio_alloc+0x18/0x3c
> [   10.125294]  __filemap_get_folio+0x17c/0x204
> [   10.126084]  iomap_write_begin+0xf8/0x428
> [   10.126829]  iomap_file_buffered_write+0x144/0x24c
> [   10.127710]  xfs_file_buffered_write+0xe8/0x248
> [   10.128553]  xfs_file_write_iter+0xa8/0x120
> [   10.129324]  io_write+0x16c/0x38c
> [   10.129940]  io_issue_sqe+0x70/0x1cc
> [   10.130617]  io_queue_sqe+0x18/0xfc
> [   10.131277]  io_submit_sqes+0x5d4/0x600
> [   10.131946]  __arm64_sys_io_uring_enter+0x224/0x600
> [   10.132752]  invoke_syscall.constprop.0+0x70/0xc0
> [   10.133616]  do_el0_svc+0xd0/0x118
> [   10.134238]  el0_svc+0x78/0xa0
> 
> Clear IO, FS, and reclaim flags and mark the allocation as GFP_NOWAIT and
> add __GFP_NOWARN to avoid polluting dmesg with pointless allocations
> failures. A caller with FGP_NOWAIT must be expected to handle the
> resulting -EAGAIN return and retry from a suitable context without NOWAIT
> set.
> 
> Signed-off-by: Jens Axboe <axboe@kernel.dk>

Reviewed-by: Shakeel Butt <shakeelb@google.com>


  reply	other threads:[~2022-07-03  5:41 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-02 15:43 Jens Axboe
2022-07-03  5:41 ` Shakeel Butt [this message]
2022-07-03  8:37 ` Matthew Wilcox
2022-07-03 12:51   ` Jens Axboe

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=20220703054124.f6goy5irvghc4knq@google.com \
    --to=shakeelb@google.com \
    --cc=axboe@kernel.dk \
    --cc=linux-mm@kvack.org \
    --cc=shr@fb.com \
    --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