[lkml]   [2005]   [Jun]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subjectget_user_pages() and shared memory question

Is it possible for a page of memory that's been "grabbed" with get_user_pages() to ever be
allocated to another process? I'm assuming the answer is no, but I have a specific case I
want to ask about.

Let's say an application allocates some shared memory, and then calls into a driver which
calls get_user_pages(). The driver exits without releasing the pages, so they now have a
reference count on them. Then the application deallocates the shared memory. At this
point, the virtual addresses disappear, and no process owns them, but the pages still have
a reference count.

Another process now tries to allocate a shared memory buffer. Is there any way that this
new buffer can contain those pages that were grabbed with get_user_pages() (i.e. that
already have a reference count)?

Until 2.6.7, there was a bug in the VM where a page that was grabbed with get_user_pages()
could be swapped out. Those of you familar with the OpenIB work know what I'm talking
about. Would that bug affect anything I'm talking about?

Timur Tabi
Staff Software Engineer

One thing a Southern boy will never say is,
"I don't think duct tape will fix it."
-- Ed Smylie, NASA engineer for Apollo 13
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-06-21 17:22    [W:0.027 / U:40.252 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site