From patchwork Thu Aug 9 10:52:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhang, Yi" X-Patchwork-Id: 10560711 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 512D014E5 for ; Thu, 9 Aug 2018 02:14:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 38A552AC87 for ; Thu, 9 Aug 2018 02:14:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2CFB72AD81; Thu, 9 Aug 2018 02:14:16 +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 D166B2AC87 for ; Thu, 9 Aug 2018 02:14:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A43566B0007; Wed, 8 Aug 2018 22:14:14 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 9F39C6B0008; Wed, 8 Aug 2018 22:14:14 -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 8E3CC6B000A; Wed, 8 Aug 2018 22:14:14 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by kanga.kvack.org (Postfix) with ESMTP id 4924C6B0007 for ; Wed, 8 Aug 2018 22:14:14 -0400 (EDT) Received: by mail-pf1-f199.google.com with SMTP id i68-v6so2436917pfb.9 for ; Wed, 08 Aug 2018 19:14:14 -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=RxYu3w67orhQVDy+hQfozN1oWimHlxvIQibw4swPKIw=; b=GS/hJdUNuliT4u35oliJyBAlvrdk9U2fRMMavfBSJG4mmZx/+AA/j472AM919M3RRh 8sHa1yRgfQacOmMz+RaRSaUcFaBiB2rgvbWeAa+Ojl4J5RI8Qiw/i6LwpPm0Pm2LrWWe PGhYYuWThkotGWzzIjoEYKIAg6vVCbjoDelgnTdc6W24McFSWIbuCvFKwkRLZO7UlKo0 OkMxJFZecgkmdPymdtXkntrDyd6ygOBrtG6w2kUCTYf0+ecx56WT7IV16/OqMYMdHywK 5tE7dnZDIwD+yCMeIpyvu23wd02K30GuYiLt8RCmZnEscxc8T/8QgdKF3XhRNXH8TEVr LTGw== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 134.134.136.24 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: AOUpUlGdmqTrL3ndYI41LupM/XlefggKxhgOQsv4MVnZ/wQLgH08yKwG S/TS4r011CNBqZPs9dRUL+v+X7Xa30FCEB/1aK+FYdmKmqvk+xwJ6T3r4+TbDi5OeeCf/awWpo/ LJmzywxxj+p5N6+p5MUcpvU9G/fGlZ87XRVrGaeSSN7UuqySefNMrv65p68OsCB6E8w== X-Received: by 2002:a62:5302:: with SMTP id h2-v6mr211129pfb.183.1533780853995; Wed, 08 Aug 2018 19:14:13 -0700 (PDT) X-Google-Smtp-Source: AA+uWPzkZzVSqTgeNbJeTinp3yKQCKYFTOBL8l1a/7scyazw51N+wWMcQ2RmHa9txZxszf5/4bpV X-Received: by 2002:a62:5302:: with SMTP id h2-v6mr211077pfb.183.1533780853067; Wed, 08 Aug 2018 19:14:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533780853; cv=none; d=google.com; s=arc-20160816; b=gIqniycZSVlXHWqSKG/EIS/OvYRgZGRzvUZrkQuASObTLrDVEMgsqqk7nbgLzlYBfw aW8h+gRTstR++dPhRp54vPjZl4E/iOxrZCxPtKAC2wVFb7D9YWqlnGcwKSUzdFyS5Wok eNNNkI2Q0hG+EvjDEU8/QrzugJnFSrGHDnV9y9oARfOlhDjHqaXKUnaR1lpfXrvR74xw c/3uiUWxv2vn0gcxPIz9JkIysjYuc54q7YVh9J+1VgCaWD8oZl6Kgq8yXr9SUNenbWMr b/5PEsF8YaYIYmqX7HhNFOyuB5Laa+BxY9nsf2AuBQqPRQuPaccJQeCy7lfQheQK1Ec7 zpvw== 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 :arc-authentication-results; bh=RxYu3w67orhQVDy+hQfozN1oWimHlxvIQibw4swPKIw=; b=mJ3RpHNOGudmhe2Tpu3cBvtFj7WvMOfu09vFSaH2G0FPr6Mf+tEJOfL4OhYjKgsNKU GIj1curMP9NPNwpAdHxYdfKqM3+8ypvfPJ05MypgCiwKopJXHiWKtZmh/l1YmrYjAcf8 IA557hZC9d4mrgORK7C0JctJAqz5az0M4ydV/L1cIFqgU6ycVOwcMaNq3ErBWp5/NWtk skjYm3gq0O3DcFha1CdUMsYnyOH3GW7b3bSFd1me1rb54nOoQ2Y9Ym+wTAVSWpQ7adcs bM0i/8BTMiI/8omYuWFzDmQX1FM9VZloSCTeb9fjvKX/luv+4P3jprOdXlIH13EvthUb 7LcQ== 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 134.134.136.24 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 mga09.intel.com (mga09.intel.com. [134.134.136.24]) by mx.google.com with ESMTPS id r59-v6si4628620plb.39.2018.08.08.19.14.12 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 Aug 2018 19:14:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 134.134.136.24 as permitted sender) client-ip=134.134.136.24; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 134.134.136.24 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 orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Aug 2018 19:14:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,213,1531810800"; d="scan'208";a="81868676" Received: from linux.intel.com ([10.54.29.200]) by orsmga002.jf.intel.com with ESMTP; 08 Aug 2018 19:14:12 -0700 Received: from dazhang1-ssd.sh.intel.com (unknown [10.239.48.78]) by linux.intel.com (Postfix) with ESMTP id 6679A5801BD; Wed, 8 Aug 2018 19:14:10 -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 1/4] kvm: remove redundant reserved page check Date: Thu, 9 Aug 2018 18:52:55 +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 PageReserved() is already checked inside kvm_is_reserved_pfn(), remove it from kvm_set_pfn_dirty(). Signed-off-by: Zhang Yi Signed-off-by: Zhang Yu Acked-by: Pankaj Gupta Reviewed-by: David Hildenbrand --- virt/kvm/kvm_main.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 8b47507f..c44c406 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -1690,12 +1690,8 @@ EXPORT_SYMBOL_GPL(kvm_release_pfn_dirty); void kvm_set_pfn_dirty(kvm_pfn_t pfn) { - if (!kvm_is_reserved_pfn(pfn)) { - struct page *page = pfn_to_page(pfn); - - if (!PageReserved(page)) - SetPageDirty(page); - } + if (!kvm_is_reserved_pfn(pfn)) + SetPageDirty(pfn_to_page(pfn)); } EXPORT_SYMBOL_GPL(kvm_set_pfn_dirty); From patchwork Thu Aug 9 10:53:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhang, Yi" X-Patchwork-Id: 10560719 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 4C0E190E3 for ; Thu, 9 Aug 2018 02:14:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3289C2AC87 for ; Thu, 9 Aug 2018 02:14:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 261D32AD7F; Thu, 9 Aug 2018 02:14:36 +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 B78EC2AD84 for ; Thu, 9 Aug 2018 02:14:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D9CE16B000A; Wed, 8 Aug 2018 22:14:34 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id D4C7B6B000C; Wed, 8 Aug 2018 22:14:34 -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 C3DD96B000D; Wed, 8 Aug 2018 22:14:34 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by kanga.kvack.org (Postfix) with ESMTP id 82D096B000A for ; Wed, 8 Aug 2018 22:14:34 -0400 (EDT) Received: by mail-pf1-f197.google.com with SMTP id a23-v6so2396603pfo.23 for ; Wed, 08 Aug 2018 19:14:34 -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=xnc7hcf0HxkdZmO+HpfsgY0hVTpTWdSn+HqbGOKucj8=; b=jmQ2DC+IiUP9yoPYlGgsmwF2soJQNsHG1KSRM8x0PHmis/b0mfkW1i//+CLeaDrlPC qha20WS8PM7ikCgqhdbfR3amgo1laU85AQeB6y+UmUxAUWTBK/BXA5k4p7wbg+br6qvR AeO9XdsqL25AVq9ir8YBmpid9Pzlv0uZ6uALO3d43nKffhvCeCZ8t8KIPrNuxIoqEUJv Z0uNZDtOaeDZLuFCzDrRv3JFI49oHPkqxxznU9MPA5m+zdiw48o5GjG+Oc8KVt6qDycD g8tRwqE8f02pHPAgo98omnyBVSJifLOMBK7pmc8OqDy4GjzOqpfEiAV3+h6Jpt9Js82i KCOw== 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: AOUpUlEx7csOp+VEhMkzHz/VYU2PXhBUJRmHKDs7uuN+9Qy598IGLm6z 9C3B6j60i0xPZg9F8DpH157wKWGad8sbVaWGq6pSdcXdAXfDXz23dWVt6uzUHf8Z+gWOnp1H0E9 1fJE/JrzOGSmkHzQBNM9s+rdmYYikGXM5NENTzRB9Ne9vktOvB4cK+zPBERmHPWKQZA== X-Received: by 2002:a63:f344:: with SMTP id t4-v6mr207947pgj.428.1533780874221; Wed, 08 Aug 2018 19:14:34 -0700 (PDT) X-Google-Smtp-Source: AA+uWPwjLCHzXuWbWN0Jc6fgpnqKERe1YG6TDXQ92ksSd8audCBswFtr7TtpCYkiSfPD/K4sdp5Q X-Received: by 2002:a63:f344:: with SMTP id t4-v6mr207919pgj.428.1533780873425; Wed, 08 Aug 2018 19:14:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533780873; cv=none; d=google.com; s=arc-20160816; b=S4kNoLRResFrDpSd/uDbSORKqzWNDjoPUL2froZq0deL9P098CQyln555AXmcjrKqC dvHOTw47lDMEjR7hwAgfo0uQRPW+Fhr6XojWn/DhAC7gOPUvi5bxsaGtYghLre0kHAE7 EPqdAHI6H1aY3v2rikCpW8mCjCmRpBG9nhFWxK99w9NZFklzo+ZMvGhMp7xEwvZGUqL2 ApcfcDg11CSjfaHmke8z7zTmrSTsUB2jrD33YTZHwzheGsPfcYfeqxkBzh6CDQz7gbUF TMOw/rAkHXKjSbRERjt/uEiFreQFPpjBIjJ1Xtdeb+WKEtdA7Z5UnXVWdl9g6ZbxiEk3 LK3w== 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 :arc-authentication-results; bh=xnc7hcf0HxkdZmO+HpfsgY0hVTpTWdSn+HqbGOKucj8=; b=rcWtd/e1ZVv97Umk7H4I/Ij8UoL6ETcSbjNWdVjTOnIjfGLEHeC0pZ9wrlKoR3Gt0M qf4tgvd5PrAqfQ2Op5LLpDCnGJkJkGKwrsVStpGi6WprqPF9l6TGuprKTnLgn5lRRMua 4l/+sJgQTLg0jcWqnuxt4pLRZspo7tLerYMQHQ5RVaPtJE4IpoBP1EyPPXuiCDsqfsZU ZrWXUi9pnzd3KkUfTp4H98h1/2LA16g1gzuKJWU4TV4K9OuXFzCh2xSiQdkJZB0axN31 4siYE5FZbM7lmDwAAK9gygCiYcmc+Lc5xGt9teAIgxz86MQNV1cd6A6DlEfqL+f2MULR jI1Q== 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 b13-v6si4645352plz.467.2018.08.08.19.14.33 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 Aug 2018 19:14:33 -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 fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Aug 2018 19:14:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,213,1531810800"; d="scan'208";a="71346413" Received: from linux.intel.com ([10.54.29.200]) by FMSMGA003.fm.intel.com with ESMTP; 08 Aug 2018 19:14:30 -0700 Received: from dazhang1-ssd.sh.intel.com (unknown [10.239.48.78]) by linux.intel.com (Postfix) with ESMTP id 5A5425801BD; Wed, 8 Aug 2018 19:14:28 -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 2/4] mm: introduce memory type MEMORY_DEVICE_DEV_DAX Date: Thu, 9 Aug 2018 18:53:08 +0800 Message-Id: <01aaca83694c3b0093fcb2f48af1dff0b147a4b2.1533811181.git.yi.z.zhang@linux.intel.com> 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, }; /* From patchwork Thu Aug 9 10:53:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhang, Yi" X-Patchwork-Id: 10560725 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 B324114E5 for ; Thu, 9 Aug 2018 02:14:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9AC282AC87 for ; Thu, 9 Aug 2018 02:14:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8E7E82AD81; Thu, 9 Aug 2018 02:14:41 +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 3264C2AC87 for ; Thu, 9 Aug 2018 02:14:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 510856B000D; Wed, 8 Aug 2018 22:14:40 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 4C0FB6B000E; Wed, 8 Aug 2018 22:14:40 -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 3B15F6B0010; Wed, 8 Aug 2018 22:14:40 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by kanga.kvack.org (Postfix) with ESMTP id ED3686B000E for ; Wed, 8 Aug 2018 22:14:39 -0400 (EDT) Received: by mail-pg1-f199.google.com with SMTP id u4-v6so1935574pgr.2 for ; Wed, 08 Aug 2018 19:14:39 -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=zieWptaV9vB5PqQkkJ6YZzjdQJZ+OJerLc2Ac8SiI5o=; b=bzuaD5sQ0G1P3vN/BPEzYCr4x8ecX5jzpj+PJu+CtkDM7PqWH/+6/xCKK5oRPkGbBj 3whG1EtO6OPARdYtmRNNIimTZF0rItzxDOwaubxvlZ65Vm16R9/r3LLXdJsC4FKoPidM z2o8P0KW8BPb5/T1dET6lv/AWbag1KX9cXE/70F/XXZ7w1aR9eHY3/bo07gobKRum0LW a2/Vtw2jn6xJnvrcWbZ2N6d6TkHzhynb8IvXelGyy2xl4Il5UT3GY8hCiCBwkZwJ2m0g j/IPyU003zhfNgKAAEOID5RkK65vHoltahbgC2GdVSkdoTs3Irf2IWZQEfyw3QhVzQVI HZEA== 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.151 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: AOUpUlHjJr/jOJgj/SVA9nZAEmVn/LF0MOTLW0kngeApfRCoW/ansv99 ckcRsleu7xTDsNP0q3K9v9yVMWAPYa+nAVagUXiP8zxdoDIyuDxgVSToiQLszufyDRT8/oORLsc Y170QQvD2x34Hue++FV0j9T18l29kvitv8PTIzJHAjdF2P/OEWPxLniuPNLipmov5Ew== X-Received: by 2002:a62:c218:: with SMTP id l24-v6mr210730pfg.185.1533780879635; Wed, 08 Aug 2018 19:14:39 -0700 (PDT) X-Google-Smtp-Source: AA+uWPxMmnyh71EIEt0HrbmRxxoBaXoPTJcSAoEsDPfsbsCj1RlRe7ys7PrvM6tFaf62Mo6+l+zQ X-Received: by 2002:a62:c218:: with SMTP id l24-v6mr210698pfg.185.1533780878922; Wed, 08 Aug 2018 19:14:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533780878; cv=none; d=google.com; s=arc-20160816; b=01HOS9r22nesZh36ZcVu7FSn5b69R4rbUFYh7r1QQUf9QcSQR6nZSZlN0/inuXXdhM iM/sx4VRkQtOWrPBkgpFN83bBoGauNCE++syaEYHum+yqPKguOtg/phYDdVzZzuzTk8K ELVJ+K3NqhTIKoxpDONqieHMItmFDGpyij6CoH/ZoVA2DOhF/SPgP+joXVfzCW4iY/Rr kWK3VROmy6XGGQts7SuF8692z9OsVDaTgfWNVe65lc/vbxWCgCb/14ZG0u2CoO95mJRV d5pu+HpuJhDEWxShjaYT7TOs6qbV1Njso6dsYLBDEnFiNeGjciXktlEAhYvdk5ap3Lii wX8Q== 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 :arc-authentication-results; bh=zieWptaV9vB5PqQkkJ6YZzjdQJZ+OJerLc2Ac8SiI5o=; b=mSid2QHNqcV6rndZVgVtmN3O2JtcHQX0mobjIwK4dfwKdNPAJcmR5DUxf1CWG6LPQx 1S08+VFf8lMtiShkYTqkiGak9gm3LVDzMvPJyE2ccrKHrboS8MXf27CrRBFI1uV38vPw 2P5JFzwimH8Wmde7SydwBjnu0k7o1jdSoODNY6ox1gb0FBu/bHuuKqaFkfyN2It9UClM i0vvxUgt0vzVkfMiramvJY0xGKhx9dsWUXkcdGl1P0qefszho//y81k3ZTFsHeeaD20T A3/ROSAyrFwQYZWd2Ok2yHlD8/1B8Vq0g5IlVUUzqEoSUdy68k23uPLqA5oLs/v9IEXz Dwag== 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.151 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 mga17.intel.com (mga17.intel.com. [192.55.52.151]) by mx.google.com with ESMTPS id l7-v6si5950968pgs.35.2018.08.08.19.14.38 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 Aug 2018 19:14:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 192.55.52.151 as permitted sender) client-ip=192.55.52.151; 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.151 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 fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga107.fm.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: 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 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) From patchwork Thu Aug 9 10:53:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhang, Yi" X-Patchwork-Id: 10560731 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 D765714E5 for ; Thu, 9 Aug 2018 02:15:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BED9C2AC87 for ; Thu, 9 Aug 2018 02:15:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B29AC2AD81; Thu, 9 Aug 2018 02:15:06 +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 4B1D12AC87 for ; Thu, 9 Aug 2018 02:15:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7D1536B0010; Wed, 8 Aug 2018 22:15:05 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 7A6E16B0269; Wed, 8 Aug 2018 22:15:05 -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 6981E6B026A; Wed, 8 Aug 2018 22:15:05 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pl0-f71.google.com (mail-pl0-f71.google.com [209.85.160.71]) by kanga.kvack.org (Postfix) with ESMTP id 291756B0010 for ; Wed, 8 Aug 2018 22:15:05 -0400 (EDT) Received: by mail-pl0-f71.google.com with SMTP id j1-v6so2614002pld.23 for ; Wed, 08 Aug 2018 19:15:05 -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=qe0n20hd1AFQwWHycmykF186xnzB1aiLhkqHzf3Q5DU=; b=ALEa45S6gNX7QM1h2KFPehag/yWyt4osy6bnxiV0+lX5sVRCzl+CmihUpOY4NBx6Bc n4IHASr8KuJkridscLOjib2RY+vbYNrjsAEv6TEodwhti3EsN95cxbjLdR5NBwyxaHIa zeMxWL0HWzAkPRmp0TMBa0JHVpQgXLADaLQcP17m8B0mNpIWSdRr46CRM/UW776l1cGv 6klzqRIBN34eBQ0IK0Fx2owL4CeyguUnBC759EAlqNXdUVLGRq7NBisrrrnQf6Fhz4Z5 PINyiLyB7lL5Y2jLgzPxdmXlrsLfmlewrQSyTcqYdJkNIHW3qqcYU+9kuDJVIjZGNFSv wlaQ== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 134.134.136.24 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: AOUpUlGN6Wk+c0OGOvxh6WUMepkzX9uh7vlEC1UMrggSqde5IQ2NUt1n 73xsrUEQ1m+iGQRrQeRujdal6fl/bymweFuOxnJuNfqGt5sXfUxbcXxN3phx6wc7IZbBvW78Gvb PCt+riD+utbFiHmWWZ0pIPlkEbDzzqYRmGQ4FqBaRdKDXnDuA4u69ddneTkslj6+org== X-Received: by 2002:a17:902:9696:: with SMTP id n22-v6mr218293plp.212.1533780904865; Wed, 08 Aug 2018 19:15:04 -0700 (PDT) X-Google-Smtp-Source: AA+uWPycfnsT14JL2G07aJMWF6QcHAaaARBy+y7fuoKxSq82iy6TNnz0waEplBU2L3qOLI9QQQJY X-Received: by 2002:a17:902:9696:: with SMTP id n22-v6mr218265plp.212.1533780904148; Wed, 08 Aug 2018 19:15:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533780904; cv=none; d=google.com; s=arc-20160816; b=k9+6bc6tB+aWYaxQUT1OpZ7IKBtCtk3kmJrfKbTg5SfAQ0uffLRCVuLZkn2zsV/GWy CXRBDORw5BF/HRNWQ8kfo/Otc2pCLWtobgtSFpoHSuckOMtCCGxRIjaOM5CMKGQoUVeo JNcsDS5bkKU8HUk4xHYevwlBJR/B9ADSFGEX64bI5Vb1nfVjF8bufOQvHc3FIrYCtGly XDpAWRR2g5OOmTrYeIGbCDWjwEunwJ9ld8ArVCfkGnaZZDepjyu4FZvj7JRn8Gdloi/Y Gkzl/EBVOOvEUkdY2p8wG0zqCySDahIZppcrxY4HJPVPrrVeWa/cnthIKReNb1n8l8AO LCYw== 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 :arc-authentication-results; bh=qe0n20hd1AFQwWHycmykF186xnzB1aiLhkqHzf3Q5DU=; b=Pse+4UfN6J06xbIpUfgIwkEUaj6ofDEOH7ZczpXxCdRNHY12ccPH+QmkxcIPrD0Kxt fZzS8jVW3SX5KJuvGTGAlqPc0fOWDI/BKY3mGUYoCREWU1vdPAJ6cT7PitRBQgpMHnSy TpdxQGIJn2jvcq2VTA5LLAvfcmjifNDTs3KYivGH2XWEsOxXPwQiZqXznScJVoO5dDDA Vm8BsP58mHJPB00qwDqeFQCysiRAj2AVYDbT9IbSjNEqyi/pQvkdcRJCZf2H5gzn0vhg MhEUpD1XNpqqqnH8rylDM+mkVW1GnB6MnI+pcnhZjlsWzh69baQQv9tjJtmujuSn38Z/ 68FA== 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 134.134.136.24 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 mga09.intel.com (mga09.intel.com. [134.134.136.24]) by mx.google.com with ESMTPS id m3-v6si5904581pgr.108.2018.08.08.19.15.03 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 Aug 2018 19:15:04 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 134.134.136.24 as permitted sender) client-ip=134.134.136.24; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 134.134.136.24 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 orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Aug 2018 19:15:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,213,1531810800"; d="scan'208";a="81868743" Received: from linux.intel.com ([10.54.29.200]) by orsmga002.jf.intel.com with ESMTP; 08 Aug 2018 19:14:47 -0700 Received: from dazhang1-ssd.sh.intel.com (unknown [10.239.48.78]) by linux.intel.com (Postfix) with ESMTP id 876E95801BD; Wed, 8 Aug 2018 19:14:45 -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 4/4] kvm: add a check if pfn is from NVDIMM pmem. Date: Thu, 9 Aug 2018 18:53:30 +0800 Message-Id: <0cc6cba7020f80168695fba731b8fd72fd649dc8.1533811181.git.yi.z.zhang@linux.intel.com> 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 For device specific memory space, when we move these area of pfn to memory zone, we will set the page reserved flag at that time, some of these reserved for device mmio, and some of these are not, such as NVDIMM pmem. Now, we map these dev_dax or fs_dax pages to kvm for DIMM/NVDIMM backend, since these pages are reserved. the check of kvm_is_reserved_pfn() misconceives those pages as MMIO. Therefor, we introduce 2 page map types, MEMORY_DEVICE_FS_DAX/MEMORY_DEVICE_DEV_DAX, to indentify these pages are from NVDIMM pmem. and let kvm treat these as normal pages. Without this patch, Many operations will be missed due to this mistreatment to pmem pages. For example, a page may not have chance to be unpinned for KVM guest(in kvm_release_pfn_clean); not able to be marked as dirty/accessed(in kvm_set_pfn_dirty/accessed) etc Signed-off-by: Zhang Yi --- virt/kvm/kvm_main.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index c44c406..969b6ca 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -147,8 +147,12 @@ __weak void kvm_arch_mmu_notifier_invalidate_range(struct kvm *kvm, bool kvm_is_reserved_pfn(kvm_pfn_t pfn) { - if (pfn_valid(pfn)) - return PageReserved(pfn_to_page(pfn)); + struct page *page; + + if (pfn_valid(pfn)) { + page = pfn_to_page(pfn); + return PageReserved(page) && !is_dax_page(page); + } return true; }