Re: [BUGFIX][PATCH] fix wrong lru rotate back at lumpty reclaim

From: KAMEZAWA Hiroyuki
Date: Tue Jun 09 2009 - 07:20:44 EST



Minchan Kim wrote:
> On Tue, Jun 9, 2009 at 6:15 PM, KAMEZAWA
> Hiroyuki<kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:
>>
>> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
>>
>> In lumpty reclaim, "cursor_page" is found just by pfn. Then, we don't
>> know
>> from which LRU "cursor" page came from. Then, putback it to "src" list
>> is BUG.
>> Just leave it as it is.
>> (And I think rotate here is overkilling even if "src" is correct.)
>>
>> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
>> ---
>> mm/vmscan.c | 5 ++---
>> 1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> Index: mmotm-2.6.30-Jun4/mm/vmscan.c
>> ===================================================================
>> --- mmotm-2.6.30-Jun4.orig/mm/vmscan.c
>> +++ mmotm-2.6.30-Jun4/mm/vmscan.c
>> @@ -940,10 +940,9 @@ static unsigned long isolate_lru_pages(u
>> nr_taken++;
>> scan++;
>> break;
>> -
>>case -EBUSY:
>
> We can remove case -EBUSY itself, too.
> It is meaningless.
>
Sure, will post v2 and remove EBUSY case.
(I'm sorry my webmail system converts a space to a multibyte char...
then I cut some.)

>> - /* else it is being freed
>> elsewhere */
>> -
>> list_move(&cursor_page->lru, src);
>> + /* Do nothing because we
>> don't know where
>> + cusrsor_page comes
>> from */
>>default:
>> break; /* ! on LRU or
>> wrong list */
>
> Hmm.. what meaning of this break ?
> We are in switch case.
> This "break" can't go out of loop.
yes.

> But comment said "abort this block scan".
>
Where ? the comment says the cursor_page is not on lru (PG_lru is unset)
> If I understand it properly , don't we add goto phrase ?
>
No.

Just try next page on list.

Thank you for review, I'll post updated one tomorrow.
-Kame

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/