Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp468047imm; Tue, 3 Jul 2018 23:52:38 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcJCaTZ/YVbJMhGWEMJvtLsmOO7ep/iP5Zx8pqO4J7h8AiYGlfN/Uu94hco96VrVpPx0tUU X-Received: by 2002:a62:21c3:: with SMTP id o64-v6mr888122pfj.21.1530687158392; Tue, 03 Jul 2018 23:52:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530687158; cv=none; d=google.com; s=arc-20160816; b=UtcRrxJfroz+R5DILePhy9vIK/0iLHF83pfUoAOJpx7C/l4jGnMvrNRiLfj8vPLuFB EqtEcutsaSmAvc696GsCt8YY+n65wp9iIMltlpUYa8HpyuKngqmTuyGFPAUwGRxMc884 JgERZncQvf007Wa9yLB7ecWRysWRVZmNpbMWLAwDiOZezOYyc2pyelQxLlYd04veWtgO 7Ite7vQClRXVHAwtoZE1KxXq1C9GtJCR5KG76U4v14H43KnOO4//aAv1Wb7iy/iKg5H8 rNtBNIvuvFx/+ysSIeMV2zk072QW4iMOkA0WerhMn2xQS1+oaCx71JMOu7HUzNlOlSxc gIFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=TMEfyjhdDWMQzNzN+8IeHiv991KS1c0dnZ2cLB+MOFU=; b=eiWykplTqzEEChsXg912jIFHtfhtpSJwvTgGygAPqqIsVMIhqE9hsnjt/lsJqQiMXE 88YYrzKMacCIsxW4O9+TNWyUK3DKqo5dWCl+k4Aa2WEHlnpT3yhNXjxYKV5szv6On7il OZWZ2Lw24HZQMK6H+vt+arkBJoDHwrVnNk2OzHQbA2Yxk300Gp8ukcSBiyNX7vbim65v 1FmUW80HOOSYe5RSVKAyJhfNjFpWBlPtNNwsb4ySFU4+DV3EheE510yHiM6Kqn67YTB3 3b/Re1Nv9cIbU3GhLDvGQqcir7kut++DvBMLpEvjVWbyokyoinIHq3XZ1HeVfxsxj/56 EHDw== 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 g4-v6si2522190pgs.340.2018.07.03.23.52.23; Tue, 03 Jul 2018 23:52:38 -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 S933458AbeGDGvs (ORCPT + 99 others); Wed, 4 Jul 2018 02:51:48 -0400 Received: from mga04.intel.com ([192.55.52.120]:47104 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753518AbeGDGvq (ORCPT ); Wed, 4 Jul 2018 02:51:46 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Jul 2018 23:51:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,306,1526367600"; d="scan'208";a="62137584" Received: from linux.intel.com ([10.54.29.200]) by FMSMGA003.fm.intel.com with ESMTP; 03 Jul 2018 23:51:46 -0700 Received: from dazhang1-ssd.sh.intel.com (unknown [10.239.48.78]) by linux.intel.com (Postfix) with ESMTP id 07517580116; Tue, 3 Jul 2018 23:51:43 -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 0/3] Fix kvm misconceives NVDIMM pages as reserved mmio Date: Wed, 4 Jul 2018 23:30:03 +0800 Message-Id: X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Zhang Yi (3): kvm: remove redundant reserved page check mm: introduce memory type MEMORY_DEVICE_DEV_DAX kvm: add a function to check if page is from NVDIMM pmem. drivers/dax/pmem.c | 1 + include/linux/memremap.h | 1 + virt/kvm/kvm_main.c | 25 +++++++++++++++++-------- 3 files changed, 19 insertions(+), 8 deletions(-) -- 2.7.4