[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <28c262360807011749i10a77640l4a1d33d5e627c866@mail.gmail.com>
Date: Wed, 2 Jul 2008 09:49:49 +0900
From: "MinChan Kim" <minchan.kim@...il.com>
To: "Rik van Riel" <riel@...hat.com>,
"KOSAKI Motohiro" <kosaki.motohiro@...fujitsu.com>
Cc: LKML <linux-kernel@...r.kernel.org>, linux-mm <linux-mm@...ck.org>,
"Lee Schermerhorn" <Lee.Schermerhorn@...com>,
"Andrew Morton" <akpm@...ux-foundation.org>
Subject: Re: [resend][PATCH -mm] split_lru: fix pagevec_move_tail() doesn't treat unevictable page
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@...il.com> 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@...hat.com> wrote:
>> On Tue, 01 Jul 2008 17:26:51 +0900
>> KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com> wrote:
>>
>>> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>
>>
>> Acked-by: Rik van Riel <riel@...hat.com>
>>
>> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists