Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1598234 > unrolled thread

[PATCH RFC] mm/vmscan: donot retry shrink zones when memcg is disabled

Started byYisheng Xie <ysxie@foxmail.com>
First post2017-03-11 03:30 +0100
Last post2017-03-11 11:00 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH RFC] mm/vmscan: donot retry shrink zones when memcg is disabled Yisheng Xie <ysxie@foxmail.com> - 2017-03-11 03:30 +0100
    Re: [PATCH RFC] mm/vmscan: donot retry shrink zones when memcg is disabled Shakeel Butt <shakeelb@google.com> - 2017-03-11 04:50 +0100
      Re: [PATCH RFC] mm/vmscan: donot retry shrink zones when memcg is  disabled Yisheng Xie <ysxie@foxmail.com> - 2017-03-11 11:00 +0100

#1598234 — [PATCH RFC] mm/vmscan: donot retry shrink zones when memcg is disabled

FromYisheng Xie <ysxie@foxmail.com>
Date2017-03-11 03:30 +0100
Subject[PATCH RFC] mm/vmscan: donot retry shrink zones when memcg is disabled
Message-ID<tjEX7-4tB-1@gated-at.bofh.it>
From: Yisheng Xie <xieyisheng1@huawei.com>

When we enter do_try_to_free_pages, the may_thrash is always clear, and
it will retry shrink zones to tap cgroup's reserves memory by setting
may_thrash when the former shrink_zones reclaim nothing.

However, if CONFIG_MEMCG=n, it should not do this useless retry at all,
for we do not have any cgroup's reserves memory to tap, and we have
already done hard work and made no progress.

Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
---
 mm/vmscan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index bc8031e..b03ccc1 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2808,7 +2808,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
 		return 1;
 
 	/* Untapped cgroup reserves?  Don't OOM, retry. */
-	if (!sc->may_thrash) {
+	if (!sc->may_thrash && IS_ENABLED(CONFIG_MEMCG)) {
 		sc->priority = initial_priority;
 		sc->may_thrash = 1;
 		goto retry;
-- 
1.9.1

[toc] | [next] | [standalone]


#1598253

FromShakeel Butt <shakeelb@google.com>
Date2017-03-11 04:50 +0100
Message-ID<tjGcx-5iS-1@gated-at.bofh.it>
In reply to#1598234
On Fri, Mar 10, 2017 at 6:19 PM, Yisheng Xie <ysxie@foxmail.com> wrote:
> From: Yisheng Xie <xieyisheng1@huawei.com>
>
> When we enter do_try_to_free_pages, the may_thrash is always clear, and
> it will retry shrink zones to tap cgroup's reserves memory by setting
> may_thrash when the former shrink_zones reclaim nothing.
>
> However, if CONFIG_MEMCG=n, it should not do this useless retry at all,
> for we do not have any cgroup's reserves memory to tap, and we have
> already done hard work and made no progress.
>
> Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
> ---
>  mm/vmscan.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index bc8031e..b03ccc1 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -2808,7 +2808,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
>                 return 1;
>
>         /* Untapped cgroup reserves?  Don't OOM, retry. */
> -       if (!sc->may_thrash) {
> +       if (!sc->may_thrash && IS_ENABLED(CONFIG_MEMCG)) {

In my opinion it should be even more restrictive (restricting
cgroup_disabled=memory boot option and cgroup legacy hierarchy). So,
instead of IS_ENABLED(CONFIG_MEMCG), the check should be something
like (cgroup_subsys_enabled(memory_cgrp_subsys) &&
cgroup_subsys_on_dfl(memory_cgrp_subsys)).

>                 sc->priority = initial_priority;
>                 sc->may_thrash = 1;
>                 goto retry;
> --
> 1.9.1
>
>
>

[toc] | [prev] | [next] | [standalone]


#1598295 — Re: [PATCH RFC] mm/vmscan: donot retry shrink zones when memcg is disabled

FromYisheng Xie <ysxie@foxmail.com>
Date2017-03-11 11:00 +0100
SubjectRe: [PATCH RFC] mm/vmscan: donot retry shrink zones when memcg is disabled
Message-ID<tjLYC-Xt-11@gated-at.bofh.it>
In reply to#1598253
Hi Shakeel,

Thanks for reviewing.

On 03/11/2017 11:40 AM, Shakeel Butt wrote:
> On Fri, Mar 10, 2017 at 6:19 PM, Yisheng Xie <ysxie@foxmail.com> wrote:
>> From: Yisheng Xie <xieyisheng1@huawei.com>
>>
>> When we enter do_try_to_free_pages, the may_thrash is always clear, and
>> it will retry shrink zones to tap cgroup's reserves memory by setting
>> may_thrash when the former shrink_zones reclaim nothing.
>>
>> However, if CONFIG_MEMCG=n, it should not do this useless retry at all,
>> for we do not have any cgroup's reserves memory to tap, and we have
>> already done hard work and made no progress.
>>
>> Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
>> ---
>>  mm/vmscan.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/mm/vmscan.c b/mm/vmscan.c
>> index bc8031e..b03ccc1 100644
>> --- a/mm/vmscan.c
>> +++ b/mm/vmscan.c
>> @@ -2808,7 +2808,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
>>                 return 1;
>>
>>         /* Untapped cgroup reserves?  Don't OOM, retry. */
>> -       if (!sc->may_thrash) {
>> +       if (!sc->may_thrash && IS_ENABLED(CONFIG_MEMCG)) {
> In my opinion it should be even more restrictive (restricting
> cgroup_disabled=memory boot option and cgroup legacy hierarchy). So,
> instead of IS_ENABLED(CONFIG_MEMCG), the check should be something
> like (cgroup_subsys_enabled(memory_cgrp_subsys) &&
> cgroup_subsys_on_dfl(memory_cgrp_subsys)).
Right,  I will send another version soon.

Thanks
Yisheng Xie.

>>                 sc->priority = initial_priority;
>>                 sc->may_thrash = 1;
>>                 goto retry;
>> --
>> 1.9.1
>>
>>
>>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web