Messages in this thread | | | Date | Wed, 11 Jan 2006 15:08:31 +1100 | From | Nick Piggin <> | Subject | Re: smp race fix between invalidate_inode_pages* and do_no_page |
| |
Andrea Arcangeli wrote: > On Fri, Dec 16, 2005 at 02:51:47PM +0100, Andrea Arcangeli wrote: > >>There was a minor buglet in the previous patch an update is here: >> >> http://www.kernel.org/pub/linux/kernel/people/andrea/patches/v2.6/2.6.15-rc5/seqschedlock-2 > > > JFYI: I got a few hours ago positive confirmation of the fix from the > customer that was capable of reproducing this. I guess this is good > enough for production use (it's at the very least certainly better than > the previous code and it's guaranteed not to hurt the scalability of the > fast path in smp, so it's the least intrusive fix I could imagine). > > So we can start to think if we should using this new primitive I > created, and if to replace the yield() with a proper waitqueue (and > how). Or if to take the risk of hitting a bit of scalability in the > nopage page faults of processes, by rewriting the fix with a > find_lock_page in the do_no_page handler, that would avoid the need of > my new locking primitive. > > Comments welcome thanks!
I'd be inclined to think a lock_page is not a big SMP scalability problem because the struct page's cacheline(s) will be written to several times in the process of refcounting anyway. Such a workload would also be running into tree_lock as well.
Not that I have done any measurements.
-- SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com
- 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/
| |