Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1118151ybl; Fri, 13 Dec 2019 09:51:31 -0800 (PST) X-Google-Smtp-Source: APXvYqwsI58SBFXYy9Z978fG9uTBSSR0JA3lUNQe7wzVCSk7bWahhBShmJhb4BrwsTRjwysbQmOG X-Received: by 2002:a05:6830:1c90:: with SMTP id v16mr9317469otf.259.1576259490903; Fri, 13 Dec 2019 09:51:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576259490; cv=none; d=google.com; s=arc-20160816; b=euw66gdv3tW7b4EAFJBKj1hxa0Hq91Hb9iBuFkHjf6RDrzhY/wZTRSrWmceJ6cA9ij 7JkfG7+u/piEHNsM+v5ujz0qsHS54jJfuNYnBtSgAU8nnqaz6th7wn75fNwxSCsTjMvO ZTXxVVPTmhjIkYB4wBgxbIc7CbwV+EMhBUUe/mVkiZAJrSx471r02x0vKaCR4OJmrsWI kbI9CaJRcPUVTeSvqgK4NOxcovgqgJA0ptgcx9MkJyF47xA95bOEd3Lk4pIyI+8OJTT+ MUN526gTeWMwRPDTZV2YNBV+2HaKltN+6IJEM6lhfYmRyXw+GqL31QxUYD0/9VP3zEcT Y8TQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=lNKPABEhrtJlTqOHpMrdj3OPjoXctSkfu0+TDQHo7YY=; b=kT+1CrlX1P1wfllpWB4ap/dN6ll/CPXAjYSZkTXJC4OpR215uKxIfq2/d1oqlyuQ38 AND78j8Xjux9On+qH2aEDSF8bnnTQuFSPvvJWCWVW72FfSmGlM/xO4W1IzlZtnc+GZx1 SVEc2yUe9x+ozS/Q/8wb9d7koYjYm87+J8nnoV5jO/RE01tngUvnKzlBsGUvlXQj3Xfh yda1WPPDqfYI3NxbB5UNPx8ZItde+WoM49qLoUEz/mZv9OEVWYr4Zr22OKM8hGHD7MZ1 DjZw9JMCtUqkN8kKkc3VIehodx01EMjwinNwSAJIj7kAlL8bXJIufponSsM8ypTQPVI9 9MxA== 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 q9si5187467oif.92.2019.12.13.09.51.19; Fri, 13 Dec 2019 09:51:30 -0800 (PST) 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 S1728585AbfLMRud (ORCPT + 99 others); Fri, 13 Dec 2019 12:50:33 -0500 Received: from mga11.intel.com ([192.55.52.93]:29881 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728203AbfLMRuc (ORCPT ); Fri, 13 Dec 2019 12:50:32 -0500 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Dec 2019 09:50:32 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,309,1571727600"; d="scan'208";a="415709726" Received: from sjchrist-coffee.jf.intel.com (HELO linux.intel.com) ([10.54.74.202]) by fmsmga006.fm.intel.com with ESMTP; 13 Dec 2019 09:50:31 -0800 Date: Fri, 13 Dec 2019 09:50:31 -0800 From: Sean Christopherson To: Liran Alon Cc: Barret Rhoden , Paolo Bonzini , Dan Williams , David Hildenbrand , Dave Jiang , Alexander Duyck , linux-nvdimm@lists.01.org, x86@kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, jason.zeng@intel.com Subject: Re: [PATCH v5 2/2] kvm: Use huge pages for DAX-backed files Message-ID: <20191213175031.GC31552@linux.intel.com> References: <20191212182238.46535-1-brho@google.com> <20191212182238.46535-3-brho@google.com> <06108004-1720-41EB-BCAB-BFA8FEBF4772@oracle.com> <65FB6CC1-3AD2-4D6F-9481-500BD7037203@oracle.com> <20191213171950.GA31552@linux.intel.com> <4A5E026D-53E6-4F30-A80D-B5E6AA07A786@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4A5E026D-53E6-4F30-A80D-B5E6AA07A786@oracle.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Dec 13, 2019 at 07:31:55PM +0200, Liran Alon wrote: > > > On 13 Dec 2019, at 19:19, Sean Christopherson wrote: > > > > Then allowed_hugepage_adjust() would look something like: > > > > static void allowed_hugepage_adjust(struct kvm_vcpu *vcpu, gfn_t gfn, > > kvm_pfn_t *pfnp, int *levelp, int max_level) > > { > > kvm_pfn_t pfn = *pfnp; > > int level = *levelp; > > unsigned long mask; > > > > if (is_error_noslot_pfn(pfn) || !kvm_is_reserved_pfn(pfn) || > > level == PT_PAGE_TABLE_LEVEL) > > return; > > > > /* > > * mmu_notifier_retry() was successful and mmu_lock is held, so > > * the pmd/pud can't be split from under us. > > */ > > level = host_pfn_mapping_level(vcpu->kvm, gfn, pfn); > > > > *levelp = level = min(level, max_level); > > mask = KVM_PAGES_PER_HPAGE(level) - 1; > > VM_BUG_ON((gfn & mask) != (pfn & mask)); > > *pfnp = pfn & ~mask; > > Why don’t you still need to kvm_release_pfn_clean() for original pfn and > kvm_get_pfn() for new huge-page start pfn? That code is gone in kvm/queue. thp_adjust() is now called from __direct_map() and FNAME(fetch), and so its pfn adjustment doesn't bleed back to the page fault handlers. The only reason the put/get pfn code existed was because the page fault handlers called kvm_release_pfn_clean() on the pfn, i.e. they would have put the wrong pfn.