From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robin Holt Subject: [ofa-general] Re: [PATCH 1 of 9] Lock the entire mm to prevent any mmu related operation to happen Date: Fri, 25 Apr 2008 14:25:32 -0500 Message-ID: <20080425192532.GA19717@sgi.com> References: <200804221506.26226.rusty@rustcorp.com.au> <20080425165639.GA23300@duo.random> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Nick Piggin , Peter Zijlstra , kvm-devel@lists.sourceforge.net, Kanoj Sarcar , Roland Dreier , Rusty Russell , linux-kernel@vger.kernel.org, Avi Kivity , linux-mm@kvack.org, Robin Holt , general@lists.openfabrics.org, Hugh Dickins , akpm@linux-foundation.org, Jack Steiner , Christoph Lameter To: Andrea Arcangeli Return-path: Content-Disposition: inline In-Reply-To: <20080425165639.GA23300@duo.random> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: general-bounces@lists.openfabrics.org Errors-To: general-bounces@lists.openfabrics.org List-Id: kvm.vger.kernel.org On Fri, Apr 25, 2008 at 06:56:40PM +0200, Andrea Arcangeli wrote: > Fortunately I figured out we don't really need mm_lock in unregister > because it's ok to unregister in the middle of the range_begin/end > critical section (that's definitely not ok for register that's why > register needs mm_lock). And it's perfectly ok to fail in register(). I think you still need mm_lock (unless I miss something). What happens when one callout is scanning mmu_notifier_invalidate_range_start() and you unlink. That list next pointer with LIST_POISON1 which is a really bad address for the processor to track. Maybe I misunderstood your description. Thanks, Robin