Messages in this thread | | | Date | Fri, 06 Apr 2007 23:15:33 +1000 | From | Nick Piggin <> | Subject | Re: Shared futexes (was [PATCH] FUTEX : new PRIVATE futexes) |
| |
Hugh Dickins wrote: > On Fri, 6 Apr 2007, Peter Zijlstra wrote: > >>some thoughts on shared futexes; >> >>Could we get rid of the mmap_sem on the shared futexes in the following >>manner:
I'd imagine shared futexes would be much less common than private for threaded programs... I'd say we should reevaluate things once we have private futexes, and malloc/free stop hammering mmap_sem so hard...
>> - get a page using pfn_to_page (skipping VM_PFNMAP) >> - get the futex key from page->mapping->host and page->index >> and offset from addr % PAGE_SIZE. >> >>or given a key: >> >> - lookup the page from key.shared.inode->i_mapping by key.shared.pgoff >> possibly loading the page using mapping->a_ops->readpage().
For shared futexes, wouldn't i_mapping be worse, because you'd be ping-ponging the tree_lock between processes, rather than have each use their own mmap_sem?
That also only helps for the wakeup case too, doesn't it? You have to use the vmas to find out which inode to use to do the wait, I think? (unless you introduce a new shared futex API).
-- SUSE Labs, Novell Inc. - 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/
| |