Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp224249ybi; Thu, 13 Jun 2019 14:48:48 -0700 (PDT) X-Google-Smtp-Source: APXvYqz40i1gmdxersu/WyKsV5KkbQdiJ/H7+c+CvgOlrR7frvAiqW/WtIsAhj0082RstxRcx3UP X-Received: by 2002:a17:902:8bc3:: with SMTP id r3mr4404910plo.161.1560462528503; Thu, 13 Jun 2019 14:48:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560462528; cv=none; d=google.com; s=arc-20160816; b=aJilp0WMVSrxQ/p3YtnlqvVjMlTzk455E4lM13OHShm3bWJbSOdf4XNab7+5Fm/FgP zYK14GOtAyZzwdmxLRoJsrJw7gX4GtO7YdiP/1vAfs8Evyml0K2DvVidx6d2148fA8Rz sSbB94R4rptpd5yCFN3LPPvPeB7trB+cmIcEyirptsbGQ2eD++nrvE/DnUMDOrrkSagp EvY2dM4gNxo0eI90NmKhT0meKEFy7hPbO43StnFq+4aV6AhK0ikgLMh72B8+lgqpsqEt of+pZI0UR2F0TzTYDaXqvk2lZ2JHTZq941IrzH/csxzCDFKej3VOGnYO15nHxanTqxH/ WFyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=QU3QbMKFn9UlxsDbT2cszrYfUFCkaD3v90aNFW8PRog=; b=za07qtwSOYdmiTjv6AdEEihljaIZtaisb2DYQDZXyV6bjtfUZlyMxLkfaTpE1xSNnp HeijuwohIp+ssH+cOhOzeW81tnrFp3GWKcMWoARjjA1y97Rr/A82Fi8BFMrAtjRXNjFF ztFOi0UW9QLcik2YQ/AxRPUblY62LgiTxUAkImqGH0B1QJ5/5wNga/QUgJF6dGCV5OhF hOUcVPwYbQc85RrB2mvXXdjCpsSCkq0k960XKNHMaC8H2Wx8VbqPcuIkhp8FVYvkDFp0 quFscTUeAaeuzQC9q0n4liiG8IOOncrmCHfIT+eHGtlARc4tdlABL086+ODC4/mX3BGN HNgQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d37si513115plb.351.2019.06.13.14.48.33; Thu, 13 Jun 2019 14:48:48 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727246AbfFMVsS (ORCPT + 99 others); Thu, 13 Jun 2019 17:48:18 -0400 Received: from mga14.intel.com ([192.55.52.115]:18119 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725843AbfFMVsS (ORCPT ); Thu, 13 Jun 2019 17:48:18 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Jun 2019 14:48:17 -0700 X-ExtLoop1: 1 Received: from iweiny-desk2.sc.intel.com ([10.3.52.157]) by orsmga002.jf.intel.com with ESMTP; 13 Jun 2019 14:48:16 -0700 Date: Thu, 13 Jun 2019 14:49:38 -0700 From: Ira Weiny To: Pingfan Liu Cc: linux-mm@kvack.org, Andrew Morton , Mike Rapoport , Dan Williams , Matthew Wilcox , John Hubbard , "Aneesh Kumar K.V" , Keith Busch , Christoph Hellwig , Shuah Khan , linux-kernel@vger.kernel.org Subject: Re: [PATCHv4 3/3] mm/gup_benchemark: add LONGTERM_BENCHMARK test in gup fast path Message-ID: <20190613214938.GG32404@iweiny-DESK2.sc.intel.com> References: <1560422702-11403-1-git-send-email-kernelfans@gmail.com> <1560422702-11403-4-git-send-email-kernelfans@gmail.com> <20190613214247.GF32404@iweiny-DESK2.sc.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190613214247.GF32404@iweiny-DESK2.sc.intel.com> User-Agent: Mutt/1.11.1 (2018-12-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jun 13, 2019 at 02:42:47PM -0700, 'Ira Weiny' wrote: > On Thu, Jun 13, 2019 at 06:45:02PM +0800, Pingfan Liu wrote: > > Introduce a GUP_LONGTERM_BENCHMARK ioctl to test longterm pin in gup fast > > path. > > > > Signed-off-by: Pingfan Liu > > Cc: Ira Weiny > > Cc: Andrew Morton > > Cc: Mike Rapoport > > Cc: Dan Williams > > Cc: Matthew Wilcox > > Cc: John Hubbard > > Cc: "Aneesh Kumar K.V" > > Cc: Keith Busch > > Cc: Christoph Hellwig > > Cc: Shuah Khan > > Cc: linux-kernel@vger.kernel.org > > --- > > mm/gup_benchmark.c | 11 +++++++++-- > > tools/testing/selftests/vm/gup_benchmark.c | 10 +++++++--- > > 2 files changed, 16 insertions(+), 5 deletions(-) > > > > diff --git a/mm/gup_benchmark.c b/mm/gup_benchmark.c > > index 7dd602d..83f3378 100644 > > --- a/mm/gup_benchmark.c > > +++ b/mm/gup_benchmark.c > > @@ -6,8 +6,9 @@ > > #include > > > > #define GUP_FAST_BENCHMARK _IOWR('g', 1, struct gup_benchmark) > > -#define GUP_LONGTERM_BENCHMARK _IOWR('g', 2, struct gup_benchmark) > > -#define GUP_BENCHMARK _IOWR('g', 3, struct gup_benchmark) > > +#define GUP_FAST_LONGTERM_BENCHMARK _IOWR('g', 2, struct gup_benchmark) > > +#define GUP_LONGTERM_BENCHMARK _IOWR('g', 3, struct gup_benchmark) > > +#define GUP_BENCHMARK _IOWR('g', 4, struct gup_benchmark) > > But I really like this addition! Thanks! > > But why not just add GUP_FAST_LONGTERM_BENCHMARK to the end of this list (value > 4)? I know the user space test program is probably expected to be lock step > with this code but it seems odd to redefine GUP_LONGTERM_BENCHMARK and > GUP_BENCHMARK with this change. I see that Andrew pull this change. So if others don't think this renumbering is an issue feel free to add my: Reviewed-by: Ira Weiny > > Ira > > > > > struct gup_benchmark { > > __u64 get_delta_usec; > > @@ -53,6 +54,11 @@ static int __gup_benchmark_ioctl(unsigned int cmd, > > nr = get_user_pages_fast(addr, nr, gup->flags & 1, > > pages + i); > > break; > > + case GUP_FAST_LONGTERM_BENCHMARK: > > + nr = get_user_pages_fast(addr, nr, > > + (gup->flags & 1) | FOLL_LONGTERM, > > + pages + i); > > + break; > > case GUP_LONGTERM_BENCHMARK: > > nr = get_user_pages(addr, nr, > > (gup->flags & 1) | FOLL_LONGTERM, > > @@ -96,6 +102,7 @@ static long gup_benchmark_ioctl(struct file *filep, unsigned int cmd, > > > > switch (cmd) { > > case GUP_FAST_BENCHMARK: > > + case GUP_FAST_LONGTERM_BENCHMARK: > > case GUP_LONGTERM_BENCHMARK: > > case GUP_BENCHMARK: > > break; > > diff --git a/tools/testing/selftests/vm/gup_benchmark.c b/tools/testing/selftests/vm/gup_benchmark.c > > index c0534e2..ade8acb 100644 > > --- a/tools/testing/selftests/vm/gup_benchmark.c > > +++ b/tools/testing/selftests/vm/gup_benchmark.c > > @@ -15,8 +15,9 @@ > > #define PAGE_SIZE sysconf(_SC_PAGESIZE) > > > > #define GUP_FAST_BENCHMARK _IOWR('g', 1, struct gup_benchmark) > > -#define GUP_LONGTERM_BENCHMARK _IOWR('g', 2, struct gup_benchmark) > > -#define GUP_BENCHMARK _IOWR('g', 3, struct gup_benchmark) > > +#define GUP_FAST_LONGTERM_BENCHMARK _IOWR('g', 2, struct gup_benchmark) > > +#define GUP_LONGTERM_BENCHMARK _IOWR('g', 3, struct gup_benchmark) > > +#define GUP_BENCHMARK _IOWR('g', 4, struct gup_benchmark) > > > > struct gup_benchmark { > > __u64 get_delta_usec; > > @@ -37,7 +38,7 @@ int main(int argc, char **argv) > > char *file = "/dev/zero"; > > char *p; > > > > - while ((opt = getopt(argc, argv, "m:r:n:f:tTLUSH")) != -1) { > > + while ((opt = getopt(argc, argv, "m:r:n:f:tTlLUSH")) != -1) { > > switch (opt) { > > case 'm': > > size = atoi(optarg) * MB; > > @@ -54,6 +55,9 @@ int main(int argc, char **argv) > > case 'T': > > thp = 0; > > break; > > + case 'l': > > + cmd = GUP_FAST_LONGTERM_BENCHMARK; > > + break; > > case 'L': > > cmd = GUP_LONGTERM_BENCHMARK; > > break; > > -- > > 2.7.5 > > >