From patchwork Tue Jul 10 17:03:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhang, Yi" X-Patchwork-Id: 10516507 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 85BCA6020F for ; Tue, 10 Jul 2018 08:25:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 75B5328B68 for ; Tue, 10 Jul 2018 08:25:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6A09C28C73; Tue, 10 Jul 2018 08:25:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=2.0 tests=BAYES_00, DATE_IN_FUTURE_06_12, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8003D28B68 for ; Tue, 10 Jul 2018 08:25:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AC1866B026B; Tue, 10 Jul 2018 04:25:37 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id A71806B026C; Tue, 10 Jul 2018 04:25:37 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 93A4F6B026D; Tue, 10 Jul 2018 04:25:37 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pf0-f197.google.com (mail-pf0-f197.google.com [209.85.192.197]) by kanga.kvack.org (Postfix) with ESMTP id 51EAF6B026B for ; Tue, 10 Jul 2018 04:25:37 -0400 (EDT) Received: by mail-pf0-f197.google.com with SMTP id h14-v6so13539179pfi.19 for ; Tue, 10 Jul 2018 01:25:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references; bh=hUwIHjOC7ZpPfV6ARQBnk/3HksN+b1zhTXfZZyVSE70=; b=snyiQV+86weH7gKsXcxQaUOKlz6JzwM70DZ7xeqFa3HzDg4K4/MwHZkq8Ee2BIgP9U CZi+0IirBIKa3mycehO2GLPriEIx56NBj52DDYfwxsimF6e6lFgJjJG9fPgGuNB0THKO 93TFgiA709Ob6qiJJ5/2UjSk6MDB5v36Vv6NI/ryZQqs7QiR0dzOfCVdDJhCZ4o2M3oE QdgoCKQq6fZaqxRMzIYATo6VSCGWGEDottds9yBeSV+AZaTT+qNFoqEzIijunfBQjDNN drVBFpzlTGu79B1QXPZml5W205RE6r56hcblZRshCvqMrqq0BVhGeB7FyUlDS6o96srF Qb1w== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 192.55.52.43 as permitted sender) smtp.mailfrom=yi.z.zhang@linux.intel.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com X-Gm-Message-State: APt69E2sBw4Fhoo9lSzKdRPwhEyfbS8OeKVDZtwybQKOEWsX5ES2rwK6 PzeU3HU4G9TIYPzkN8RAZwkEwCZbgqO9QyRzifaQ2YiuHfLyVuKPFAfo4dFbPGLs0wJr9jmVBoS yO6MJRcM7qgRMhYPjhPHCw2VfM1PFpCY/s/7Y3+AR+JFXaL7OhNw5BWSsm7Z7t7WYGA== X-Received: by 2002:a63:d309:: with SMTP id b9-v6mr8464954pgg.163.1531211137020; Tue, 10 Jul 2018 01:25:37 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdR3Bh+wGRpAgUlBNxwwL2OnzDeS0ZdCXpOjvKhaO7RqcKZXiNc9ms75D6hfSHJXTCv5HcC X-Received: by 2002:a63:d309:: with SMTP id b9-v6mr8464917pgg.163.1531211136380; Tue, 10 Jul 2018 01:25:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531211136; cv=none; d=google.com; s=arc-20160816; b=cKQsXuSgL75umQwAZp5v/SvHMkyLrTQ4PgX2+caDnP3rcLBpkA0Z/YcIx1ZqrGUa3b hsxbXFx+gfR69TJsjP6CuwJ4vS+LbypQgnbLRaKF46PJSfgb36nF7xj8KA5LyWJGkXY8 L2JySlo6SK4yybxVsOyaIbK8VL1Su0dEq+u8vpC1/qcfSxp+6nokjFX//yU3X/Kb/0K1 BLFoywSlzdx2w+vidd+NdgvKLwl0zsDUKVgNZqECYu73DZRxJAXgNVbynM0Fu/KgoAXl Zv/04h3T0GlCCvrx5+rMfUOkW7Klm4jLQGPcneHq0hNMST/dq5/VyaM3n3GqKBymt2dP Pl3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=hUwIHjOC7ZpPfV6ARQBnk/3HksN+b1zhTXfZZyVSE70=; b=wiAHH9SBvHuiXqbVnG02MrfcqoRmmd30Z+75buOpAj1YnbHQwXPjOC1Byo3Abfy0Ok QQJyh6bx73EpIlI6ePmxpCpuDTiopMlaHtdCWCEsYHJaY31u3rtHpJhP+gpZwBa8h8M5 2sDZG8+1dLeuZGOdGOq+msOP5oeWqN1DkurQObqPBkcerGh0Brw/t+oEEVKo9+gvIGWo tNIBl7H1qKlRL/GPhbz/VQwd1tCrvNhLH06JoOjuce17Ywe2bJ9wqFVrCD612/L/Iwj/ +Hb7zhVsL2D3SMOOCj6ioNPb+D+c+4l7TOMJIu1RTsrjfQiCXY76mBz+oX1fYAbeXf/s RuUg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 192.55.52.43 as permitted sender) smtp.mailfrom=yi.z.zhang@linux.intel.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from mga05.intel.com (mga05.intel.com. [192.55.52.43]) by mx.google.com with ESMTPS id t127-v6si16159487pfb.303.2018.07.10.01.25.36 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Jul 2018 01:25:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 192.55.52.43 as permitted sender) client-ip=192.55.52.43; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 192.55.52.43 as permitted sender) smtp.mailfrom=yi.z.zhang@linux.intel.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Jul 2018 01:25:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,333,1526367600"; d="scan'208";a="56467536" Received: from linux.intel.com ([10.54.29.200]) by orsmga006.jf.intel.com with ESMTP; 10 Jul 2018 01:25:31 -0700 Received: from dazhang1-ssd.sh.intel.com (unknown [10.239.48.78]) by linux.intel.com (Postfix) with ESMTP id 4F925580388; Tue, 10 Jul 2018 01:25:28 -0700 (PDT) From: Zhang Yi To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nvdimm@lists.01.org, pbonzini@redhat.com, dan.j.williams@intel.com, jack@suse.cz, hch@lst.de, yu.c.zhang@intel.com Cc: linux-mm@kvack.org, rkrcmar@redhat.com, yi.z.zhang@intel.com, Zhang Yi Subject: [PATCH V2 3/4] mm: add a function to differentiate the pages is from DAX device memory Date: Wed, 11 Jul 2018 01:03:51 +0800 Message-Id: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: 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: X-Virus-Scanned: ClamAV using ClamSMTP DAX driver hotplug the device memory and move it to memory zone, these pages will be marked reserved flag, however, some other kernel componet will misconceive these pages are reserved mmio (ex: we map these dev_dax or fs_dax pages to kvm for DIMM/NVDIMM backend). Together with the type MEMORY_DEVICE_FS_DAX, we can use is_dax_page() to differentiate the pages is DAX device memory or not. Signed-off-by: Zhang Yi Signed-off-by: Zhang Yu Acked-by: Jan Kara --- include/linux/mm.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/linux/mm.h b/include/linux/mm.h index 6e19265..9f0f690 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -856,6 +856,13 @@ static inline bool is_device_public_page(const struct page *page) page->pgmap->type == MEMORY_DEVICE_PUBLIC; } +static inline bool is_dax_page(const struct page *page) +{ + return is_zone_device_page(page) && + (page->pgmap->type == MEMORY_DEVICE_FS_DAX || + page->pgmap->type == MEMORY_DEVICE_DEV_DAX); +} + #else /* CONFIG_DEV_PAGEMAP_OPS */ static inline void dev_pagemap_get_ops(void) { @@ -879,6 +886,11 @@ static inline bool is_device_public_page(const struct page *page) { return false; } + +static inline bool is_dax_page(const struct page *page) +{ + return false; +} #endif /* CONFIG_DEV_PAGEMAP_OPS */ static inline void get_page(struct page *page)