Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp548750ybd; Wed, 26 Jun 2019 02:40:16 -0700 (PDT) X-Google-Smtp-Source: APXvYqw16qE0mcVqCtPoCbPpo6/6gdiKlp/7y0wAqiu0072DRmE9fPhacRi4kiiIoAsmQouRTMUV X-Received: by 2002:a63:18d:: with SMTP id 135mr2072671pgb.62.1561542015822; Wed, 26 Jun 2019 02:40:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561542015; cv=none; d=google.com; s=arc-20160816; b=gXw5d6WOa7do5oTjm1vnZ7PXrOiAkogbpO5okHT6KvmVHotW0zImjzvJhD7eCO0TXu ifkJnF8mBITNbmrC1gZ+awmBDZWwWTAtrn4XRii+xPSY3kAbIGqOnMFwCOJ7BfKCSWBJ UDcN4zHqsOi10GaEL0vx3JjyWlYA3A6+uz0kvDkcPcJqR/IkxVxlQDosfSweJQdz2Peb 7zWfjMrl16gclyjOlTdEMax7XepJrCKDDW1HWi1qOQ5Nc286INCcJF57fMjTIjXvaT3j NJ3O5GIcUL0NOQu+He6riQr4QCX1z+QqvI0FS58hLPWSW/1p7QMfLphFCljjY6il42ne ZO7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:references:in-reply-to:subject:cc:to:from; bh=0oLx6Rnuo9a2CrlixJQ1TNptd79xT0odw2gDg+gLUkM=; b=yKY5Bv1But1XKUCnGjmWKst15S8V8KOYrlwmR7lYqKVvTkgcNZnvOTSy1Zos6tdrxz dOG9hy/Htu9D/wSMyJz1W7o5DhLT/0ohWoetX/bnUkE+243by1q/QhkKYjyAyQk9/ClI SNrfOqu2Nzjju2r90IKJKr2HkIOPVY9VJvwnsPMQIbBGOgo5nq65AEihwMHmV0AqhY6M TOF17++isYE/vZLVFeS2xG4c2HpYXORgCGtlIbF/qpU4OOaviwDxqkW4hTtwijPeFCcx bwgLKM3n2gBAExnn8HzYhe0rNdfBAM/ihUTfSfTGde4MjyqRpGCqloDOj8SXiG+OtI/y jnng== 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=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m62si15643520pgm.392.2019.06.26.02.40.00; Wed, 26 Jun 2019 02:40:15 -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=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726882AbfFZJjm (ORCPT + 99 others); Wed, 26 Jun 2019 05:39:42 -0400 Received: from mail-wm1-f68.google.com ([209.85.128.68]:39370 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725930AbfFZJjm (ORCPT ); Wed, 26 Jun 2019 05:39:42 -0400 Received: by mail-wm1-f68.google.com with SMTP id z23so1358607wma.4 for ; Wed, 26 Jun 2019 02:39:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version:content-transfer-encoding; bh=0oLx6Rnuo9a2CrlixJQ1TNptd79xT0odw2gDg+gLUkM=; b=h84dQZW3l/HSGlRxHwn6gOZJuF6XCYQ33jXK7ht05mjA4Fd4koPx8nB9FDGxxR95gE mhLyNtUs59UVr0y6d5OkyU2nA/NAOm1T8+tQNg5tD4cBbe0UdRQYclkS/PSGjg/5NDEY +JqGjQQYAAVttGE021pbHWnpmHU/B62+RbuZAM9/lG2aZ5RVx4CACpFrcmtbZYvox2OP q1d6aMk1gL0u5woflyUZeq48FSjFF1kJIpv7dcqGMC3JvTbxIHo4qjhSqHBAkRJgbU6t 9F7GDUoJb2HpC8jzvsMdDdnQ7N1Af26UlPj2wynBqeVnUdpNyr7WtvGIsE9A8/Z79mFR sJjg== X-Gm-Message-State: APjAAAWBQ5+ZoUV487opw8Ft48/Luw8fQLlUYW97j2vVtclwCaW/hydD DOT29wJb7Sv2i1esGT/pE2XxCQ== X-Received: by 2002:a1c:cb43:: with SMTP id b64mr2120394wmg.86.1561541980070; Wed, 26 Jun 2019 02:39:40 -0700 (PDT) Received: from vitty.brq.redhat.com (nat-pool-brq-t.redhat.com. [213.175.37.10]) by smtp.gmail.com with ESMTPSA id t140sm1761455wmt.0.2019.06.26.02.39.39 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Wed, 26 Jun 2019 02:39:39 -0700 (PDT) From: Vitaly Kuznetsov To: Liran Alon Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Paolo Bonzini , Radim =?utf-8?B?S3LEjW3DocWZ?= Subject: Re: [PATCH] x86/kvm/nVMCS: fix VMCLEAR when Enlightened VMCS is in use In-Reply-To: <69274969-E2BE-442C-B2D2-0AF94338C31B@oracle.com> References: <20190624133028.3710-1-vkuznets@redhat.com> <87r27jdq68.fsf@vitty.brq.redhat.com> <69274969-E2BE-442C-B2D2-0AF94338C31B@oracle.com> Date: Wed, 26 Jun 2019 11:39:38 +0200 Message-ID: <87k1d8d6sl.fsf@vitty.brq.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Liran Alon writes: >> On 24 Jun 2019, at 17:16, Vitaly Kuznetsov wrote: >> >> >> That said I'm ok with dropping nested_release_evmcs() for consistency >> but we can't just drop 'if (vmptr == vmx->nested.hv_evmcs_vmptr)’. > > Right. I meant that we can just change code to: > > /* Add relevant comment here as this is not trivial why we do this */ > If (likely(!vmx->nested.enlightened_vmcs_enabled) || > nested_enlightened_vmentry(vcpu, &evmptr)) { > > if (vmptr == vmx->nested.current_vmptr) > nested_release_vmcs12(vcpu); > > kvm_vcpu_write_guest(…); > } > The change, to my surprise, resulted in a set of L2 guest crashes. After some debugging I figured out that clean fields is to blame: after Windows does VMCLEAR it doesn't maintain clean field data before the next VMLAUNCH - and nested_vmx_handle_enlightened_vmptrld() does nothing in case evmcs_vmptr stays unchanged (so VMLAUNCH follows VMCLEAR on the same vCPU). We apparently need to invalidate clean fields data on every VMLAUCH. This is fix of its own, I'll do more testing and send v2. -- Vitaly