Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1066725ybt; Fri, 26 Jun 2020 20:02:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzliu1uuln4tMfqD+iidZL01mKAxjCR8NV9kuUccNfRcuxFW4by07nqQGtadSHTuNo3MG2+ X-Received: by 2002:a17:906:8588:: with SMTP id v8mr5359965ejx.211.1593226975538; Fri, 26 Jun 2020 20:02:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593226975; cv=none; d=google.com; s=arc-20160816; b=Yhs73opDh6LACW4k9RFZb7eGctIWyej0rEWbP49oTSvGyGgIgiN7Pa5FGg0fznP9Ux 4GDMrXoSR7s9fbiTxd8sbJPYT7q5nYLjfwJPDUGUdhRAjq82O77zxUSnBZdza5CRBoSi 1hDviYK38xU4zR1FOAd5q6+yzh5wuWcuQB7R1QRLofEfLu8viG7I5WWHXNFhBWmISl01 goninddTcGnPWiLwDJeja5KsjQf23NgK4S6X+nFXVVMFEU6c7M9aW5LMMjiioNLRMYyQ oqXkukTVVcOI8H6oe0mFvqZBBf3LxkXwD2KBjOTAEf5DZMcGeJVbjtpqvjhd1kQTwB0z HKhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=65nkEV4leipLRUprG00qYP0LfKYS+2u1CjazML/VYvs=; b=btNRNcVOtyqf7QdnAhhGRvcB6UvCMxIgD1SCAtIIhzLYBRHYGtOlBxwlczyAvzo+UU NP3QyBhfhb2pJ2YmsyqYEoUwPKgtyX+IkCR1TiHpllZzC7F88SksG9fBBy6vcB9zu07m 2+Zowuhd5X0Zzularpv3SGA2uaq/pbL01KMYDSPxi9VJydE/kRRHLHvECYtthKg78ARA trjHiFcRxhpoahxQnp2pxfhuJQVIFJ2CXdOuNyp70UW6rJ38tA5u3q03Bm6jBwqPC/xK BkQwt8V8QzLk+nw1wULwgrXBcmcHV3e3eMCF929MPotZd7YL3uJ0HaovpxMm+ho7mSbz 1ipA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ufQpLcBL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n15si18365327edt.88.2020.06.26.20.02.32; Fri, 26 Jun 2020 20:02:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ufQpLcBL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725834AbgF0C7o (ORCPT + 99 others); Fri, 26 Jun 2020 22:59:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45998 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725781AbgF0C7n (ORCPT ); Fri, 26 Jun 2020 22:59:43 -0400 Received: from mail-qk1-x744.google.com (mail-qk1-x744.google.com [IPv6:2607:f8b0:4864:20::744]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 90BB5C03E979 for ; Fri, 26 Jun 2020 19:59:43 -0700 (PDT) Received: by mail-qk1-x744.google.com with SMTP id r22so10638878qke.13 for ; Fri, 26 Jun 2020 19:59:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=65nkEV4leipLRUprG00qYP0LfKYS+2u1CjazML/VYvs=; b=ufQpLcBLgFqdO+GimqdCABK9pOWK9i4Ib8qTHV77sfsYlKEJXcSDODaUQAcCDSG7Ta MUqQWVVL3bH0WFi857oMIlxcYVEB8WBhPfk8TyTjEGyTxjb4dqUl+mvy2K+dCSd4Y8iA MtcNkL70P7x8C13GrXPG0heECwv5YgU4iVzhGCoDGhoglraN1CiZzzRh6yZWozOxntOK RH41BM+5WetO+ED72Oev4atcEB0I82fftxewxnNdSPn2BztSErF7K0H8oiwDjlnAvSFp wV09feEvRC6Sd0REIkDP+bp5NPKtCcefYfcyqyiFUIdqiIml+Vhb1R9wBv2Wse5ARPl5 WnYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=65nkEV4leipLRUprG00qYP0LfKYS+2u1CjazML/VYvs=; b=PPk7mHCxBcN9/I6D6TwsgIPjH2POnAsjOLSC+uax8d+VndC814b97xGeLBG4KjkYfP crBqo7Rfh6Kgl8RDnPuTxVP58pKR0+/kON1n4/zl4RKK8WA4HgkLg6VphqwlNi/83pxi ZBUv0cPtUwKnKfq6uZH143MxzAP+x0nTj+D63U1l50s9MsiVFYG6WlnIFFarPObl4I8v aYnjJyFkG4EA9CeZOK6hdYZ7GESRBP8IfDd8IQQ5xJFSyvnuSIw1ebBoZ2HRO8mLn59+ GnF3x6JVhaW51wlkilLMH9FYRnG8yXzQ6E0UCocoCrFPVlkyXhb6JFMKBC+ZmSnktDrt ULXA== X-Gm-Message-State: AOAM532/Fedw+RTnqb1Rs5nsyuxNwZj+vdgVhwqw/IrYpKZGHH5dGCgr uOmEV5KNvOmvd90nA5MKBsl4QFqhaWGyoJTqSkw= X-Received: by 2002:a37:48cc:: with SMTP id v195mr5884992qka.232.1593226782596; Fri, 26 Jun 2020 19:59:42 -0700 (PDT) MIME-Version: 1.0 References: <20200626223130.199227-1-peterx@redhat.com> <20200626223130.199227-13-peterx@redhat.com> In-Reply-To: <20200626223130.199227-13-peterx@redhat.com> From: Greentime Hu Date: Sat, 27 Jun 2020 10:59:03 +0800 Message-ID: Subject: Re: [PATCH 12/26] mm/nds32: Use general page fault accounting To: Peter Xu Cc: Linux Memory Management List , Linux Kernel Mailing List , Andrew Morton , Linus Torvalds , Gerald Schaefer , Andrea Arcangeli , Will Deacon , Michael Ellerman , Nick Hu , Vincent Chen Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Peter Xu =E6=96=BC 2020=E5=B9=B46=E6=9C=8827=E6=97=A5 = =E9=80=B1=E5=85=AD =E4=B8=8A=E5=8D=886:31=E5=AF=AB=E9=81=93=EF=BC=9A > > Use the general page fault accounting by passing regs into handle_mm_faul= t(). > It naturally solve the issue of multiple page fault accounting when page = fault > retry happened. > > Fix PERF_COUNT_SW_PAGE_FAULTS perf event manually for page fault retries,= by > moving it before taking mmap_sem. > > CC: Nick Hu > CC: Greentime Hu > CC: Vincent Chen > Signed-off-by: Peter Xu > --- > arch/nds32/mm/fault.c | 19 +++---------------- > 1 file changed, 3 insertions(+), 16 deletions(-) > > diff --git a/arch/nds32/mm/fault.c b/arch/nds32/mm/fault.c > index 22527129025c..e7344440623c 100644 > --- a/arch/nds32/mm/fault.c > +++ b/arch/nds32/mm/fault.c > @@ -122,6 +122,8 @@ void do_page_fault(unsigned long entry, unsigned long= addr, > if (unlikely(faulthandler_disabled() || !mm)) > goto no_context; > > + perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, addr); > + > /* > * As per x86, we may deadlock here. However, since the kernel on= ly > * validly references user space from well defined areas of the c= ode, > @@ -207,7 +209,7 @@ void do_page_fault(unsigned long entry, unsigned long= addr, > * the fault. > */ > > - fault =3D handle_mm_fault(vma, addr, flags, NULL); > + fault =3D handle_mm_fault(vma, addr, flags, regs); > > /* > * If we need to retry but a fatal signal is pending, handle the > @@ -229,22 +231,7 @@ void do_page_fault(unsigned long entry, unsigned lon= g addr, > goto bad_area; > } > > - /* > - * Major/minor page fault accounting is only done on the initial > - * attempt. If we go through a retry, it is extremely likely that= the > - * page will be found in page cache at that point. > - */ > - perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, addr); > if (flags & FAULT_FLAG_ALLOW_RETRY) { > - if (fault & VM_FAULT_MAJOR) { > - tsk->maj_flt++; > - perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, > - 1, regs, addr); > - } else { > - tsk->min_flt++; > - perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, > - 1, regs, addr); > - } > if (fault & VM_FAULT_RETRY) { > flags |=3D FAULT_FLAG_TRIED; > Hi Peter, Thank you. Acked-by: Greentime Hu