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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 25, 2010 at 5:31 PM, KOSAKI Motohiro
<kosaki.motohiro@xxxxxxxxxxxxxx> 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

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]