Re: [PATCH 1/4] vmscan: change the number of the unmapped files in zone reclaim

KOSAKI Motohiro
2009-05-18T03:35:55Z

>> --- a/mm/vmscan.c
>> +++ b/mm/vmscan.c
>> @@ -2397,6 +2397,7 @@ static int __zone_reclaim(struct zone *z
>>               .isolate_pages = isolate_pages_global,
>>       };
>>       unsigned long slab_reclaimable;
>> +     long nr_unmapped_file_pages;
>>
>>       disable_swap_token();
>>       cond_resched();
>> @@ -2409,9 +2410,11 @@ static int __zone_reclaim(struct zone *z
>>       reclaim_state.reclaimed_slab = 0;
>>       p->reclaim_state = &reclaim_state;
>>
>> -     if (zone_page_state(zone, NR_FILE_PAGES) -
>> -             zone_page_state(zone, NR_FILE_MAPPED) >
>> -             zone->min_unmapped_pages) {
>> +     nr_unmapped_file_pages = zone_page_state(zone, NR_INACTIVE_FILE) +
>> +                              zone_page_state(zone, NR_ACTIVE_FILE) -
>> +                              zone_page_state(zone, NR_FILE_MAPPED);
>
> This can possibly go negative.

Is this a problem?
negative value mean almost pages are mapped. Thus

(nr_unmapped_file_pages > zone->min_unmapped_pages) => 0

is ok, I think.

>
>> +     if (nr_unmapped_file_pages > zone->min_unmapped_pages) {
>>               /*
>>                * Free memory by calling shrink zone with increasing
>>                * priorities until we have enough memory freed.