Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1565248imm; Fri, 7 Sep 2018 02:26:25 -0700 (PDT) X-Google-Smtp-Source: ANB0Vdb7CM05Pji0VZUVODbK0xCYlA4hNQJWBONaIUu5mU+6gSlB2RsKg7BGW+fA5trlBGwTmxf8 X-Received: by 2002:a17:902:6907:: with SMTP id j7-v6mr6968755plk.323.1536312385489; Fri, 07 Sep 2018 02:26:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536312385; cv=none; d=google.com; s=arc-20160816; b=FISs0cZ6KYVVSRWpJnP+OIaTzQyKEVauPnKfO5iFTbyQlr048RaMKWD8MUZrkoAh+y 1/S6Ov+V0O89NKBkcK4NLJ2/VwDeNY034bhm08GByUkL1pr2S2qL8Cgb9S0DF0DRwVYS qAeFmI1+cHGUg3oUTfIs9vqv6V/dM12UJXdfOv5kxvGlwglBgzRYyW+YWvtkyU2fUOF6 KZkHm4pBX5PZDzoC2/b7jIw+jPKgFcCHWrDF3JK8X4ryMqdB+Js1rUPJLgQ8aeOJJ8L8 mwPfKNIXcLq8w8gIx75DimxTri41rMbblPKZ6epFzSZ3vTUVR1O4R9N2YtsYIbt4D56w uvZg== 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; bh=OA1rmIU3VRvLZ2ODVWo5LwDjZtSFf2ZqZzweBonlHn8=; b=OcXcdTZt+EYlUEdX13FWEbgMLaVRLP3W03O2IoTW0VKOVBRCIUUkL0Me29YYMr8khk hpS4RNhm6Wuq3BKhlPrkeZb+h9zhSNr0k6k5i1z2JqUcHUsFPxXF7bWKg6zGEtMolmbr kLsMDNlPlSvAE4bhUPKHbBMrJ2s2Ve576eOM5MlxBIlAIOz9rfNbakQDV39ytKo0gDtO TEmhoOl8rP/Z8hz7uldPn5vFl3cfmd1e589eJbtNFTSihR13o9dpaRiKcgDI8xdRH34i +jCt3gKkFAJ2rRq2Nm5WwXqxaC/rs0ijfPlZuF7WfFVeAlH3HjASpI10xwXhNxp8aU1h xZlg== 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 x7-v6si7856054pgh.595.2018.09.07.02.26.08; Fri, 07 Sep 2018 02:26:25 -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 S1728375AbeIGOEz (ORCPT + 99 others); Fri, 7 Sep 2018 10:04:55 -0400 Received: from mga03.intel.com ([134.134.136.65]:33040 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728316AbeIGOEz (ORCPT ); Fri, 7 Sep 2018 10:04:55 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Sep 2018 02:24:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,341,1531810800"; d="scan'208";a="71100215" Received: from linux.intel.com ([10.54.29.200]) by orsmga007.jf.intel.com with ESMTP; 07 Sep 2018 02:24:52 -0700 Received: from dazhang1-ssd.sh.intel.com (unknown [10.239.48.163]) by linux.intel.com (Postfix) with ESMTP id 780375802B3; Fri, 7 Sep 2018 02:24:49 -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 V5 3/4] mm: add a function to differentiate the pages is from DAX device memory Date: Sat, 8 Sep 2018 02:03:55 +0800 Message-Id: <044309496afbb4121447dff6a453bd6b96d6068d.1536342881.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