From patchwork Thu Aug 9 10:52:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhang, Yi" X-Patchwork-Id: 10560707 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 1CC2015A6 for ; Thu, 9 Aug 2018 02:14:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 029D02AC87 for ; Thu, 9 Aug 2018 02:14:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EA8742AD81; Thu, 9 Aug 2018 02:14:12 +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 895DF2AC87 for ; Thu, 9 Aug 2018 02:14:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E4DED6B0005; Wed, 8 Aug 2018 22:14:10 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id D9B856B0007; Wed, 8 Aug 2018 22:14:10 -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 C62BF6B0008; Wed, 8 Aug 2018 22:14:10 -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 84BE66B0005 for ; Wed, 8 Aug 2018 22:14:10 -0400 (EDT) Received: by mail-pg1-f198.google.com with SMTP id y16-v6so1900558pgv.23 for ; Wed, 08 Aug 2018 19:14:10 -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; bh=lM9cZi3YWmO1qwu2xeq25O8HPpVxBDyegNMsN8I+YTk=; b=raB3PXddALqtZpCOwrx+BBRFyzzMQ9b9F2ysEhQgAd5e2nuw77YgGZtMtrXLq+RDmb DWe2301kDpHBtoqhCSIGoqXH0K17vbqYKmUcsvz9OihpOo8mj7MYr0n++1ISVo9/AaGa u8ThrNUZF7uLq/QS4mJLHsdFE+nKduV3yFB2qg84K1dTYe+/OkX9oKi5VsHQkcQNS9uD ngqnSEsti/uCnv5fFk5bR5MNz+LtAfLjQBpkeG3EWHnKJ6nLmIgBbcYG7dwkY9wZl2Yn xLVLmvGu+PsugzkEF+uGrmPJ7746Q3PDOlscYXxjMwu6yE09bLRq5Zlm3LTv0unnTFft QJgA== 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.65 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: AOUpUlFuMWGFIiY75O5Y3cYrpLtDHbqXE7TOW2MX6hUUZvJ7r4a0WW5B Bi/+8lTE2Fj+P3gjqZ+CR5nxYfbbQljx6kkQ/Oa+rsDhP4xNM/q9kyKLFbKNyGVWHDlazlpTEDO HkkrgFZbI4NVDKOQjO2v8bCU3fo2Cq/OnfYnplSXOa0JWMsbeqATr3Cq5ZpQ9CR1dGQ== X-Received: by 2002:a17:902:a50a:: with SMTP id s10-v6mr190401plq.147.1533780850203; Wed, 08 Aug 2018 19:14:10 -0700 (PDT) X-Google-Smtp-Source: AA+uWPzgrNYf5xjGd7qnhoR+dNOMont3Hc2ML2SfBwYptBQr2cLHRVl9dhg5mxU0It8DTU46ju51 X-Received: by 2002:a17:902:a50a:: with SMTP id s10-v6mr190371plq.147.1533780849332; Wed, 08 Aug 2018 19:14:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533780849; cv=none; d=google.com; s=arc-20160816; b=zJ4Sh6l+HJvhy11LnhZyEBrqzKzbXVsCXpQ67RdtnMax4G2vDxgZ17SnSSqXvHi4Ek Jgaji20+Ov8x2MCo7h5+QMOeO/0BQQpAVquprqMTyiVVlZWavt/r9RcS99dfYPob3XRo cAIQw+ka9jdIiCVqhR9O9eQCd3K9FwscoPZAMjbcE7Pmo21tHE+RAsvY2wDUs97ni+u7 4KvURlM/XsM9/3m0lDI5NYikWmgWIPlW37bcHfUwhtYZO7nvWZ2kt4Fythlj9EWaYw5O b5kvNKNozUVr/i8PGGnjR9pqq88U86w8G8m+7/9RbwcvXBKuTKAs4TTutvVdT+FYcITv NsTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:arc-authentication-results; bh=lM9cZi3YWmO1qwu2xeq25O8HPpVxBDyegNMsN8I+YTk=; b=uhoc6Wy7TxFwDMJxj0oxuhdzRKS4R53Pxn8de9jJWgZy0dWeKOs/C+s5A9zXqhQ1fe aaagRpnnpJVOL2lnrWQVkWB4Fu5w4FP5nNykhoptUFHFCOEvXxzHiBidcF8Pil7c4VIO UZI2iyFuN6BvHzNRslCG22A4WqxYA99DD8PipH9pPUZwJyyeO5WAJqj3Z8NKP8EIr4sv dXBI/gjlFWryDxDfOA6O0I1/OeyoUD2C1WAJHypvlJCt5/r3QlvrOkoL4S2nvTuasqG7 9HZe9kIMg4T4uLPyhoOmjg/lahGe2odqPeY1gSDflsGK+AfmzuzEev8zp4amZ98NHeA8 MmTg== 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.65 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 mga03.intel.com (mga03.intel.com. [134.134.136.65]) by mx.google.com with ESMTPS id 2-v6si6781159pfd.39.2018.08.08.19.14.09 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 Aug 2018 19:14:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of yi.z.zhang@linux.intel.com designates 134.134.136.65 as permitted sender) client-ip=134.134.136.65; 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.65 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 orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Aug 2018 19:14:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,213,1531810800"; d="scan'208";a="74999464" Received: from linux.intel.com ([10.54.29.200]) by fmsmga002.fm.intel.com with ESMTP; 08 Aug 2018 19:14:05 -0700 Received: from dazhang1-ssd.sh.intel.com (unknown [10.239.48.78]) by linux.intel.com (Postfix) with ESMTP id 84DCF5801BD; Wed, 8 Aug 2018 19:14:03 -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 0/4] Fix kvm misconceives NVDIMM pages as reserved mmio Date: Thu, 9 Aug 2018 18:52:48 +0800 Message-Id: X-Mailer: git-send-email 2.7.4 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, 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. V1: https://lkml.org/lkml/2018/7/4/91 V2: https://lkml.org/lkml/2018/7/10/135 V3: [PATCH V3 1/4] Needs Comments. [PATCH V3 2/4] Update the description of MEMORY_DEVICE_DEV_DAX: Jan [PATCH V3 3/4] Acked-by: Jan in V2 [PATCH V3 4/4] Needs Comments. Zhang Yi (4): kvm: remove redundant reserved page check mm: introduce memory type MEMORY_DEVICE_DEV_DAX mm: add a function to differentiate the pages is from DAX device memory kvm: add a check if pfn is from NVDIMM pmem. drivers/dax/pmem.c | 1 + include/linux/memremap.h | 8 ++++++++ include/linux/mm.h | 12 ++++++++++++ virt/kvm/kvm_main.c | 16 ++++++++-------- 4 files changed, 29 insertions(+), 8 deletions(-)