From: Huang Shijie <shijie8@gmail.com>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: linux-mm@kvack.org
Subject: Re: Does get_user_pages_fast lock the user pages in memory in my case?
Date: Mon, 20 Apr 2009 10:22:31 +0800 [thread overview]
Message-ID: <49EBDC67.2060204@gmail.com> (raw)
In-Reply-To: <20090418151620.1258.A69D9226@jp.fujitsu.com>
KOSAKI Motohiro a??e??:
> Hi
>
>
>> "
>> +/**
>> + * get_user_pages_fast() - pin user pages in memory
>> + * @start: starting user address
>> + * @nr_pages: number of pages from start to pin
>> + * @write: whether pages will be written to
>> + * @pages: array that receives pointers to the pages pinned.
>> + * Should be at least nr_pages long.
>> "
>>
>> But after I digged the code of kswap and the get_user_pages(called by
>> get_user_pages_fast),
>> I did not find how the pages pinned in memory.I really need the pages
>> pinned in memory.
>>
>> Assume page A is one of the pages obtained by get_user_pages_fast()
>> during page-fault.
>>
>> [1] page A will on the LRU_ACTIVE_ANON list;
>> the _count of page A increment by one;
>> PTE for page A will be set ACCESSED.
>>
>> [2] kswapd will scan the lru list,and move page A from LRU_ACTIVE_ANON
>> to LRU_INACTIVE_ANON.
>> In the shrink_page_list(), there is nothing can stop page A been
>> swapped out.
>> I don't think the page_reference() can move page A back to
>> LRU_ACTIVE_ANON.In my driver,
>> I am not sure if the VLC can access the page A.
>>
>> Is this a bug? or I miss something?
>> Thanks .
>>
>
> BUG.
>
> We are talking about it just now.
>
> see the following thread in lkml
> "[RFC][PATCH 0/6] IO pinning(get_user_pages()) vs fork race fix"
>
>
thanks, I read the thread as well as your patch.
What about to put the gup() page back in the isolate_pages_global()?
> but unfortunately, we don't have no painful fix. perhaps you need change
> your code...
>
>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2009-04-20 2:23 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-17 7:01 Does get_user_pages_fast lock the user pages in memory in my case? Huang Shijie
2009-04-18 6:18 ` KOSAKI Motohiro
2009-04-20 2:22 ` Huang Shijie [this message]
2009-04-19 23:45 ` Minchan Kim
2009-04-20 2:15 ` Huang Shijie
2009-04-20 2:42 ` Minchan Kim
2009-04-20 3:28 ` Huang Shijie
2009-04-20 3:42 ` KOSAKI Motohiro
2009-04-20 4:53 ` Minchan Kim
2009-04-20 5:05 ` KOSAKI Motohiro
2009-04-20 5:05 ` Huang Shijie
2009-04-20 5:19 ` KOSAKI Motohiro
2009-04-20 5:37 ` Huang Shijie
2009-04-20 7:59 ` KOSAKI Motohiro
2009-04-20 8:23 ` Huang Shijie
2009-04-20 9:24 ` KOSAKI Motohiro
2009-04-20 9:47 ` Huang Shijie
2009-04-21 1:43 ` KOSAKI Motohiro
2009-04-21 19:47 ` Christoph Lameter
2009-04-20 5:24 ` Minchan Kim
2009-04-20 5:42 ` Huang Shijie
2009-04-20 3:57 ` Huang Shijie
2009-04-22 6:08 ` Huang Shijie
2009-04-22 9:46 ` Minchan Kim
2009-04-20 3:18 ` KOSAKI Motohiro
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49EBDC67.2060204@gmail.com \
--to=shijie8@gmail.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-mm@kvack.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.