Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp5152272iog; Wed, 22 Jun 2022 13:10:36 -0700 (PDT) X-Google-Smtp-Source: AGRyM1u3htFOG7r5Q2FcKUZAOLKISpjO8TbQJd0GILXFLUP3ut6efGJfFcAj6BgesgyWwUp97ako X-Received: by 2002:a17:907:da0:b0:722:c42e:25b9 with SMTP id go32-20020a1709070da000b00722c42e25b9mr4774405ejc.260.1655928635931; Wed, 22 Jun 2022 13:10:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655928635; cv=none; d=google.com; s=arc-20160816; b=MzH25VQHc6JvgDbexT2uVih9beopi5AkiYJVqw8eAoExzCUagEReFiXu3HmFmvpE3N eFAPtfZI6Sd6vvldy1xfz9kOBnYgFyphIdTgo4crawKZs+zHqOnKufG85krKeXy06dvk rQbq2jSH3VwnJMbJ7ndDnV13ZqBHlxlW1pBtYCVgeLHBEgnCHTNBwMKCX7ZAouGRkssA Jh6fd6hT2pSvVxD8HdytfvV7ClH702FDRE69oaEsdUIYms3IupGZZRPbEJ71PFsKjEOE v+LXojXqcAMHLmxgZ6G8Xr9mc8IlEdgabjN1GJ+G8RioJ3a1p4brK6FMi7M5Ay+RLAW0 ZtrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=NFbRch3MP4oYfAdvYfvFh8xRiPwpBI5r6t1BeeKJjDI=; b=GeovEJ6GuBM7BqgI7WUwrX2LGXA718oXGEAUdAiHDiD/BcVCEr49xWqTWH2wMrQMLW eNt+t1oV/1PBilHhdPGYhiRPIpuWLdN9lqzIJdfXjLca9ekQcj/exwd5snoejEPfFmGJ AwCC5PNL80ta0FEufOC99BH3l7Id9jZr23y9soWim7ocCOFvjld/IAlhmNHm8nOwgY1w PNfGrDI7hmXfmGwEL5A8J8O1VDxsO6MRuqFhl80E2PKLH4wFQ7oWavkB+L4fsfkSwh/A 4nVU3FI6bX2QZ/Z6VOi7CnHhDZyZdOhJFwnyqJa6IygzfyFZKmDrxCpimCt/ZtlYF9hH FcIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=UzPfjg3U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s3-20020a17090699c300b00711f5622a37si21355264ejn.242.2022.06.22.13.10.07; Wed, 22 Jun 2022 13:10:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=UzPfjg3U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358763AbiFVTej (ORCPT + 99 others); Wed, 22 Jun 2022 15:34:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43978 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358962AbiFVTeE (ORCPT ); Wed, 22 Jun 2022 15:34:04 -0400 Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8AAB03DDC4 for ; Wed, 22 Jun 2022 12:33:45 -0700 (PDT) Received: by mail-lf1-x135.google.com with SMTP id c4so29449068lfj.12 for ; Wed, 22 Jun 2022 12:33:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=NFbRch3MP4oYfAdvYfvFh8xRiPwpBI5r6t1BeeKJjDI=; b=UzPfjg3Uhny7RcirHKXTpM6X1BLTfbOJLhkHD4gGRWY0a0tN5rFpv5odkr4cWEwqc9 +BpnwLCdTfIKXBzH3Oqa/vnt5dxjVrC1sSX6pk94EZgY6RyhOwotmjRHUW5N2F8QBBKQ aHZRW5feO56dfBhra30Q3llLrK+qx0uQEiNGMLmCPxwaHfdIs9hzkre63BMLikRjbBGm 8GARYSOusQ7rMBtubyguN+EQVaGXKSwVm9udIECZQ8Yuq2dmzv12lUKqlF8MQQU1NOPV 9ARpkQMiexdqxfXbKQzuZphHMVhVN5OyQNSj16EpbExLMYi2j+4qRirHRTE9fv7WqEm/ Tipw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=NFbRch3MP4oYfAdvYfvFh8xRiPwpBI5r6t1BeeKJjDI=; b=SVtTtqzoN7s2PiAVSh0fWMagU7yZ2F7AKAbx9tfHR0QeGvh8scsbSzf2OhuFvK1aNK ViWBjZrUYqcFQawUxOUZSNDENvk3pnc8Gm2oNYq/ejE74KB424lWAYcy680x6q2jpxQ2 qZ5Nqn4u+tl7l56gDQnjjUuZllqvhXYVN5YyISD/uUdcRdgoL+HftSAzqs/REOnCluWx /0x2a4w78XHYyHFMoQSAwBjf2Lx0DemYBMpu5465ReWiy+/5Z/FsKAggJ/eQm11iumnf IPAlI2QeFEPhoMUCmDhB+DO96jxUt/hlIyUoHRMLrwlwxP3GNT2EgL9lFewRXkbHsrkW b9pQ== X-Gm-Message-State: AJIora98eie6wmiJNtAW+Lb0Vh+SS+xOuPiP9nWCAez6Ic+nZau3yBYE +e1xwWgtJ6QmGjG1fSH/0G530PLYs3W1i/O3Kr10Ow== X-Received: by 2002:a19:6449:0:b0:47f:86b3:f87b with SMTP id b9-20020a196449000000b0047f86b3f87bmr3043737lfj.644.1655926423674; Wed, 22 Jun 2022 12:33:43 -0700 (PDT) MIME-Version: 1.0 References: <20220617195141.2866706-1-pgonda@google.com> In-Reply-To: From: Peter Gonda Date: Wed, 22 Jun 2022 13:33:32 -0600 Message-ID: Subject: Re: [PATCH] KVM: SEV: Init target VMCBs in sev_migrate_from To: Sean Christopherson Cc: kvm list , Marc Orr , Paolo Bonzini , Tom Lendacky , LKML Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > > > > +void sev_init_vmcb(struct vcpu_svm *svm) > > +{ > > + svm->vmcb->control.nested_ctl |= SVM_NESTED_CTL_SEV_ENABLE; > > + clr_exception_intercept(svm, UD_VECTOR); > > I don't love separating SEV and SEV-ES VMCB initialization, especially since they're > both doing RMW operations and not straight writes. E.g. migration ends up reversing > the order between the two relatively to init_vmcb(). That's just asking for a subtle > bug to be introduced that affects only due to the ordering difference. > > What about using common top-level flows for SEV and SEV-ES so that the sequencing > between SEV and SEV-ES is more rigid? The resulting sev_migrate_from() is a little > gross, but IMO it's worth having a fixed sequence, and the flip side to the ugliness > it that it documents some of the differences between SEV and SEV-ES migration. Thanks for the suggestion Sean! I like your suggestion here. I'll test it out, clean it up and send it out as V2. I think the distinction between SEV and SEV-ES migration was largely due to how I split up the set of patches that enabled this feature.