From patchwork Tue Jan 5 18:30:06 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wilcox, Matthew R" X-Patchwork-Id: 7957831 Return-Path: X-Original-To: patchwork-linux-nvdimm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 1D1C9BEEED for ; Tue, 5 Jan 2016 18:30:39 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 9DEDB2028D for ; Tue, 5 Jan 2016 18:30:37 +0000 (UTC) Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 700D320272 for ; Tue, 5 Jan 2016 18:30:36 +0000 (UTC) Received: from ml01.vlan14.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 656521A2063; Tue, 5 Jan 2016 10:30:36 -0800 (PST) X-Original-To: linux-nvdimm@lists.01.org Delivered-To: linux-nvdimm@lists.01.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by ml01.01.org (Postfix) with ESMTP id E1C341A2063 for ; Tue, 5 Jan 2016 10:30:34 -0800 (PST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP; 05 Jan 2016 10:30:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,525,1444719600"; d="scan'208";a="875118643" Received: from unknown (HELO thog.int.wil.cx) ([10.254.85.103]) by fmsmga001.fm.intel.com with SMTP; 05 Jan 2016 10:30:12 -0800 Received: by thog.int.wil.cx (Postfix, from userid 1000) id 67E945F846; Tue, 5 Jan 2016 13:30:12 -0500 (EST) From: Matthew Wilcox To: Subject: [PATCH v2 4/8] mincore: Add support for PUDs Date: Tue, 5 Jan 2016 13:30:06 -0500 Message-Id: <1452018610-26090-5-git-send-email-matthew.r.wilcox@intel.com> X-Mailer: git-send-email 2.6.4 In-Reply-To: <1452018610-26090-1-git-send-email-matthew.r.wilcox@intel.com> References: <1452018610-26090-1-git-send-email-matthew.r.wilcox@intel.com> Cc: linux-nvdimm@lists.01.org, x86@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org X-BeenThere: linux-nvdimm@lists.01.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Linux-nvdimm developer list." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Matthew Wilcox We don't actually care about the contents of the PUD, as long as it's present (which is checked by the pagewalk code), so just set the bits to indicate presence and return. Signed-off-by: Matthew Wilcox --- mm/mincore.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mm/mincore.c b/mm/mincore.c index 2a565ed..8e6ce12 100644 --- a/mm/mincore.c +++ b/mm/mincore.c @@ -108,6 +108,18 @@ static int mincore_unmapped_range(unsigned long addr, unsigned long end, return 0; } +static int mincore_pud_range(pud_t *pud, unsigned long addr, unsigned long end, + struct mm_walk *walk) +{ + unsigned char *vec = walk->private; + int nr = (end - addr) >> PAGE_SHIFT; + + memset(vec, 1, nr); + walk->private += nr; + + return 0; +} + static int mincore_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, struct mm_walk *walk) { @@ -176,6 +188,7 @@ static long do_mincore(unsigned long addr, unsigned long pages, unsigned char *v unsigned long end; int err; struct mm_walk mincore_walk = { + .pud_entry = mincore_pud_range, .pmd_entry = mincore_pte_range, .pte_hole = mincore_unmapped_range, .hugetlb_entry = mincore_hugetlb,