Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 18 Feb 2002 20:55:45 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 18 Feb 2002 20:55:36 -0500 Received: from neon-gw-l3.transmeta.com ([63.209.4.196]:46346 "EHLO neon-gw.transmeta.com") by vger.kernel.org with ESMTP id ; Mon, 18 Feb 2002 20:55:21 -0500 Date: Mon, 18 Feb 2002 17:53:50 -0800 (PST) From: Linus Torvalds To: Daniel Phillips cc: Hugh Dickins , , Kernel Mailing List , , Robert Love , Rik van Riel , , Andrew Morton , , Subject: Re: [RFC] Page table sharing In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 19 Feb 2002, Daniel Phillips wrote: > > Somebody might read fault, changing an entry when we're in the middle of > copying it and might might do a duplicated read fault. You're confusing the mm->mmap_sem with the page_table_lock. The mm semaphore is really a read-write semaphore, and yes, there can be multiple faulters active at the same time readin gin pages. But the page_table_lock is 100% exclusive, and while you hold the page_table_lock there is absolutely _not_ going to be any concurrent page faulting. (NOTE! Sure, there might be another mm that has the same pmd shared, but that one is going to do an unshare before it actually touches anything in the pmd, so it's NOT going to change the values in the original pmd). So I'm personally convinced that the locking shouldn't be needed at all, if you just make sure that you do things in the right order (that, of course, might need some memory barriers, which had better be implied by the atomic dec-and-test anyway). Linus - 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/