From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4FE0C433E0 for ; Mon, 8 Feb 2021 19:03:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9457564E59 for ; Mon, 8 Feb 2021 19:03:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233586AbhBHTDc (ORCPT ); Mon, 8 Feb 2021 14:03:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54718 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233156AbhBHRf5 (ORCPT ); Mon, 8 Feb 2021 12:35:57 -0500 Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BCAF8C06178C for ; Mon, 8 Feb 2021 09:35:16 -0800 (PST) Received: by mail-ej1-x629.google.com with SMTP id w1so26169710ejf.11 for ; Mon, 08 Feb 2021 09:35:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amacapital-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=rk8hBnqzSk8IKdehPpMR21St3g94W00HJk2pGpZRlUM=; b=QhTtHeK4ZKTuLys3oD1ge2sDBy25LyBIlEb6rq0+qySZxVVbbXsJAxCtEVCdDmMTl4 xJGa8G4tHKClDCp26tjcgxYm16FeSmIpK+4i7WHnI+XE2uRBwY0lYjXSuIas/15OJt6j tIaPvQ+/kTOaDd6ZYQOevDvu8PIBU5OsbEXiL+XEEoZlk0H5Km4oZlZ51d3LwmbPqOAi fewTdelXJC8xS93sqoBs4f0d5De8Hp3x5fJ3xy3+1KeEA1XlNY3DWze+W2pUDB/pqWKj kEl1d/WXeDsRXO5mwXmwG6lR+EQfdrduR1Jfe6cw09ilje/B1akvhfFbAB6ZXDVhcgaT HS3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rk8hBnqzSk8IKdehPpMR21St3g94W00HJk2pGpZRlUM=; b=O9hD+/gIlUJbQc+d7yk09WIWZ/u4hYagwsRwI2fEFJ7/W1hRTRk1qiYVLRI7rGRYL+ 3SDvh3WHYKxjK9svL5nV1WVNcJsJuIg+VOUQC5EkrmxIcPtSgBSSWM4UtZcgXr6+lki8 UPpasB1yWQpsJaJWJYp+ZrhTVf6iKsc+0rJnjGNSoTMGns88qHiuYlXdguxTdWyKWlxc n1xlEGPKMiVsjHrwNr+1pNWA3TkqJo9JkT4+d7sX5Ybd6HuRs9M4hvdt1yWok7U3Z8hC lhllKVcT+naU3SwXls9WAfRsatP0YPyHRQ8HWaCgohzLrJY2BAVwOkFPh6mmVVD5/j/G hvpA== X-Gm-Message-State: AOAM530FU1kLysSq/CFyka5ghKhq83GZ8SltkAYTvbkDtALHQV7fR4tU MoHQYg82Pb6j1VXpYX+1STUA+ReK/kpmQBC0VwAttA== X-Google-Smtp-Source: ABdhPJztUCCKCvHw2ApoSKFKrVrK62dPz1Txw2JJsmk5m6cJ/R0froV9I9Y/DbVNUnQzMb7w2imKagFhA3Eejldzgho= X-Received: by 2002:a17:906:24d1:: with SMTP id f17mr17887566ejb.503.1612805715256; Mon, 08 Feb 2021 09:35:15 -0800 (PST) MIME-Version: 1.0 References: <0A886D87-1979-419C-86DE-EA2FABDFF3EB@amacapital.net> In-Reply-To: From: Andy Lutomirski Date: Mon, 8 Feb 2021 09:35:03 -0800 Message-ID: Subject: Re: [RFC v1 09/26] x86/tdx: Handle CPUID via #VE To: Sean Christopherson Cc: Dave Hansen , "Kirill A. Shutemov" , Andy Lutomirski , Kuppuswamy Sathyanarayanan , Peter Zijlstra , Andi Kleen , Kirill Shutemov , Kuppuswamy Sathyanarayanan , Dan Williams , Raj Ashok , LKML Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Feb 8, 2021 at 9:11 AM Sean Christopherson wrote: > > On Sun, Feb 07, 2021, Andy Lutomirski wrote: > > > > How much of the register state is revealed to the VMM when we do a TDVMCALL? > > Presumably we should fully sanitize all register state that shows up in > > cleartext on the other end, and we should treat all regs that can be modified > > by the VMM as clobbered. > > The guest gets to choose, with a few restrictions. RSP cannot be exposed to the > host. RAX, RCX, R10, and R11 are always exposed as they hold mandatory info > about the TDVMCALL (TDCALL fn, GPR mask, GHCI vs. vendor, and TDVMCALL fn). All > other GPRs are exposed and clobbered if their bit in RCX is set, otherwise they > are saved/restored by the TDX-Module. > > I agree with Dave, pass everything required by the GHCI in the main routine, and > sanitize and save/restore all such GPRs. Sounds okay to me.