From patchwork Fri Sep 7 18:03:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhang, Yi" X-Patchwork-Id: 10591923 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7E28D139B for ; Fri, 7 Sep 2018 09:24:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7726E28537 for ; Fri, 7 Sep 2018 09:24:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6B76A2AD99; Fri, 7 Sep 2018 09:24:39 +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 F33B32861C for ; Fri, 7 Sep 2018 09:24:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 008156B7DA1; Fri, 7 Sep 2018 05:24:38 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id EFA836B7DA2; Fri, 7 Sep 2018 05:24: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 DEA6C6B7DA3; Fri, 7 Sep 2018 05:24:37 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by kanga.kvack.org (Postfix) with ESMTP id 984316B7DA1 for ; Fri, 7 Sep 2018 05:24:37 -0400 (EDT) Received: by mail-pg1-f198.google.com with SMTP id r20-v6so6970550pgv.20 for ; Fri, 07 Sep 2018 02:24: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=JwWIqrnfqvRtRk9oqwaC6IStXdXj/6nsmHZH6RgulUQ=; b=Rui0iZkHRQ+LrOWR+c2CJ/yzW7zyehrMs+SjL2fgu3lCWfHSf1CD/9DPkWK21Fd4a4 VHDHzPdr6Mk95pYxKbjzfIZyVWVhxKdRBKXSvaCo3TN1fGXrasd9EcbnsJg+FFSFCksI 7dDtkM3Xz6kOlReYUMmxeDDFoNXu9ineqt4Zr7apmplQCi/wyfsauFTxeLrS00QGf6hK j6/AFmsWzLUuRoh2gDH77hsAWCC1iOcoBCLATBf47Q/Dyix/af5lzZYtUjSvSgnJOy20 OxLZJFdLxru1SLDwS0INsfQdzbv90jm+Hp7YK/2zOWa959lP/iUSDKcri8bKPgQ2HhCV l9Kw== 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.88 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: APzg51Aon5tyw+caepQnYevTKY5H+O2YkFeJ3re1w0CTVLKSi/fsaULt INpKtY003erdFzFw/Ia4jgNHLXTLcP1qrkUPVj/SjBEgIGq1Ye4oifPSCOCa/4cGDrum732srao lD8X1eJOPHlwYjtV8pbNO508/6I/YOnPtb6rmIJdDLGJWkBiOoHlaqGjKlESGW6krtw== X-Received: by 2002:a17:902:e85:: with SMTP id 5-v6mr6785122plx.73.1536312277279; Fri, 07 Sep 2018 02:24:37 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZsqz4uTEO0P5fTAaOK+Zdl8tVASxJp4aJ0KN3RphwXlA9dGRkbOQaelY3c9wEdwsMq1HOT X-Received: by 2002:a17:902:e85:: with SMTP id 5-v6mr6785088plx.73.1536312276557; Fri, 07 Sep 2018 02:24:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536312276; cv=none; d=google.com; s=arc-20160816; b=nH0RYoWQaYyvaFvvfE5x4VSrtw7jMVUMt9d0T9cRvJZmusI3soX7U/0s64CJYHsTra TlPXnjog+q8M6OFEelaPR0hbtQXv3gnAyI+TGdkOkyfAoH0vWjuFTgmgEFOQ+4QeCIMS E7MP1xQ0MyqVxPUUXDeVk7P50t9X673g8BLvweUvs7kIiao9viLoyx7YhhbKXYatm+ER DjFyoBYcU8HlJvoKFB/w/jNWTIuxXRjvPwj/8+tMJQP3tKzJKL0QnshCtSW8kFvTvREm DMMRbXLvgQorPK6KkPMmXiBdfVeNr0Q8+WQJsuR6C/MhnHxyWmlMJEbUu2qnbiBzrUcV aQdQ== 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; bh=JwWIqrnfqvRtRk9oqwaC6IStXdXj/6nsmHZH6RgulUQ=; b=XPCwd3zqP3nab5A6uBDsnF0MQITcAmuT3zb9Vf/fqlZ9CteqKJ3ueAbH8t6b4tXBeV kZiONTnWJPD10hha9mcfivZaIKWiEnydJiC49/JkV0ap2DmwN0GZ18NOeGP0/69JyuLA jK4TtscUWZWqYTbj5RD2+Isd/ah9qGDcZ60u40i4Upg7UV8xrKi47z/1ACWwSU9tIg1f +5yzJFMQgt8BuVacYkhMUoTE79ipHI1/qRzK+dDGAotMRWO8pVxs9K1kMaHfz8d0laPF jBf4hAB7CZkg1zincdMOM6cqPN0lksYeG3xStAfAEy7TzuoEAhxgL1zA4ealSWHHkOXC s6Pw== 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.88 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 mga01.intel.com (mga01.intel.com. [192.55.52.88]) by mx.google.com with ESMTPS id u15-v6si7957939pgi.76.2018.09.07.02.24.36 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 07 Sep 2018 02:24:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 192.55.52.88 as permitted sender) client-ip=192.55.52.88; 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.88 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 fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Sep 2018 02:24:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,341,1531810800"; d="scan'208";a="72355804" Received: from linux.intel.com ([10.54.29.200]) by orsmga006.jf.intel.com with ESMTP; 07 Sep 2018 02:24:35 -0700 Received: from dazhang1-ssd.sh.intel.com (unknown [10.239.48.163]) by linux.intel.com (Postfix) with ESMTP id 06B1D5803DA; Fri, 7 Sep 2018 02:24:32 -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 2/4] mm: introduce memory type MEMORY_DEVICE_DEV_DAX Date: Sat, 8 Sep 2018 02:03:39 +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 Currently, NVDIMM pages will be marked 'PageReserved'. However, unlike other reserved PFNs, pages on NVDIMM shall still behave like normal ones in many cases, i.e. when used as backend memory of KVM guest. This patch introduces a new memory type, MEMORY_DEVICE_DEV_DAX. And set this flag while dax driver hotplug the device memory. Signed-off-by: Zhang Yi Signed-off-by: Zhang Yu Reviewed-by: Jan Kara --- drivers/dax/pmem.c | 1 + include/linux/memremap.h | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/drivers/dax/pmem.c b/drivers/dax/pmem.c index fd49b24..fb3f363 100644 --- a/drivers/dax/pmem.c +++ b/drivers/dax/pmem.c @@ -111,6 +111,7 @@ static int dax_pmem_probe(struct device *dev) return rc; dax_pmem->pgmap.ref = &dax_pmem->ref; + dax_pmem->pgmap.type = MEMORY_DEVICE_DEV_DAX; addr = devm_memremap_pages(dev, &dax_pmem->pgmap); if (IS_ERR(addr)) return PTR_ERR(addr); diff --git a/include/linux/memremap.h b/include/linux/memremap.h index f91f9e7..cd07ca8 100644 --- a/include/linux/memremap.h +++ b/include/linux/memremap.h @@ -53,11 +53,19 @@ struct vmem_altmap { * wakeup event whenever a page is unpinned and becomes idle. This * wakeup is used to coordinate physical address space management (ex: * fs truncate/hole punch) vs pinned pages (ex: device dma). + * + * MEMORY_DEVICE_DEV_DAX: + * Device memory that support raw access to persistent memory. Without need + * of an intervening filesystem, it could be directed mapped via an mmap + * capable character device. Together with the type MEMORY_DEVICE_FS_DAX, + * we could distinguish the persistent memory pages from normal ZONE_DEVICE + * pages. */ enum memory_type { MEMORY_DEVICE_PRIVATE = 1, MEMORY_DEVICE_PUBLIC, MEMORY_DEVICE_FS_DAX, + MEMORY_DEVICE_DEV_DAX, }; /*