Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1504609imm; Wed, 8 Aug 2018 19:16:04 -0700 (PDT) X-Google-Smtp-Source: AA+uWPw+wV4rocSDZhtoFLz3yh8PsJTi+QbtdUb13n0sptBlRPotfaj18b5p0/krMgk750xQbhLx X-Received: by 2002:a63:3c4a:: with SMTP id i10-v6mr187605pgn.415.1533780964711; Wed, 08 Aug 2018 19:16:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533780964; cv=none; d=google.com; s=arc-20160816; b=guE75FFF5iNeWiR+ACgAmLzDgHWzfbilX67gUmrdsx2CvnVDKFgSQy7zY+hnCMEqlZ +0g98QVLweU9/VzvKudgkPG8Ye4S15gIG+5yrivcybpkocgE5HG9Mr3qzZx9jh7H3On5 p3fEp7A+yMAZqczYuOx0fl6Q66FUMLrJmrpaPxegeGnh4CmpCobQHhDQzUHblkARBVdS PUVcUfFvUnU7I5UYF5GSvnohCVIjFMiycDphJKztTRFXRzv8vviMJ5F1H6eXfAoURJUU j0h6Tdq1xfL/cyr76zby63d/1qd6CzOArKIS/XOwYfwKdBQp+BEHf0BRUsQ63UNWtUOh ZipQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=zieWptaV9vB5PqQkkJ6YZzjdQJZ+OJerLc2Ac8SiI5o=; b=sfxAkh1q9NIViizNI6X0qBgw43UBC3DlR+KmkSZ++9PmYkIr6iSbKJK1OHPnBXcAcU J8rBVk7/Lk76Ea4DEE22ZXvzzmufsJMmZImCKoDSPfP6oVtOsyHxVI0zQ/A+7hLr3Xax 43pqYhtKzg7EuLHdVHmsoC3Auyeg/fLE4OW7J8fFUZy4V1Q6wwjrRbgq/Ar/YKYM9Amn U+NmxlzetjAgmLrW6UGllGuTj6bN9/vAMLvT6XssLlThEVueZ5beoVt6nf80oZNrv7bu D14YpkoJ4Mh5Kv8qiggG0PnDhYycrda/1JakhbTsz2mfoixDHge9/6E8kiRbWe1O0inI u3wg== 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 i2-v6si4574545pgs.432.2018.08.08.19.15.50; Wed, 08 Aug 2018 19:16:04 -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 S1727716AbeHIEhD (ORCPT + 99 others); Thu, 9 Aug 2018 00:37:03 -0400 Received: from mga09.intel.com ([134.134.136.24]:59918 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725757AbeHIEhC (ORCPT ); Thu, 9 Aug 2018 00:37:02 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Aug 2018 19:14:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,213,1531810800"; d="scan'208";a="74999559" Received: from linux.intel.com ([10.54.29.200]) by fmsmga002.fm.intel.com with ESMTP; 08 Aug 2018 19:14:38 -0700 Received: from dazhang1-ssd.sh.intel.com (unknown [10.239.48.78]) by linux.intel.com (Postfix) with ESMTP id E129B5801BD; Wed, 8 Aug 2018 19:14:35 -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 V3 3/4] mm: add a function to differentiate the pages is from DAX device memory Date: Thu, 9 Aug 2018 18:53:21 +0800 Message-Id: <2b7856596e519130946c834d5d61b00b7f592770.1533811181.git.yi.z.zhang@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- include/linux/mm.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/linux/mm.h b/include/linux/mm.h index 68a5121..de5cbc3 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -889,6 +889,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) { @@ -912,6 +919,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) -- 2.7.4