Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp5595135pxj; Wed, 23 Jun 2021 05:01:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy+/G71oj9X9xNl8lZY22GCiDGXfg+561h6ELXGFsFHxzwKvGWvX2AYr3bKD9VW7ynkLiL7 X-Received: by 2002:a05:6602:20d8:: with SMTP id 24mr6874748ioz.26.1624449680051; Wed, 23 Jun 2021 05:01:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624449680; cv=none; d=google.com; s=arc-20160816; b=m4qkAFMaBcxyNwoLj7fa2pV/jkXyiAgaqgqyaRCQ2J8p3NG/Y5qps7dQYN5Lh5uqAQ Di0eoGV4HCay+wm5Oq5cormp8X8xptsFEBVYQXU95K6GgeVKtd1EMX5ERPwBV43nv2Wl n+kXBDZfy2eb0wliDcWwwONM3rlbDvE3esKFk8F+TBhKEPVcblKlEQ5myAu6t5IBfZJa mnJ3Na+lTcrUYzyoSvp28E7XHnZOAgtNe0kjfkrkHQ6PZAsWIRMlKvnFdSKC1sbTvwxv mj+bCFTNbvtPt0TX5GGEnAVHncsWkvaooHbVTIoCwWVeDSvq7YQY7wOKMIqBps7RLfue LVUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=40lufiefSAXJYxyzql25e+wiCU9kJZcVj8CF016XD70=; b=GbtphJvwPrxBRrX4elo/erDIKhnMnmhzXurXzwycYmYj2BqGBy9w9brASoAV8SPxDu USgKMCtDNpywiZWiNXCKGhF2HNpaAX8kzgNOpofCyLLMTuRWI5i5ugA0ZvtEn6l1n1WN 2GN9QdlKQIKhzyKIGdMN7NamjSZdmX46kbY/AhSYjKTe6ZbOR6Cpj/GRJ0sw/V1TH1hH EqkBKij6BeDLeN22B2tstONCPr6eQl4Wv5FLyWca/dxxYQFo4p/Zi2UgPK8pS8TwFa0U iu8br5XSrZyACTT/W7GYNdqeyKVIwuBPP8v8CUIDJjUxs6aTtfjGFNsXCjB8dyB8PnvZ 5eww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=CEstZ7cI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h8si2651000jav.2.2021.06.23.05.01.08; Wed, 23 Jun 2021 05:01:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=CEstZ7cI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230449AbhFWMCu (ORCPT + 99 others); Wed, 23 Jun 2021 08:02:50 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:24180 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230302AbhFWMCu (ORCPT ); Wed, 23 Jun 2021 08:02:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624449632; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=40lufiefSAXJYxyzql25e+wiCU9kJZcVj8CF016XD70=; b=CEstZ7cIdGOqDR+jnolP/XRG/JXhBLjDflf7lCofp0kpQHaMDnWWthH34tcmchbvdBV0ct GJl0+gObI3CuwmCiDP0LxOQZ8lsmAOI+mWDkiJj3CBZWA3Zdc6hRvOOm/ZGUvW7Rt6GMvx f+zXS2rNdBJfAth/dDRE3/o+8wCG0zQ= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-1-hvTUk_ASNU2pe_o3jqp8fQ-1; Wed, 23 Jun 2021 08:00:31 -0400 X-MC-Unique: hvTUk_ASNU2pe_o3jqp8fQ-1 Received: by mail-wr1-f72.google.com with SMTP id l2-20020adfe5820000b029011a64161d6aso993797wrm.6 for ; Wed, 23 Jun 2021 05:00:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=40lufiefSAXJYxyzql25e+wiCU9kJZcVj8CF016XD70=; b=aHhpwMXXO1JnBGQ0qtOjHitWEgcDZymqscagLXzKeKjqWp3k17ChLSe/NBIcZ7eL/V G/YbYLy95sbZYqXOyhFBBx87EM3OTRZ3PkKRjbdKwBc/PsaYaQ/tbB4M/Ya60UOPBHOJ mBepPtRRqrOxqh2/aLKP4iClfH5WCgzPgart+sE7RZNkvvYbJpMEf0KpFTNmxDcn5J5N 4bxqX61zMEhxno6P0u/ykkPi3obW7LvYHeWXcoG2DBZz+XsxS6SXnpSYFp39K5upDG+K wDk4cyWw16eaJv1zHmkEPxj2lc5RZC4b2iBec+IeSAnQvHvrVMlHNviXCj+9MXTHX6Ex sVYQ== X-Gm-Message-State: AOAM531/3GU8BBt8l5ypK4wpU1LPStCjCvkOco5sUFGUUyuukRDG4V/e 4ktUWyCy4h7R2Wsh0629YeADhrOkG0pOJJgqzSqZ/Wilbqi9Xa+qssecI4QYAYRtPds9pXLRxfu aHkpbFf+X9i9Argy+xjhKgqcQQ4u1/6fmLJgsYaAejKB16z3JNuFIMAvcFzLWnyfP7gU2geFSe4 vG X-Received: by 2002:a05:600c:b57:: with SMTP id k23mr10532648wmr.133.1624449629776; Wed, 23 Jun 2021 05:00:29 -0700 (PDT) X-Received: by 2002:a05:600c:b57:: with SMTP id k23mr10532600wmr.133.1624449629425; Wed, 23 Jun 2021 05:00:29 -0700 (PDT) Received: from ?IPv6:2001:b07:6468:f312:c8dd:75d4:99ab:290a? ([2001:b07:6468:f312:c8dd:75d4:99ab:290a]) by smtp.gmail.com with ESMTPSA id o203sm5900649wmo.36.2021.06.23.05.00.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 23 Jun 2021 05:00:28 -0700 (PDT) Subject: Re: [PATCH RFC] KVM: nSVM: Fix L1 state corruption upon return from SMM To: Maxim Levitsky , Vitaly Kuznetsov , kvm@vger.kernel.org Cc: Sean Christopherson , Wanpeng Li , Jim Mattson , Cathy Avery , Emanuele Giuseppe Esposito , linux-kernel@vger.kernel.org References: <20210623074427.152266-1-vkuznets@redhat.com> <2eaa94bcc697fec92d994146f7c69625b6a84cd0.camel@redhat.com> From: Paolo Bonzini Message-ID: Date: Wed, 23 Jun 2021 14:00:28 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <2eaa94bcc697fec92d994146f7c69625b6a84cd0.camel@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 23/06/21 13:39, Maxim Levitsky wrote: > On Wed, 2021-06-23 at 11:39 +0200, Paolo Bonzini wrote: >> On 23/06/21 09:44, Vitaly Kuznetsov wrote: >>> - RFC: I'm not 100% sure my 'smart' idea to use currently-unused HSAVE area >>> is that smart. Also, we don't even seem to check that L1 set it up upon >>> nested VMRUN so hypervisors which don't do that may remain broken. A very >>> much needed selftest is also missing. >> >> It's certainly a bit weird, but I guess it counts as smart too. It >> needs a few more comments, but I think it's a good solution. >> >> One could delay the backwards memcpy until vmexit time, but that would >> require a new flag so it's not worth it for what is a pretty rare and >> already expensive case. > > I wonder what would happen if SMM entry is triggered by L1 (say with ICR), > on a VCPU which is in L2. Such exit should go straight to L1 SMM mode. Yes, it does, but it still records the L2 state in the guest's SMM state save area. Everything works right as long as the guest stays in L2 (the vmcb12 control save area is still there in svm->nested and is saved/restored by KVM_GET/SET_NESTED_STATE), the problem that Vitaly found is the destruction of the saved L1 host state. Paolo > I will very very soon, maybe even today start testing SMM with my migration > tests and such. I hope I will find more bugs in this area. > > Thanks for fixing this issue! > > Best regards, > Maxim Levitsky >