Re: [PATCH 2/2] Filter unevictable page out in deactivate_page

Minchan Kim
2011-05-03T00:30:02Z

Hi KOSAKI,

On Mon, May 2, 2011 at 7:37 PM, KOSAKI Motohiro
<kosaki.motohiro@jp.fujitsu.com> wrote:
>> It's pointless that deactive_page's pagevec operation about
>> unevictable page as it's nop.
>> This patch removes unnecessary overhead which might be a bit problem
>> in case that there are many unevictable page in system(ex, mprotect workload)
>>
>> Signed-off-by: Minchan Kim <minchan.kim@gmail.com>
>> ---
>>  mm/swap.c |    9 +++++++++
>>  1 files changed, 9 insertions(+), 0 deletions(-)
>>
>> diff --git a/mm/swap.c b/mm/swap.c
>> index 2e9656d..b707694 100644
>> --- a/mm/swap.c
>> +++ b/mm/swap.c
>> @@ -511,6 +511,15 @@ static void drain_cpu_pagevecs(int cpu)
>>   */
>>  void deactivate_page(struct page *page)
>>  {
>> +
>> +     /*
>> +      * In workload which system has many unevictable page(ex, mprotect),
>> +      * unevictalge page deactivation for accelerating reclaim
>> +      * is pointless.
>> +      */
>> +     if (PageUnevictable(page))
>> +             return;
>> +
>
>        Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
>

Thanks!

>
> btw, I think we should check PageLRU too.
>

Yes. I remember you advised it when we push this patch but I didn't.
That's because I think most of pages in such context would be LRU as
they are cached pages.
So IMO, PageLRU checking in deactivate_page couldn't help much.

--
Kind regards,
Minchan Kim