public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
To: vnagarnaik@google.com
Cc: kosaki.motohiro@jp.fujitsu.com, rostedt@goodmis.org,
	mingo@redhat.com, fweisbec@gmail.com, mrubin@google.com,
	dhsharp@google.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] trace: Set __GFP_NORETRY flag for ring buffer allocating process
Date: Thu, 09 Jun 2011 20:37:59 +0900	[thread overview]
Message-ID: <4DF0B097.7010805@jp.fujitsu.com> (raw)
In-Reply-To: <1307491302-9236-1-git-send-email-vnagarnaik@google.com>

(2011/06/08 9:01), Vaibhav Nagarnaik wrote:
> The tracing ring buffer is allocated from kernel memory. While
> allocating a large chunk of memory, OOM might happen which destabilizes
> the system. Thus random processes might get killed during the
> allocation.
> 
> This patch adds __GFP_NORETRY flag to the ring buffer allocation calls
> to make it fail more gracefully if the system will not be able to
> complete the allocation request.
> 
> Signed-off-by: Vaibhav Nagarnaik <vnagarnaik@google.com>
> ---
> Changelog:
> v2-v1: Added comment to explaing use of __GFP_NORETRY
> 
>  kernel/trace/ring_buffer.c |   25 ++++++++++++++++++++-----
>  1 files changed, 20 insertions(+), 5 deletions(-)

Unfortunately, __GFP_NORETRY is racy and don't work as expected.
If free memory is not enough, the thread may start to reclaim and
another thread can steal the reclaimed memory. And thread0 don't retry.

Then, thread0's alloc page may fail even though system have enough reclaimable
memory.

        thread0                                        thread1
        ---------------------------------------------------------------
        alloc_pages()
           get_page_from_freelist() -> fail
           try_to_free_pages()
                                                    alloc_pages()
                                                       get_page_from_freelist() -> success
           get_page_from_freelist() -> fail again

I think this is mm issue, and afaik, Minchan and some developers are
working on fixing it. but _now_ your patch doesn't work.

Thanks.




  parent reply	other threads:[~2011-06-09 11:38 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-26 19:52 [PATCH] trace: Set oom_score_adj to maximum for ring buffer allocating process Vaibhav Nagarnaik
2011-05-26 20:04 ` Steven Rostedt
2011-05-26 20:22   ` David Rientjes
2011-05-26 20:23   ` Vaibhav Nagarnaik
2011-05-26 20:33     ` David Rientjes
2011-05-26 21:00       ` Steven Rostedt
2011-05-26 22:28         ` Vaibhav Nagarnaik
2011-05-26 23:38           ` Steven Rostedt
2011-05-27  9:43             ` David Rientjes
2011-05-27 12:48               ` Steven Rostedt
2011-05-26 23:23         ` Vaibhav Nagarnaik
2011-05-27 17:58 ` Vaibhav Nagarnaik
2011-05-27 23:22   ` David Rientjes
2011-05-28  0:44     ` Vaibhav Nagarnaik
2011-05-28  1:50       ` Steven Rostedt
2011-05-30  6:23         ` KOSAKI Motohiro
2011-05-30 23:54           ` Vaibhav Nagarnaik
2011-05-30 23:46         ` Vaibhav Nagarnaik
2011-06-07 23:07           ` Steven Rostedt
2011-06-07 23:30             ` Vaibhav Nagarnaik
2011-06-07 23:41   ` [PATCH] trace: Set __GFP_NORETRY flag " Vaibhav Nagarnaik
2011-06-07 23:47     ` Frederic Weisbecker
2011-06-08  0:01     ` [PATCH v2] " Vaibhav Nagarnaik
2011-06-08  2:30       ` David Rientjes
2011-06-09 11:37       ` KOSAKI Motohiro [this message]
2011-06-09 12:14         ` Steven Rostedt
2011-06-09 18:41           ` Vaibhav Nagarnaik
2011-06-09 19:42           ` David Rientjes
2011-06-09 19:52             ` Steven Rostedt
2011-07-05 12:54       ` [tip:perf/core] ring-buffer: " tip-bot for Vaibhav Nagarnaik

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=4DF0B097.7010805@jp.fujitsu.com \
    --to=kosaki.motohiro@jp.fujitsu.com \
    --cc=dhsharp@google.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=mrubin@google.com \
    --cc=rostedt@goodmis.org \
    --cc=vnagarnaik@google.com \
    /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