Re: [resend][PATCH -mm] split_lru: fix pagevec_move_tail() doesn't treat unevictable page

From: MinChan Kim
Date: Tue Jul 01 2008 - 20:54:35 EST


So sorry to make a noisy . :-<

Gmail is mangling my mail.
I hope this is last.

CPU1 CPU2

shm_unlock
scan_mapping_unevictable_pages
check_move_unevictable_page
ClearPageUnevictable
rotate_reclaimable_page
PageUnevictable(page) return 0

SetPageUnevictable
list_move(LRU_UNEVICTABLE)

local_irq_save
pagevec_move_tail



On Wed, Jul 2, 2008 at 9:49 AM, MinChan Kim <minchan.kim@xxxxxxxxx> wrote:
> Sorry, it seems mail sender problem.
> Resend
>
> CPU1 CPU2
>
> shm_unlock
> scan_mapping_unevictable_pages
> check_move_unevictable_page
> ClearPageUnevictable
> rotate_reclaimable_page
>
> PageUnevictable(page) return 0
> SetPageUnevictable
> list_move(LRU_UNEVICTABLE)
>
> local_irq_save
> pagevec_move_tail
>
>
> On Wed, Jul 2, 2008 at 9:39 AM, MinChan Kim <minchan.kim@xxxxxxxxx> wrote:
>> Hi, Rik and Kosaki-san
>>
>> I want to know exact race situation for remaining git log.
>> As you know, git log is important for me who is newbie to understand source
>>
>> There are many possibility in this race problem.
>>
>> Did you use hugepage in this test ?
>> I think that If you used hugepage, it seems to happen following race.
>>
>> --------------
>>
>> CPU1 CPU2
>>
>> shm_unlock
>> scan_mapping_unevictable_pages
>> check_move_unevictable_page
>> ClearPageUnevictable rotate_reclaimable_page
>>
>> PageUnevictable(page) return 0
>> SetPageUnevictable
>> list_move(LRU_UNEVICTABLE)
>>
>> local_irq_save
>>
>> pagevec_move_tail
>>
>> Do you think it is possible ?
>>
>> On Tue, Jul 1, 2008 at 10:38 PM, Rik van Riel <riel@xxxxxxxxxx> wrote:
>>> On Tue, 01 Jul 2008 17:26:51 +0900
>>> KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> wrote:
>>>
>>>> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>
>>>
>>> Acked-by: Rik van Riel <riel@xxxxxxxxxx>
>>>
>>> Good catch!
>>>
>>>> @@ -116,7 +116,7 @@ static void pagevec_move_tail(struct pag
>>>> zone = pagezone;
>>>> spin_lock(&zone->lru_lock);
>>>> }
>>>> - if (PageLRU(page) && !PageActive(page)) {
>>>> + if (PageLRU(page) && !PageActive(page) && !PageUnevictable(page)) {
>>>> int lru = page_is_file_cache(page);
>>>> list_move_tail(&page->lru, &zone->lru[lru].list);
>>>> pgmoved++;
>>>
>>> --
>>> All rights reversed.
>>>
>>
>>
>>
>> --
>> Kinds regards,
>> MinChan Kim
>>
>
>
>
> --
> Kinds regards,
> MinChan Kim
>



--
Kinds regards,
MinChan Kim
--
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/