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=-8.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS 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 2E7BAC433ED for ; Wed, 7 Apr 2021 02:48:31 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id AB0F06124C for ; Wed, 7 Apr 2021 02:48:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AB0F06124C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 235886B0073; Tue, 6 Apr 2021 22:48:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1E7076B007D; Tue, 6 Apr 2021 22:48:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 087456B007E; Tue, 6 Apr 2021 22:48:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0100.hostedemail.com [216.40.44.100]) by kanga.kvack.org (Postfix) with ESMTP id E40FE6B0073 for ; Tue, 6 Apr 2021 22:48:29 -0400 (EDT) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id A5B716D99 for ; Wed, 7 Apr 2021 02:48:29 +0000 (UTC) X-FDA: 78004037538.07.347BBF1 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf13.hostedemail.com (Postfix) with ESMTP id 5DEDDE00010B for ; Wed, 7 Apr 2021 02:48:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.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; bh=czw0NKvfj1CYNJsZJ8QXfSvhtH1Tu2flRlleTlgXKQk=; b=sV31xBpM8O1Dln4u5AytLygMsh o0SMLCFEMvHK+KO5oxpty68CF8FPyhOmQ3cAkdvCVQXyIjP3Sxpk0KP3g0oJu8R2oCqQBiDrb3dHm Tc+tT2IDTnp/MpqLbSMXicIGCqea8hT4tbsgPLGTSyQ4/Gg2y72fUQYXpv4397QtPTdhiTewK9mZT gqbFTsEkSEkctS7yBu81ev71NFJ9SN2Mp0MKi66/8am1DbgomhMdQCY+qbVocx3Wit4J9fq2XzfRW IHXT6AKsr3ZfJymj48W0Zz7GOJ+FpmVRz6Z+kwbg0mBkd8Joy3dNppapODcNvB/xibFJK7wKyQkjQ N/IosjQg==; Received: from willy by casper.infradead.org with local (Exim 4.94 #2 (Red Hat Linux)) id 1lTyEl-00DmjV-Dw; Wed, 07 Apr 2021 02:48:15 +0000 Date: Wed, 7 Apr 2021 03:48:11 +0100 From: Matthew Wilcox To: Michel Lespinasse Cc: Linux-MM , Laurent Dufour , Peter Zijlstra , Michal Hocko , Rik van Riel , Paul McKenney , Andrew Morton , Suren Baghdasaryan , Joel Fernandes , Rom Lemarchand , Linux-Kernel Subject: Re: [RFC PATCH 33/37] mm: enable speculative fault handling only for multithreaded user space Message-ID: <20210407024811.GA2531743@casper.infradead.org> References: <20210407014502.24091-1-michel@lespinasse.org> <20210407014502.24091-34-michel@lespinasse.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210407014502.24091-34-michel@lespinasse.org> X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 5DEDDE00010B X-Stat-Signature: c99pchc5mcboeqfxrn4kez3pgek5jm6k Received-SPF: none (infradead.org>: No applicable sender policy available) receiver=imf13; identity=mailfrom; envelope-from=""; helo=casper.infradead.org; client-ip=90.155.50.34 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1617763707-612995 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Apr 06, 2021 at 06:44:58PM -0700, Michel Lespinasse wrote: > + /* Only try spf for multithreaded user space faults. */ This comment is misleading ... mm_users will also be incremented for ptraced programs as well as programs that are having their /proc/$pid/maps examined, etc. Maybe: /* No need to try spf for single-threaded programs */ Also, please, can we not use an acronym for this feature? It's not a speculative page fault. The page fault is really happening. We're trying to handle it under RCU protection (if anything the faultaround code is the speculative page fault code ...) This is unlocked page fault handling, perhaps? > + if (!(flags & FAULT_FLAG_USER) || atomic_read(&mm->mm_users) == 1) > + goto no_spf; > + > count_vm_event(SPF_ATTEMPT); > seq = mmap_seq_read_start(mm); > if (seq & 1) > @@ -1351,6 +1355,7 @@ void do_user_addr_fault(struct pt_regs *regs, > > spf_abort: > count_vm_event(SPF_ABORT); > +no_spf: > > /* > * Kernel-mode access to the user address space should only occur > -- > 2.20.1 > >