Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp4479982pxb; Thu, 14 Oct 2021 06:06:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzTNKuX6qfrZjP61XZUHos4uSogcJsR/9HgkMHcTQUg2DNBUcYLu4Milj+sOnvUZIDywqmP X-Received: by 2002:a17:906:8a79:: with SMTP id hy25mr3596952ejc.371.1634216805377; Thu, 14 Oct 2021 06:06:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634216805; cv=none; d=google.com; s=arc-20160816; b=hSyuD4+d0sdmN8qtXPp0q71nu9FazFVtGgNeVO+WyNpS5LKBI6kOv2OeFaZAFR8oz2 J+fgT5CVAr74+R1JexSbrLvJoSL51hMTkC8ZNgfWs8yhuuTAan6eJENu5nHAUgcGN1a5 gbGvXiypFjWOpQ/aYa663Wh6u69KHPp047ECmvTbNZSiOMeKHvUtTZKOil6vbKS8+dpM fWU/UMqwVa7BGCunQRBveXHqeLT7wkspvNB4U2WYcEVqH1RXGfRWWECE9sQjWjbRu13Q Iw5bN/aSTiVkxFONdDcwUDzCOb3JuZI7RWYYJH3gdFSL5+djGeY7aIcvy0bxIlMHDH+Y YgnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=aFiK62jXYmyXCc8jy67gMQtsRtTTUcSWEFlScum3zsE=; b=EAgJpudBGQyLYoLz0y3ewH4NBLjotTX46u9S+4QHRtnzdbHPI21+kGeuY9SBJSEg9d CyGlDDEHWKtLtys+sM1tDBN7usK0pFoHdnuVa1vObAkbnA+jRzw0NVTfvYfWz7EpfcBu 34zuc7LsjKU76GQlABkSjduOfijpBwYnvn57pywFjM0mHqedl2w3/6aFTaHFcG8/DJve X/Ctm/6VdenYI1oBqm98tfS/iq80Pmw1vqFzoX3j4KDLvAT5U7xHC190eigKfZaxNiG9 eR4/EOVByBmcKX0toYB5AKHLHMFTSD+4uqQoZ8i91trZyRl1utOWjkVcIifnCKwFSNnE k8XQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="UZAh4V/o"; 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 dp17si1644050ejc.636.2021.10.14.06.06.20; Thu, 14 Oct 2021 06:06:45 -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="UZAh4V/o"; 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 S230456AbhJNLgC (ORCPT + 99 others); Thu, 14 Oct 2021 07:36:02 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:51628 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229984AbhJNLgB (ORCPT ); Thu, 14 Oct 2021 07:36:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1634211236; 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=aFiK62jXYmyXCc8jy67gMQtsRtTTUcSWEFlScum3zsE=; b=UZAh4V/oP0Xx5SheX+/peRczPobBLSV6hItJ0fKRlQX6C7K9RDncAsPTznMFET5LeNCKjf 6csbAU3l6bwqPCtUUbx745IKbH4vzdG69s3golvvPYQP/TMHOnIx1iZLfnTcyj8MAk1jkf ExpeRvLSN8SR0gOahjKxeG9gqh8zjZo= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-498-Xlj9Ii9xO_u5LmllonEgMg-1; Thu, 14 Oct 2021 07:33:55 -0400 X-MC-Unique: Xlj9Ii9xO_u5LmllonEgMg-1 Received: by mail-wr1-f71.google.com with SMTP id k2-20020adfc702000000b0016006b2da9bso4335770wrg.1 for ; Thu, 14 Oct 2021 04:33:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=aFiK62jXYmyXCc8jy67gMQtsRtTTUcSWEFlScum3zsE=; b=yEdPp/rrW973jpxLdjrufP1fmGpto6EPQauI6PSyEnZWsSm+NVl/3R9dzeAKz0G9Zr 92i31wleZAjV5Re3svxgjRxChm6opYadAxrT1Mieur+RySNWsvqHNTr2OGyEfhHAMZCQ CZO68Rk4OiGEwoICtzRNXAdKUeQH6DYFvb0wKx4L0R3vbZrRODPiYnm2bryV+SCbEdNT ju9rR1yZWX3ODOb4LeENzTVhwNOg4BaYOaC2JGXR+r9SK69WzYFmf829JNNWBEjsmquM x3j1HkIbcJooGehnt8eT99+jEaysZvPT6Ru9eGNHrU3a4zOzWunDyQ4h0QEDzSkzyUh+ ROBg== X-Gm-Message-State: AOAM533nQLDRshGlWoxUIolC6TENQjWLmiks+S9nxZtmThL78iotioDQ 9uAAOaNL4nPD/9mT0maMOrwNkdoS0VHuSrylCo9dT6IzL8RKcjAesJuqrtFeoUZ6Vl0/zlogtAv mgsQKCHQqGvdvs0mOAnqV7yrY X-Received: by 2002:adf:a505:: with SMTP id i5mr6046591wrb.38.1634211234550; Thu, 14 Oct 2021 04:33:54 -0700 (PDT) X-Received: by 2002:adf:a505:: with SMTP id i5mr6046567wrb.38.1634211234282; Thu, 14 Oct 2021 04:33:54 -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 n1sm7768996wmi.30.2021.10.14.04.33.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 14 Oct 2021 04:33:53 -0700 (PDT) Message-ID: <31430671-292b-f55d-a971-748d4bc775f1@redhat.com> Date: Thu, 14 Oct 2021 13:33:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.0 Subject: Re: [patch 13/31] x86/fpu: Move KVMs FPU swapping to FPU core Content-Language: en-US To: "Liu, Jing2" , Thomas Gleixner , LKML Cc: "x86@kernel.org" , "Bae, Chang Seok" , Dave Hansen , Arjan van de Ven , "kvm@vger.kernel.org" , "Nakajima, Jun" , Jing Liu , "seanjc@google.com" , "Cooper, Andrew" References: <871r4p9fyh.ffs@tglx> <6bbc5184-a675-1937-eb98-639906a9cf15@redhat.com> From: Paolo Bonzini In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 14/10/21 13:21, Liu, Jing2 wrote: > Got it, the principle is once XCR0[n]=1 and XFD[n]=0, then guest is allowed > to use the dynamic XSAVE state, thus KVM must prepare all things well > before. This probably happens shortly after guest #NM. > > Only one thing: it seems we assume that vcpu->arch.xfd is guest runtime > value. And before guest initializes XFD, KVM provides > vcpu->arch.xfd[18]=1, right? But the spec asks XFD reset value as zero. > If so, between guest init XCR0 to 1 and init XFD to 1, it's XCR0[n]=1 and > XFD[n]=0. If a guest never init XFD and directly use dynamic state... > > Or do we want to provide guest a XFD[18]=1 value at the very beginning? On reset the guest value has to be zero. For Linux, which we control, we probably want to write the bit in XFD before XSETBV. For other OSes there's nothing we can do, but hopefully they make similar considerations. Paolo