Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp201296imm; Fri, 21 Sep 2018 12:47:24 -0700 (PDT) X-Google-Smtp-Source: ANB0VdY7nzi2YVYoPiqj7Jd9WB6J7Px67+etuDKWgMUS/GU3d0eJKrE/aLen9aBVRqfsntNKmMYT X-Received: by 2002:a62:8704:: with SMTP id i4-v6mr47589772pfe.62.1537559244038; Fri, 21 Sep 2018 12:47:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537559244; cv=none; d=google.com; s=arc-20160816; b=wkVurM1u1SyXUD5cGJ/JERaubJXhvZlOPdGF6NMggMjSd7uCz+CqWe+jQbN8q3HAsA tfO/LqX8xIGbGJTOpa/OUV50D9QAQuookHoHEa7A2AAL5snT62s+2ectE4wWmW9lr2/p 5D5jbJL2ChywAgQGTMGFPkuPYnJsieXgd3V5E2KJKNqUV7fBVZm3ZGKmnCLe8/Pxxe5N nMvzBWC0GLeTBBt/XPgNz1bEewVwASgnC6vRHSafAE+EiL7JR8ngFykNI5Kx2y7Rgf1f dtk96OpOlEyFLqOJnek4L6cZPRZs0An8oEOTjabBVvvVRDC74GiPQW6MH/ZetFH9Vm1e lpag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=81aUO94kBFH0F5nOFClBLzweldrs8pPhe8kUFURAxgo=; b=oQAoqOSv94qgwqB4tZn1YcxqUege6UwnrSd9hyajelROEs4fgMzuGPM2+1Sfe6gTqU kLZlglqjVMYiqIaWemcYSYaxOSvjm5ODWp+/1zHMSIk/Gmc6gVQQycQFiHYOSYibU8Wq RDbO1gZUN4pRfOGLRiJ1EVOAV7Zg3TlpMZScqp2DvC+yhVWzgE90jiu1ZoHYTeTNWwpU B+slO8aZ1LxZB5ZXUA3IrfXC9g2C5i33DlcNKwfTtYv28p3Ij294ZknOpo1bVI0xhJTL uOpiq4OfESVxbz1lbYmCyWChC9gOGDxTRjycTrx6bYcccrUWB3M/Hpy3yzG9YPzZBf/z 9e0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=Kqpx3nqp; 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 c5-v6si27387984pgi.211.2018.09.21.12.47.08; Fri, 21 Sep 2018 12:47:24 -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; dkim=pass header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=Kqpx3nqp; 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 S2391343AbeIVBhI (ORCPT + 99 others); Fri, 21 Sep 2018 21:37:08 -0400 Received: from mail-ot1-f67.google.com ([209.85.210.67]:40805 "EHLO mail-ot1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391160AbeIVBhI (ORCPT ); Fri, 21 Sep 2018 21:37:08 -0400 Received: by mail-ot1-f67.google.com with SMTP id g14-v6so500576otj.7 for ; Fri, 21 Sep 2018 12:46:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=81aUO94kBFH0F5nOFClBLzweldrs8pPhe8kUFURAxgo=; b=Kqpx3nqpaWsOZL96D5vQPcovFJBc1GetsccwQzEfuf3aAOTyKq/F9QRKqMVViJ+oYt w5GgMBocTeEJMCeTnBpMdXUGsT5Ud9PHFYZVfxBvB5u1HHzRmadVblG0O9MWpeLgBk/1 vqzLEVU6V+CkNQTjKP6WKnCfaL+moRLpYXptG9+wHhdGxn3TRDyJs8SVBRgjSUYoHYH2 sm9Rntc2fT7o4gTPF0ddqKDrpXVC83a+LL2HiYgGNEulv+kPBiyXJtNaNhZ0SQm2rKSp zwj7E15jU4u5BTS/QTWnsi84Gae1j7e3QXzn/HN0UqunrjwMexjvBP1G5a5uqyvR2guk XNoQ== 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; bh=81aUO94kBFH0F5nOFClBLzweldrs8pPhe8kUFURAxgo=; b=RE4g4qDBk8RR9uBm+FJZu9ALPbGPpXXMB2djvWlepMviU56Xx3zWHL2mg0fqozUEfF 3YS1ZCflzbxBjewkey4DqYy25CgRNw8je1+Ba7Kg0pv3UqlqTZWR8EAGbYJb9tzgo9IH JOP0XT/rEjCJWNpdnm6UOfio8etXidBAkN1iX1xXAlLxTnkv9Y7HFQELlaH1b4iLeZGH Fj8ITRfDibqDfkZIHP32zXAWjrDX110iyTKfC/Fb2UXjaiCv8u5Doz4YaLFjAU17vzib SGbUvS987PeAFRNEIDiyBwv5eFmA5oLt9VKBy1m2y5ZBddZZYVYNDhAS/QvFsHkrHiJ+ /OPg== X-Gm-Message-State: APzg51CzdBmCJ94kbzEkOGc+lpCKMM2mXWOn/DkaNGZMgwDpAHzl0XQE CcKiIPN3v/Yiu4pZYOyU/tV98aK+ePz6rSHH9qYyDA== X-Received: by 2002:a9d:128a:: with SMTP id g10-v6mr25170762otg.119.1537559206238; Fri, 21 Sep 2018 12:46:46 -0700 (PDT) MIME-Version: 1.0 References: <20180920200358.31680-1-keith.busch@intel.com> <20180920200358.31680-7-keith.busch@intel.com> In-Reply-To: From: Dan Williams Date: Fri, 21 Sep 2018 12:46:30 -0700 Message-ID: Subject: Re: [PATCHv2 6/7] mm/gup: Combine parameters into struct To: Keith Busch Cc: Linux Kernel Mailing List , "Kirill A. Shutemov" , Dave Hansen Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 21, 2018 at 12:45 PM Dan Williams wrote: > > On Thu, Sep 20, 2018 at 1:03 PM Keith Busch wrote: > > > > This will make it easier to add new parameters that we may wish to > > thread through these function calls. > > > > Cc: Kirill Shutemov > > Cc: Dave Hansen > > Cc: Dan Williams > > Signed-off-by: Keith Busch > > --- > > include/linux/huge_mm.h | 12 +-- > > include/linux/hugetlb.h | 2 +- > > include/linux/mm.h | 21 ++++- > > mm/gup.c | 238 +++++++++++++++++++++++------------------------- > > mm/huge_memory.c | 32 +++---- > > mm/nommu.c | 6 +- > > 6 files changed, 151 insertions(+), 160 deletions(-) > > > > diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h > > index 99c19b06d9a4..7d22e2c7f154 100644 > > --- a/include/linux/huge_mm.h > > +++ b/include/linux/huge_mm.h > > @@ -212,10 +212,8 @@ static inline int hpage_nr_pages(struct page *page) > > return 1; > > } > > > > -struct page *follow_devmap_pmd(struct vm_area_struct *vma, unsigned long addr, > > - pmd_t *pmd, int flags); > > -struct page *follow_devmap_pud(struct vm_area_struct *vma, unsigned long addr, > > - pud_t *pud, int flags); > > +struct page *follow_devmap_pmd(struct follow_page_context *ctx, pmd_t *pmd); > > +struct page *follow_devmap_pud(struct follow_page_context *ctx, pud_t *pud); > > > > extern vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t orig_pmd); > > > > @@ -343,14 +341,12 @@ static inline void mm_put_huge_zero_page(struct mm_struct *mm) > > return; > > } > > > > -static inline struct page *follow_devmap_pmd(struct vm_area_struct *vma, > > - unsigned long addr, pmd_t *pmd, int flags) > > +static inline struct page *follow_devmap_pmd(struct gup_context *ctx, pmd_t *pmd) > > { > > return NULL; > > } > > > > -static inline struct page *follow_devmap_pud(struct vm_area_struct *vma, > > - unsigned long addr, pud_t *pud, int flags) > > +static inline struct page *follow_devmap_pud(struct gup_context *ctx, pud_t *pud) > > { > > return NULL; > > } > > diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h > > index 6b68e345f0ca..64b675863793 100644 > > --- a/include/linux/hugetlb.h > > +++ b/include/linux/hugetlb.h > > @@ -180,7 +180,7 @@ static inline void hugetlb_report_meminfo(struct seq_file *m) > > static inline void hugetlb_show_meminfo(void) > > { > > } > > -#define follow_huge_pd(vma, addr, hpd, flags, pdshift) NULL > > +#define follow_huge_pd(ctx, hpd, pdshift) NULL > > #define follow_huge_pmd(mm, addr, pmd, flags) NULL > > #define follow_huge_pud(mm, addr, pud, flags) NULL > > #define follow_huge_pgd(mm, addr, pgd, flags) NULL > > diff --git a/include/linux/mm.h b/include/linux/mm.h > > index a61ebe8ad4ca..f1fd241c9071 100644 > > --- a/include/linux/mm.h > > +++ b/include/linux/mm.h > > @@ -378,6 +378,13 @@ struct vm_fault { > > */ > > }; > > > > +struct follow_page_context { > > + struct vm_area_struct *vma; > > + unsigned long address; > > + unsigned int page_mask; > > + unsigned int flags; > > +}; > > I was thinking that the context would only contain the in/out > parameters of page_mask and pgmap. I don't think we plan to have more > parameters beyond this one addition and from a code readability > standpoint the less "ctx->" the better. Also, the next version of this series should be copied to linux-mm.