2010-06-25 08:31:18

by KOSAKI Motohiro

[permalink] [raw]
Subject: [PATCH] vmscan: zone_reclaim don't call disable_swap_token()

Swap token don't works when zone reclaim is enabled since it was born.
Because __zone_reclaim() always call disable_swap_token()
unconditionally.

This kill swap token feature completely. As far as I know, nobody want
to that. Remove it.

Cc: Rik van Riel <[email protected]>
Cc: Christoph Lameter <[email protected]>
Signed-off-by: KOSAKI Motohiro <[email protected]>
---
mm/vmscan.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 9c7e57c..0c961f1 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2590,7 +2590,6 @@ static int __zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order)
};
unsigned long slab_reclaimable;

- disable_swap_token();
cond_resched();
/*
* We need to be able to allocate from the reserves for RECLAIM_SWAP
--
1.6.5.2



2010-06-25 14:10:43

by Rik van Riel

[permalink] [raw]
Subject: Re: [PATCH] vmscan: zone_reclaim don't call disable_swap_token()

On 06/25/2010 04:31 AM, KOSAKI Motohiro wrote:
> Swap token don't works when zone reclaim is enabled since it was born.
> Because __zone_reclaim() always call disable_swap_token()
> unconditionally.
>
> This kill swap token feature completely. As far as I know, nobody want
> to that. Remove it.
>
> Cc: Rik van Riel<[email protected]>
> Cc: Christoph Lameter<[email protected]>
> Signed-off-by: KOSAKI Motohiro<[email protected]>

You are absolutely right.

Acked-by: Rik van Riel <[email protected]>

--
All rights reversed

2010-06-26 23:56:55

by Minchan Kim

[permalink] [raw]
Subject: Re: [PATCH] vmscan: zone_reclaim don't call disable_swap_token()

On Fri, Jun 25, 2010 at 5:31 PM, KOSAKI Motohiro
<[email protected]> wrote:
> Swap token don't works when zone reclaim is enabled since it was born.
> Because __zone_reclaim() always call disable_swap_token()
> unconditionally.
>
> This kill swap token feature completely. As far as I know, nobody want
> to that. Remove it.
>

In f7b7fd8f3ebbb, Rik added disable_swap_token.
At that time, sc.priority in zone_reclaim is zero so it does make sense.
But in a92f71263a, Christoph changed the priority to begin from
ZONE_RECLAIM_PRIORITY with remained disable_swap_token. It doesn't
make sense.

So doesn't we add disable_swap_token following as than removing?

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 9c7e57c..d8050c7 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2590,7 +2590,6 @@ static int __zone_reclaim(struct zone *zone,
gfp_t gfp_mask, unsigned int order)
};
unsigned long slab_reclaimable;

- disable_swap_token();
cond_resched();
/*
* We need to be able to allocate from the reserves for RECLAIM_SWAP
@@ -2612,6 +2611,8 @@ static int __zone_reclaim(struct zone *zone,
gfp_t gfp_mask, unsigned int order)
note_zone_scanning_priority(zone, priority);
shrink_zone(priority, zone, &sc);
priority--;
+ if (!priority)
+ disable_swap_token();
} while (priority >= 0 && sc.nr_reclaimed < nr_pages);
}


--
Kind regards,
Minchan Kim

2010-06-28 01:37:52

by KOSAKI Motohiro

[permalink] [raw]
Subject: Re: [PATCH] vmscan: zone_reclaim don't call disable_swap_token()

> On Fri, Jun 25, 2010 at 5:31 PM, KOSAKI Motohiro
> <[email protected]> wrote:
> > Swap token don't works when zone reclaim is enabled since it was born.
> > Because __zone_reclaim() always call disable_swap_token()
> > unconditionally.
> >
> > This kill swap token feature completely. As far as I know, nobody want
> > to that. Remove it.
> >
>
> In f7b7fd8f3ebbb, Rik added disable_swap_token.
> At that time, sc.priority in zone_reclaim is zero so it does make sense.
> But in a92f71263a, Christoph changed the priority to begin from
> ZONE_RECLAIM_PRIORITY with remained disable_swap_token. It doesn't
> make sense.
>
> So doesn't we add disable_swap_token following as than removing?

f7b7fd8f3ebbb says disable_swap_token was introduced to prevent OOM.
but zone reclaim failure don't make OOM. instead, fallback to try_to_free_pages().

If the system have really heavy pressure, do_try_to_free_pages()
will call disable_swap_token().

So, What benefit is there?


2010-06-28 10:46:31

by Minchan Kim

[permalink] [raw]
Subject: Re: [PATCH] vmscan: zone_reclaim don't call disable_swap_token()

On Mon, Jun 28, 2010 at 10:37 AM, KOSAKI Motohiro
<[email protected]> wrote:
>> On Fri, Jun 25, 2010 at 5:31 PM, KOSAKI Motohiro
>> <[email protected]> wrote:
>> > Swap token don't works when zone reclaim is enabled since it was born.
>> > Because __zone_reclaim() always call disable_swap_token()
>> > unconditionally.
>> >
>> > This kill swap token feature completely. As far as I know, nobody want
>> > to that. Remove it.
>> >
>>
>> In f7b7fd8f3ebbb, Rik added disable_swap_token.
>> At that time, sc.priority in zone_reclaim is zero so it does make sense.
>> But in a92f71263a, Christoph changed the priority to begin from
>> ZONE_RECLAIM_PRIORITY with remained disable_swap_token. It doesn't
>> make sense.
>>
>> So doesn't we add disable_swap_token following as than removing?
>
> f7b7fd8f3ebbb says disable_swap_token was introduced to prevent OOM.
> but zone reclaim failure don't make OOM. instead, fallback to try_to_free_pages().

Indeed. I missed that.
Thanks, Kosaki.

Reviewed-by: Minchan Kim <[email protected]>


--
Kind regards,
Minchan Kim