lkml.org 
[lkml]   [2003]   [Aug]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/2] Futex non-page-pinning fix
Ingo Molnar <mingo@redhat.com> wrote:
>
> > What about the option of not pinning the pages at all: just fault
> > them in when required?
>
> precisely what scheme do you mean by this? There are two important points:
> when a thread sleeps on a futex, and when some thread does a wakeup on a
> futex address. We cannot hash the futex based on the virtual address
> (arbitrary share-ability of futex pages is another key appeal of them),
> and if by the time the wakeup happens the physical page goes away how do
> we find which threads are queued on this address?

I was suggesting that we hash the futex on mm+vaddr. Yes, differing vaddrs
break that.

umm, how about hashing only on offset into page? That reduces the number of
threads which need to be visited in futex_wake() by a factor of up to 1024.

In futext_wake(), fault in and pin the page, then for each thread which is
waiting on a futex which has the same offset into a page, do a
get_user_pages+follow_page, see if he's waiting on the just-faulted-in
page?


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

\
 
 \ /
  Last update: 2005-03-22 13:48    [W:0.079 / U:0.604 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site