Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1429264imm; Tue, 10 Jul 2018 01:26:15 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfp9TriZ5bbs0ovCJELbKdQK5OYgnG6Li17n5UcWd9Cf6DK1KBcv0X9uI8qQPwX7esDH/7p X-Received: by 2002:a17:902:aa48:: with SMTP id c8-v6mr23761349plr.132.1531211174940; Tue, 10 Jul 2018 01:26:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531211174; cv=none; d=google.com; s=arc-20160816; b=Yl3WW0l/qwtmT25WLFiikzOF3n10wcPiDNKojYr+JrJEvRHtlvppAjeo+rByiFmXwu qqEK9KR2+0S6Dbzy0VraV66CAyjlNJyP+pGg3gG0kMjjVM7vAor79/JeC/jNQ4XfMJ19 u1S4jC2S4crTeQ0pZQxL+FsYXpMpUinVOD7GBASluHR3KpCzknnmc2/4XBNG0tXjLJUX wtbdu8e5nIHqc0zzDZXk7xfXL+EeBa9BgxhmCGty+bKclcTo44aAUiubDjJ8knJr7RfY RpA5TQzkgkuoVZD5lS426o+zCbr61pAWn2hPUWW4CplF/ByXoDzGi7n82oN+bv3CXj46 GD7w== 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=hUwIHjOC7ZpPfV6ARQBnk/3HksN+b1zhTXfZZyVSE70=; b=DIrb93nbE1Oj9I7uNGRgCYWNFYWjnOswsA2YwN7gUH2IkIC4UPfE+kXTQUJZI6XJP3 c3czAUyL7jj4saAtz/KqFakT3Q5V67zWCTiUeKmcbVlPA59foW1p+GvsLTBA1HcI4MBq 5QKPM9jNwsY447fqwaVoBKtutjf0bu1NvXkPHTmW0tUKyBLlloQevqWOZdA48uLkTsH6 JwI1aA0qFfuXd3inY6JyVC1RjcBsXPbefkdvFb4mqfzqS9wv5/qgQCmXJ/iSneoseOfx INoHNJHgYRtQC3jbhfVrY8QG9TB7BUEtxjR9yhRQvYfO5X02NuogMgDQ5TvCG1WK9G3v 3AJQ== 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 b12-v6si3455604pgh.264.2018.07.10.01.26.00; Tue, 10 Jul 2018 01:26:14 -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 S933326AbeGJIYJ (ORCPT + 99 others); Tue, 10 Jul 2018 04:24:09 -0400 Received: from mga06.intel.com ([134.134.136.31]:56568 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751210AbeGJIYI (ORCPT ); Tue, 10 Jul 2018 04:24:08 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Jul 2018 01:24:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,333,1526367600"; d="scan'208";a="73579946" Received: from linux.intel.com ([10.54.29.200]) by orsmga002.jf.intel.com with ESMTP; 10 Jul 2018 01:24:06 -0700 Received: from dazhang1-ssd.sh.intel.com (unknown [10.239.48.78]) by linux.intel.com (Postfix) with ESMTP id DA51D5803A0; Tue, 10 Jul 2018 01:24:06 -0700 (PDT) From: Zhang Yi To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: pbonzini@redhat.com, rkrcmar@redhat.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:02:30 +0800 Message-Id: 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 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) -- 2.7.4