From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Wilcox Date: Fri, 31 May 2019 17:48:54 +0000 Subject: Re: [RFC] mm: Generalize notify_page_fault() Message-Id: <20190531174854.GA31852@bombadil.infradead.org> List-Id: References: <1559195713-6956-1-git-send-email-anshuman.khandual@arm.com> <20190530110639.GC23461@bombadil.infradead.org> <4f9a610d-e856-60f6-4467-09e9c3836771@arm.com> <20190530133954.GA2024@bombadil.infradead.org> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Anshuman Khandual Cc: Mark Rutland , Michal Hocko , linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org, Catalin Marinas , Will Deacon , linux-mm@kvack.org, Paul Mackerras , sparclinux@vger.kernel.org, linux-s390@vger.kernel.org, Yoshinori Sato , Michael Ellerman , Russell King , Fenghua Yu , Stephen Rothwell , Andrey Konovalov , linux-arm-kernel@lists.infradead.org, Christophe Leroy , Tony Luck , Heiko Carstens , linux-kernel@vger.kernel.org, Martin Schwidefsky , Andrew Morton , linuxppc-dev@lists.ozlabs.org, "David S. Miller" On Fri, May 31, 2019 at 02:17:43PM +0530, Anshuman Khandual wrote: > On 05/30/2019 07:09 PM, Matthew Wilcox wrote: > > On Thu, May 30, 2019 at 05:31:15PM +0530, Anshuman Khandual wrote: > >> On 05/30/2019 04:36 PM, Matthew Wilcox wrote: > >>> The two handle preemption differently. Why is x86 wrong and this one > >>> correct? > >> > >> Here it expects context to be already non-preemptible where as the proposed > >> generic function makes it non-preemptible with a preempt_[disable|enable]() > >> pair for the required code section, irrespective of it's present state. Is > >> not this better ? > > > > git log -p arch/x86/mm/fault.c > > > > search for 'kprobes'. > > > > tell me what you think. > > Are you referring to these following commits > > a980c0ef9f6d ("x86/kprobes: Refactor kprobes_fault() like kprobe_exceptions_notify()") > b506a9d08bae ("x86: code clarification patch to Kprobes arch code") > > In particular the later one (b506a9d08bae). It explains how the invoking context > in itself should be non-preemptible for the kprobes processing context irrespective > of whether kprobe_running() or perhaps smp_processor_id() is safe or not. Hence it > does not make much sense to continue when original invoking context is preemptible. > Instead just bail out earlier. This seems to be making more sense than preempt > disable-enable pair. If there are no concerns about this change from other platforms, > I will change the preemption behavior in proposed generic function next time around. Exactly. So, any of the arch maintainers know of a reason they behave differently from x86 in this regard? Or can Anshuman use the x86 implementation for all the architectures supporting kprobes? From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.3 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DAE17C04AB6 for ; Fri, 31 May 2019 17:48:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AC64026D5E for ; Fri, 31 May 2019 17:48:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="EAUDatB5" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726725AbfEaRs6 (ORCPT ); Fri, 31 May 2019 13:48:58 -0400 Received: from bombadil.infradead.org ([198.137.202.133]:40476 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725934AbfEaRs6 (ORCPT ); Fri, 31 May 2019 13:48:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=ox5SYttOkOuRXfS7cs3JsHQ+R0GLTw4N6BHjQRoaW9E=; b=EAUDatB5hW46G9M1Ux5rKjKdO 2gatVjjYZRPlz/Y8yieBJl+NTOqpgatgBKBU0KD4TsTPRHuOAOdASb97lecou22eiM2OapeLCzPgp B0i0qPk66SspAy6OJFa1NIO4ol3ItewiiFaxYuuw7LLCg6ihQcITsomL18HAh28KsH655hSpvEaXK xELWZ9GoG8dKe0FlwT+BYKfNw7vVZDolyKXu+JXuRall/zajJ1hcm3jvaxeoZ0nnxHMg7OjxSwtOg 5Emd9DEvLQB4DtO5nEcmw84mXxgWLl2OJrNXW+ggkep9wq+uTLg1JfxZNt1MTnoW7sdnu4+jS5Uxt sHxXOWYlg==; Received: from willy by bombadil.infradead.org with local (Exim 4.90_1 #2 (Red Hat Linux)) id 1hWleA-0002Ni-V0; Fri, 31 May 2019 17:48:54 +0000 Date: Fri, 31 May 2019 10:48:54 -0700 From: Matthew Wilcox To: Anshuman Khandual Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, Andrew Morton , Michal Hocko , Mark Rutland , Christophe Leroy , Stephen Rothwell , Andrey Konovalov , Michael Ellerman , Paul Mackerras , Russell King , Catalin Marinas , Will Deacon , Tony Luck , Fenghua Yu , Martin Schwidefsky , Heiko Carstens , Yoshinori Sato , "David S. Miller" Subject: Re: [RFC] mm: Generalize notify_page_fault() Message-ID: <20190531174854.GA31852@bombadil.infradead.org> References: <1559195713-6956-1-git-send-email-anshuman.khandual@arm.com> <20190530110639.GC23461@bombadil.infradead.org> <4f9a610d-e856-60f6-4467-09e9c3836771@arm.com> <20190530133954.GA2024@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, May 31, 2019 at 02:17:43PM +0530, Anshuman Khandual wrote: > On 05/30/2019 07:09 PM, Matthew Wilcox wrote: > > On Thu, May 30, 2019 at 05:31:15PM +0530, Anshuman Khandual wrote: > >> On 05/30/2019 04:36 PM, Matthew Wilcox wrote: > >>> The two handle preemption differently. Why is x86 wrong and this one > >>> correct? > >> > >> Here it expects context to be already non-preemptible where as the proposed > >> generic function makes it non-preemptible with a preempt_[disable|enable]() > >> pair for the required code section, irrespective of it's present state. Is > >> not this better ? > > > > git log -p arch/x86/mm/fault.c > > > > search for 'kprobes'. > > > > tell me what you think. > > Are you referring to these following commits > > a980c0ef9f6d ("x86/kprobes: Refactor kprobes_fault() like kprobe_exceptions_notify()") > b506a9d08bae ("x86: code clarification patch to Kprobes arch code") > > In particular the later one (b506a9d08bae). It explains how the invoking context > in itself should be non-preemptible for the kprobes processing context irrespective > of whether kprobe_running() or perhaps smp_processor_id() is safe or not. Hence it > does not make much sense to continue when original invoking context is preemptible. > Instead just bail out earlier. This seems to be making more sense than preempt > disable-enable pair. If there are no concerns about this change from other platforms, > I will change the preemption behavior in proposed generic function next time around. Exactly. So, any of the arch maintainers know of a reason they behave differently from x86 in this regard? Or can Anshuman use the x86 implementation for all the architectures supporting kprobes? From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 31 May 2019 10:48:54 -0700 From: Matthew Wilcox Subject: Re: [RFC] mm: Generalize notify_page_fault() Message-ID: <20190531174854.GA31852@bombadil.infradead.org> References: <1559195713-6956-1-git-send-email-anshuman.khandual@arm.com> <20190530110639.GC23461@bombadil.infradead.org> <4f9a610d-e856-60f6-4467-09e9c3836771@arm.com> <20190530133954.GA2024@bombadil.infradead.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org List-Archive: To: Anshuman Khandual Cc: Mark Rutland , Michal Hocko , linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org, Catalin Marinas , Will Deacon , linux-mm@kvack.org, Paul Mackerras , sparclinux@vger.kernel.org, linux-s390@vger.kernel.org, Yoshinori Sato , Michael Ellerman , Russell King , Fenghua Yu , Stephen Rothwell , Andrey Konovalov , linux-arm-kernel@lists.infradead.org, Christophe Leroy , Tony Luck , Heiko Carstens , linux-kernel@vger.kernel.org, Martin Schwidefsky , Andrew Morton , linuxppc-dev@lists.ozlabs.org, "David S. Miller" List-ID: On Fri, May 31, 2019 at 02:17:43PM +0530, Anshuman Khandual wrote: > On 05/30/2019 07:09 PM, Matthew Wilcox wrote: > > On Thu, May 30, 2019 at 05:31:15PM +0530, Anshuman Khandual wrote: > >> On 05/30/2019 04:36 PM, Matthew Wilcox wrote: > >>> The two handle preemption differently. Why is x86 wrong and this one > >>> correct? > >> > >> Here it expects context to be already non-preemptible where as the proposed > >> generic function makes it non-preemptible with a preempt_[disable|enable]() > >> pair for the required code section, irrespective of it's present state. Is > >> not this better ? > > > > git log -p arch/x86/mm/fault.c > > > > search for 'kprobes'. > > > > tell me what you think. > > Are you referring to these following commits > > a980c0ef9f6d ("x86/kprobes: Refactor kprobes_fault() like kprobe_exceptions_notify()") > b506a9d08bae ("x86: code clarification patch to Kprobes arch code") > > In particular the later one (b506a9d08bae). It explains how the invoking context > in itself should be non-preemptible for the kprobes processing context irrespective > of whether kprobe_running() or perhaps smp_processor_id() is safe or not. Hence it > does not make much sense to continue when original invoking context is preemptible. > Instead just bail out earlier. This seems to be making more sense than preempt > disable-enable pair. If there are no concerns about this change from other platforms, > I will change the preemption behavior in proposed generic function next time around. Exactly. So, any of the arch maintainers know of a reason they behave differently from x86 in this regard? Or can Anshuman use the x86 implementation for all the architectures supporting kprobes? _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.3 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_MUTT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 34EEFC28CC2 for ; Fri, 31 May 2019 17:50:17 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B06B926D65 for ; Fri, 31 May 2019 17:50:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="EAUDatB5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B06B926D65 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 45FsRV3bZ8zDqdV for ; Sat, 1 Jun 2019 03:50:14 +1000 (AEST) Authentication-Results: lists.ozlabs.org; spf=none (mailfrom) smtp.mailfrom=infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=willy@infradead.org; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=infradead.org header.i=@infradead.org header.b="EAUDatB5"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 45FsQ43RHtzDqXt for ; Sat, 1 Jun 2019 03:49:00 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=ox5SYttOkOuRXfS7cs3JsHQ+R0GLTw4N6BHjQRoaW9E=; b=EAUDatB5hW46G9M1Ux5rKjKdO 2gatVjjYZRPlz/Y8yieBJl+NTOqpgatgBKBU0KD4TsTPRHuOAOdASb97lecou22eiM2OapeLCzPgp B0i0qPk66SspAy6OJFa1NIO4ol3ItewiiFaxYuuw7LLCg6ihQcITsomL18HAh28KsH655hSpvEaXK xELWZ9GoG8dKe0FlwT+BYKfNw7vVZDolyKXu+JXuRall/zajJ1hcm3jvaxeoZ0nnxHMg7OjxSwtOg 5Emd9DEvLQB4DtO5nEcmw84mXxgWLl2OJrNXW+ggkep9wq+uTLg1JfxZNt1MTnoW7sdnu4+jS5Uxt sHxXOWYlg==; Received: from willy by bombadil.infradead.org with local (Exim 4.90_1 #2 (Red Hat Linux)) id 1hWleA-0002Ni-V0; Fri, 31 May 2019 17:48:54 +0000 Date: Fri, 31 May 2019 10:48:54 -0700 From: Matthew Wilcox To: Anshuman Khandual Subject: Re: [RFC] mm: Generalize notify_page_fault() Message-ID: <20190531174854.GA31852@bombadil.infradead.org> References: <1559195713-6956-1-git-send-email-anshuman.khandual@arm.com> <20190530110639.GC23461@bombadil.infradead.org> <4f9a610d-e856-60f6-4467-09e9c3836771@arm.com> <20190530133954.GA2024@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.2 (2017-12-15) X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Michal Hocko , linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org, Catalin Marinas , Will Deacon , linux-mm@kvack.org, Paul Mackerras , sparclinux@vger.kernel.org, linux-s390@vger.kernel.org, Yoshinori Sato , Russell King , Fenghua Yu , Stephen Rothwell , Andrey Konovalov , linux-arm-kernel@lists.infradead.org, Tony Luck , Heiko Carstens , linux-kernel@vger.kernel.org, Martin Schwidefsky , Andrew Morton , linuxppc-dev@lists.ozlabs.org, "David S. Miller" Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Fri, May 31, 2019 at 02:17:43PM +0530, Anshuman Khandual wrote: > On 05/30/2019 07:09 PM, Matthew Wilcox wrote: > > On Thu, May 30, 2019 at 05:31:15PM +0530, Anshuman Khandual wrote: > >> On 05/30/2019 04:36 PM, Matthew Wilcox wrote: > >>> The two handle preemption differently. Why is x86 wrong and this one > >>> correct? > >> > >> Here it expects context to be already non-preemptible where as the proposed > >> generic function makes it non-preemptible with a preempt_[disable|enable]() > >> pair for the required code section, irrespective of it's present state. Is > >> not this better ? > > > > git log -p arch/x86/mm/fault.c > > > > search for 'kprobes'. > > > > tell me what you think. > > Are you referring to these following commits > > a980c0ef9f6d ("x86/kprobes: Refactor kprobes_fault() like kprobe_exceptions_notify()") > b506a9d08bae ("x86: code clarification patch to Kprobes arch code") > > In particular the later one (b506a9d08bae). It explains how the invoking context > in itself should be non-preemptible for the kprobes processing context irrespective > of whether kprobe_running() or perhaps smp_processor_id() is safe or not. Hence it > does not make much sense to continue when original invoking context is preemptible. > Instead just bail out earlier. This seems to be making more sense than preempt > disable-enable pair. If there are no concerns about this change from other platforms, > I will change the preemption behavior in proposed generic function next time around. Exactly. So, any of the arch maintainers know of a reason they behave differently from x86 in this regard? Or can Anshuman use the x86 implementation for all the architectures supporting kprobes?