Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp269093imm; Tue, 21 Aug 2018 19:19:20 -0700 (PDT) X-Google-Smtp-Source: AA+uWPwS2hvsA8v8qeznX3sEoQZSldbWJw0fM9LuKmQ8r1TD7hOMQe9YSOC+mp3hv8ViCTo6eECN X-Received: by 2002:a63:6e88:: with SMTP id j130-v6mr7817080pgc.3.1534904360117; Tue, 21 Aug 2018 19:19:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534904360; cv=none; d=google.com; s=arc-20160816; b=mvi7Caz1lsmEoCOObyAtAOzkYzZ8ZyazIiiSdpCFapUtOZ5x3mZkt/xDE0pbG3aKeo dzSgbU2cZxq6bdCCNtXWfzd6van/V7XX59r146g0yJ2zXdTuB1tcKzDAD0fvNP0J83jI d9TANsfbPrakaf+pOTsy806jLrThX8Xtw1RK00m9ga4nYqWqKpsenXEjz2OjSzCsZ8K2 zgHTsjaRazB2sVEE83FeWJ1Y5cJN7ZM2xlyBwW5inCwMRH2Dpp2fFAu/+XiZpl51R/Vy tvWriPfmHUdBt+lzuSzyiLzdPkytvuxyUk3scNQ5ygoYScqaLQFXf2wb2n/5XDg7EuNv eqyQ== 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=OA1rmIU3VRvLZ2ODVWo5LwDjZtSFf2ZqZzweBonlHn8=; b=X4cMAi7uponTlDSMKZ+AIUJA7+04boL+MugGuDgxImqnPmwKWp7tb3mDOA//ZoMzS+ hSVi6+2VlkFozS/8ZCjTnyhqhOuntapVVutLmGNIfVVfWCgxDRF6IJTQiyFRx5mTPCsx pZI7gu06R6/w6NShcMhXuHKVM+9dc8TgSJox0hwBiIjTWAhaX+MEaOJZAE/ubbDm+woO NkGuwIVuqLZLpVAvjc+td6mHk4cX5eSp8j+m7LY/iCFw7eLc0QuIoYAt6W6YmC2ojLNr nKA/RD0wt69obaxE4zNRqIopc8VhpQ9q2jSThv0/8UkqpcOKyY4BZbwlXolBrWRgoMTx rFZQ== 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 y9-v6si487798pgl.236.2018.08.21.19.19.05; Tue, 21 Aug 2018 19:19:20 -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 S1727841AbeHVFkk (ORCPT + 99 others); Wed, 22 Aug 2018 01:40:40 -0400 Received: from mga09.intel.com ([134.134.136.24]:42432 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726357AbeHVFkk (ORCPT ); Wed, 22 Aug 2018 01:40:40 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Aug 2018 19:17:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,272,1531810800"; d="scan'208";a="256952771" Received: from linux.intel.com ([10.54.29.200]) by fmsmga006.fm.intel.com with ESMTP; 21 Aug 2018 19:17:55 -0700 Received: from dazhang1-ssd.sh.intel.com (unknown [10.239.48.163]) by linux.intel.com (Postfix) with ESMTP id F052F5802C8; Tue, 21 Aug 2018 19:17:53 -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, dave.jiang@intel.com, yu.c.zhang@intel.com, pagupta@redhat.com, david@redhat.com, jack@suse.cz, hch@lst.de Cc: linux-mm@kvack.org, rkrcmar@redhat.com, jglisse@redhat.com, yi.z.zhang@intel.com, Zhang Yi Subject: [PATCH V4 3/4] mm: add a function to differentiate the pages is from DAX device memory Date: Wed, 22 Aug 2018 18:56:48 +0800 Message-Id: <044309496afbb4121447dff6a453bd6b96d6068d.1534934405.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 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 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