Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756007AbZCRVkV (ORCPT ); Wed, 18 Mar 2009 17:40:21 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751734AbZCRVkH (ORCPT ); Wed, 18 Mar 2009 17:40:07 -0400 Received: from mx2.redhat.com ([66.187.237.31]:50442 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751644AbZCRVkG (ORCPT ); Wed, 18 Mar 2009 17:40:06 -0400 Message-ID: <49C16A48.4090303@redhat.com> Date: Wed, 18 Mar 2009 23:40:24 +0200 From: Avi Kivity User-Agent: Thunderbird 2.0.0.19 (X11/20090105) MIME-Version: 1.0 To: Jeremy Fitzhardinge CC: Nick Piggin , Linux Kernel Mailing List , Linux Memory Management List , Xen-devel , Jan Beulich , Ingo Molnar Subject: Re: Question about x86/mm/gup.c's use of disabled interrupts References: <49C148AF.5050601@goop.org> <49C16411.2040705@redhat.com> <49C1665A.4080707@goop.org> In-Reply-To: <49C1665A.4080707@goop.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1431 Lines: 37 Jeremy Fitzhardinge wrote: >>> Disabling the interrupt will prevent the tlb flush IPI from coming >>> in and flushing this cpu's tlb, but I don't see how it will prevent >>> some other cpu from actually updating the pte in the pagetable, >>> which is what we're concerned about here. >> >> The thread that cleared the pte holds the pte lock and is now waiting >> for the IPI. The thread that wants to update the pte will wait for >> the pte lock, thus also waits on the IPI and gup_fast()'s >> local_irq_enable(). I think. > > But hasn't it already done the pte update at that point? > > (I think this conversation really is moot because the kernel never > does P->P pte updates any more; its always P->N->P.) I thought you were concerned about cpu 0 doing a gup_fast(), cpu 1 doing P->N, and cpu 2 doing N->P. In this case cpu 2 is waiting on the pte lock. >>> Is this the only reason to disable interrupts? >> >> Another comment says it also prevents pagetable teardown. > > We could take a reference to the mm to get the same effect, no? > Won't stop munmap(). -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain. -- 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/