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
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
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
> 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?
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