linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Hillf Danton <hdanton@sina.com>
To: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Mike Christie <mchristi@redhat.com>,
	"Kirill A. Shutemov" <kirill@shutemov.name>,
	axboe@kernel.dk, James.Bottomley@HansenPartnership.com,
	martin.petersen@oracle.com, linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-block@vger.kernel.org,
	Linux-MM <linux-mm@kvack.org>
Subject: Re: [RFC PATCH] Add proc interface to set PF_MEMALLOC flags
Date: Wed, 11 Sep 2019 21:52:37 +0800	[thread overview]
Message-ID: <20190911135237.11248-1-hdanton@sina.com> (raw)
In-Reply-To: <20190911031348.9648-1-hdanton@sina.com>


On Wed, 11 Sep 2019 19:07:34 +0900
> 
> But I guess that there is a problem.

Not a new one. (see commit 7dea19f9ee63)

> Setting PF_MEMALLOC_NOIO causes
> current_gfp_context() to mask __GFP_IO | __GFP_FS, but the OOM killer cannot
> be invoked when __GFP_FS is masked. As a result, any userspace thread which
> has PF_MEMALLOC_NOIO cannot invoke the OOM killer.

Correct.

> If the userspace thread
> which uses PF_MEMALLOC_NOIO is involved in memory reclaiming activities,
> the memory reclaiming activities won't be able to make forward progress when
> the userspace thread triggered e.g. a page fault. Can the "userspace components
> that can run in the IO path" survive without any memory allocation?

Good question.

It can be solved without oom killer involved because user should be
aware of the risk of PF_MEMALLOC_NOIO if they ask for the convenience.
OTOH we are able to control any abuse of it as you worry, knowing that
the combination of __GFP_FS and oom killer can not get more than 50 users
works done, and we have to pay as much attention as we can to the decisions
they make. In case of PF_MEMALLOC_NOIO, we simply fail the allocation
rather than killing a random victim.


--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3854,6 +3854,8 @@ __alloc_pages_may_oom(gfp_t gfp_mask, un
 	 * out_of_memory). Once filesystems are ready to handle allocation
 	 * failures more gracefully we should just bail out here.
 	 */
+	if (current->flags & PF_MEMALLOC_NOIO)
+		goto out;
 
 	/* The OOM killer may not free memory on a specific node */
 	if (gfp_mask & __GFP_THISNODE)



  reply	other threads:[~2019-09-11 13:52 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20190909162804.5694-1-mchristi@redhat.com>
2019-09-09 18:26 ` [RFC PATCH] Add proc interface to set PF_MEMALLOC flags Mike Christie
2019-09-10  8:35   ` Damien Le Moal
2019-09-11  8:40     ` Martin Raiber
2019-09-11 16:56       ` Mike Christie
2019-09-11 19:21         ` Martin Raiber
2019-09-12 16:22           ` Mike Christie
2019-09-12 16:27             ` Mike Christie
2019-09-11  8:43     ` Martin Raiber
     [not found]   ` <ee39d997-ee07-22c7-3e59-a436cef4d587@I-love.SAKURA.ne.jp>
2019-09-10 23:28     ` Kirill A. Shutemov
2019-09-11 15:23     ` Mike Christie
     [not found] ` <20190910100000.mcik63ot6o3dyzjv@box.shutemov.name>
2019-09-10 16:06   ` Mike Christie
2019-09-11  3:13   ` Hillf Danton
2019-09-11 13:52     ` Hillf Danton [this message]
     [not found]     ` <c48cd3d8-699d-a614-b12d-1ddef71691f3@I-love.SAKURA.ne.jp>
2019-09-11 15:44       ` Mike Christie

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=20190911135237.11248-1-hdanton@sina.com \
    --to=hdanton@sina.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=axboe@kernel.dk \
    --cc=kirill@shutemov.name \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mchristi@redhat.com \
    --cc=penguin-kernel@I-love.SAKURA.ne.jp \
    /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).