From: Michal Hocko <mhocko@kernel.org>
To: Suren Baghdasaryan <surenb@google.com>
Cc: akpm@linux-foundation.org, hannes@cmpxchg.org,
hillf.zj@alibaba-inc.com, minchan@kernel.org,
mgorman@techsingularity.net, ying.huang@intel.com,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
timmurray@google.com, tkjos@google.com
Subject: Re: [PATCH v2] mm: terminate shrink_slab loop if signal is pending
Date: Fri, 8 Dec 2017 09:22:20 +0100 [thread overview]
Message-ID: <20171208082220.GQ20234@dhcp22.suse.cz> (raw)
In-Reply-To: <20171208012305.83134-1-surenb@google.com>
On Thu 07-12-17 17:23:05, Suren Baghdasaryan wrote:
> Slab shrinkers can be quite time consuming and when signal
> is pending they can delay handling of the signal. If fatal
> signal is pending there is no point in shrinking that process
> since it will be killed anyway.
The thing is that we are _not_ shrinking _that_ process. We are
shrinking globally shared objects and the fact that the memory pressure
is so large that the kswapd doesn't keep pace with it means that we have
to throttle all allocation sites by doing this direct reclaim. I agree
that expediting killed task is a good thing in general because such a
process should free at least some memory.
> This change checks for pending
> fatal signals inside shrink_slab loop and if one is detected
> terminates this loop early.
This changelog doesn't really address my previous review feedback, I am
afraid. You should mention more details about problems you are seeing
and what causes them. If we have a shrinker which takes considerable
amount of time them we should be addressing that. If that is not
possible then it should be documented at least.
The changelog also should describe how does this play along with the
rest of the allocation path.
The patch is not mergeable in this form I am afraid.
> Signed-off-by: Suren Baghdasaryan <surenb@google.com>
>
> ---
> V2:
> Sergey Senozhatsky:
> - Fix missing parentheses
> ---
> mm/vmscan.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index c02c850ea349..28e4bdc72c16 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -486,6 +486,13 @@ static unsigned long shrink_slab(gfp_t gfp_mask, int nid,
> .memcg = memcg,
> };
>
> + /*
> + * We are about to die and free our memory.
> + * Stop shrinking which might delay signal handling.
> + */
> + if (unlikely(fatal_signal_pending(current)))
> + break;
> +
> /*
> * If kernel memory accounting is disabled, we ignore
> * SHRINKER_MEMCG_AWARE flag and call all shrinkers
> --
> 2.15.1.424.g9478a66081-goog
>
--
Michal Hocko
SUSE Labs
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-12-08 8:22 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-08 1:23 Suren Baghdasaryan
2017-12-08 8:22 ` Michal Hocko [this message]
2017-12-08 11:36 ` Tetsuo Handa
2017-12-08 11:48 ` Michal Hocko
2017-12-08 14:03 ` Tetsuo Handa
2017-12-08 18:06 ` Suren Baghdasaryan
2017-12-09 8:08 ` Tetsuo Handa
2017-12-10 10:17 ` Michal Hocko
2017-12-11 21:05 ` Suren Baghdasaryan
2017-12-10 10:13 ` Michal Hocko
2017-12-10 11:37 ` Tetsuo Handa
2017-12-11 21:12 ` Suren Baghdasaryan
2017-12-08 21:02 ` David Rientjes
2017-12-09 3:16 ` Suren Baghdasaryan
2017-12-09 12:44 ` Tetsuo Handa
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=20171208082220.GQ20234@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=hillf.zj@alibaba-inc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=minchan@kernel.org \
--cc=surenb@google.com \
--cc=timmurray@google.com \
--cc=tkjos@google.com \
--cc=ying.huang@intel.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