From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Piggin Date: Sat, 20 Nov 2004 01:45:59 +0000 Subject: Re: page fault scalability patch V11 [0/7]: overview Message-Id: <419EA1D7.2060708@yahoo.com.au> List-Id: References: <419D581F.2080302@yahoo.com.au> <419D5E09.20805@yahoo.com.au> <1100848068.25520.49.camel@gaston> <419E98E7.1080402@yahoo.com.au> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Christoph Lameter Cc: Linus Torvalds , akpm@osdl.org, Benjamin Herrenschmidt , Hugh Dickins , linux-mm@kvack.org, linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org Christoph Lameter wrote: > On Sat, 20 Nov 2004, Nick Piggin wrote: > > >>I think this sounds like it might be a good idea. I prefer it to having >>the unbounded error of sloppy rss (as improbable as it may be in practice). > > > It may also be faster since the processors can have exclusive cache lines. > Yep. > This means we need to move rss into the task struct. But how does one get > from mm struct to task struct? current is likely available most of > the time. Is that always the case? > It is available everywhere that mm_struct is, I guess. So yes, I think `current` should be OK. > >>The per thread rss may wrap (maybe not 64-bit counters), but even so, >>the summation over all threads should still end up being correct I >>think. > > > Note though that the mmap_sem is no protection. It is a read lock and may > be held by multiple processes while incrementing and decrementing rss. > This is likely reducing the number of collisions significantly but it wont > be a guarantee like locking or atomic ops. > Yeah the read lock won't do anything to serialise it. I think what Linus is saying is that we _don't care_ most of the time (because the error will be bounded). But if it happened that we really do care anywhere, then the write lock should be sufficient.