All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kai Huang <kai.huang@intel.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Dave Hansen <dave.hansen@intel.com>,
	Sathyanarayanan Kuppuswamy 
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, "H . Peter Anvin" <hpa@zytor.com>,
	Tony Luck <tony.luck@intel.com>, Andi Kleen <ak@linux.intel.com>,
	Wander Lairson Costa <wander@redhat.com>,
	Isaku Yamahata <isaku.yamahata@gmail.com>,
	marcelo.cerri@canonical.com, tim.gardner@canonical.com,
	khalid.elmously@canonical.com, philip.cox@canonical.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 3/3] x86/tdx: Add Quote generation support
Date: Tue, 10 May 2022 22:42:10 +1200	[thread overview]
Message-ID: <690ae2cb2099ac3e13c3da530a1b4a4eb5bafc5a.camel@intel.com> (raw)
In-Reply-To: <75d4755c9a376df2e98a267e10e60da3bd178b17.camel@intel.com>

On Tue, 2022-05-10 at 11:54 +1200, Kai Huang wrote:
> On Mon, 2022-05-09 at 15:09 +0300, Kirill A. Shutemov wrote:
> > On Mon, May 09, 2022 at 03:37:22PM +1200, Kai Huang wrote:
> > > On Sat, 2022-05-07 at 03:42 +0300, Kirill A. Shutemov wrote:
> > > > On Fri, May 06, 2022 at 12:11:03PM +1200, Kai Huang wrote:
> > > > > Kirill, what's your opinion?
> > > > 
> > > > I said before that I think DMA API is the right tool here.
> > > > 
> > > > Speculation about future of DMA in TDX is irrelevant here. If semantics
> > > > change we will need to re-evaluate all users. VirtIO uses DMA API and it
> > > > is conceptually the same use-case: communicate with the host.
> > > 
> > > Virtio is designed for device driver to use, so it's fine to use DMA API. And
> > > real DMA can happen to the virtio DMA buffers.  Attestation doesn't have such
> > > assumption.
> > 
> > Whether attestation driver uses struct device is implementation detail.
> > I don't see what is you point.
> 
> No real DMA is involved in attestation.
> 
> > 
> > > So I don't see why TD guest kernel cannot have a simple protocol to vmap() a
> > > page (or couple of pages) as shared on-demand, like below:
> > > 
> > > 	page = alloc_page();
> > > 
> > > 	addr = vmap(page,  pgprot_decrypted(PAGE_KERNEL));
> > > 
> > > 	clflush_cache_range(page_address(page), PAGE_SIZE);
> > > 
> > > 	MapGPA(page_to_phys(page) | cc_mkdec(0), PAGE_SIZE);
> > > 
> > > And we can even avoid above clflush_cache_range() if I understand correctly.
> > > 
> > > Or  I missed something?
> > 
> > For completeness, cover free path too. Are you going to opencode page
> > accept too?
> 
> Call __tdx_module_call(TDX_ACCEPT_PAGE, ...) right after MapGPA() to convert
> back to private.  I don't think there is any problem?
> 
> > 
> > Private->Shared conversion is destructive. You have to split SEPT, flush
> > TLB. Backward conversion even more costly.
> 
> I think I won't call it destructive.
> 
> And I suggested before, we can allocate a default size buffer (i.e. 4 pages),
> which is large enough to cover all requests for now, during driver
> initialization.  This avoids IOCTL time conversion.  We should still have code
> in the IOCTL to check the request buffer size and when it is larger than the
> default, the old should be freed a larger one should be allocated.  But for now
> this code path will never happen.
> 
> Btw above is based on assumption that we don't support concurrent IOCTLs.  This
> version Sathya somehow changed to support concurrent IOCTLs but this was a
> surprise as I thought we somehow agreed we don't need to support this.

Hi Dave,

Sorry I forgot to mention that GHCI 1.5 defines a generic TDVMCALL<Service> for
a TD to communicate with VMM or another TD or some service in the host.  This
TDVMCALL can support many sub-commands.  For now only sub-commands for TD
migration is defined, but we can have more.

For this, we cannot assume the size of the command buffer, and I don't see why
we don't want to support concurrent TDVMCALLs.  So looks from long term, we will
very likely need IOCTL time buffer private-shared conversion.


-- 
Thanks,
-Kai



  parent reply	other threads:[~2022-05-10 10:42 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-01 18:34 [PATCH v5 0/3] Add TDX Guest Attestation support Kuppuswamy Sathyanarayanan
2022-05-01 18:34 ` [PATCH v5 1/3] x86/tdx: Add TDX Guest attestation interface driver Kuppuswamy Sathyanarayanan
2022-05-02  2:31   ` Kai Huang
2022-05-02 15:52     ` Sathyanarayanan Kuppuswamy
2022-05-02 22:30       ` Kai Huang
2022-05-02 23:17         ` Sathyanarayanan Kuppuswamy
2022-05-02 23:37           ` Kai Huang
2022-05-03 14:38           ` Wander Costa
2022-05-03 15:09             ` Sathyanarayanan Kuppuswamy
2022-05-03 22:08               ` Kai Huang
2022-05-02 12:18   ` Wander Lairson Costa
2022-05-02 16:06     ` Sathyanarayanan Kuppuswamy
2022-05-01 18:34 ` [PATCH v5 2/3] x86/tdx: Add TDX Guest event notify interrupt support Kuppuswamy Sathyanarayanan
2022-05-02 12:44   ` Wander Lairson Costa
2022-05-01 18:35 ` [PATCH v5 3/3] x86/tdx: Add Quote generation support Kuppuswamy Sathyanarayanan
2022-05-02  2:40   ` Kai Huang
2022-05-03  1:27     ` Kirill A. Shutemov
2022-05-03  2:18       ` Kai Huang
2022-05-03  2:39         ` Sathyanarayanan Kuppuswamy
2022-05-03 22:13           ` Kai Huang
2022-05-03  2:45         ` Kirill A. Shutemov
2022-05-03  3:36           ` Kai Huang
2022-05-03 22:24       ` Dave Hansen
2022-05-03 22:28         ` Sathyanarayanan Kuppuswamy
2022-05-03 22:30           ` Sathyanarayanan Kuppuswamy
2022-05-04 22:49         ` Sathyanarayanan Kuppuswamy
2022-05-04 23:28           ` Kai Huang
2022-05-05 20:53             ` Sathyanarayanan Kuppuswamy
2022-05-05 22:15               ` Kai Huang
2022-05-05 22:38                 ` Sathyanarayanan Kuppuswamy
2022-05-05 23:06                 ` Dave Hansen
2022-05-06  0:11                   ` Kai Huang
2022-05-06  1:55                     ` Sathyanarayanan Kuppuswamy
2022-05-07  0:42                     ` Kirill A. Shutemov
2022-05-09  3:37                       ` Kai Huang
2022-05-09 12:09                         ` Kirill A. Shutemov
2022-05-09 14:14                           ` Dave Hansen
2022-05-09 15:35                             ` Kirill A. Shutemov
2022-05-09 15:43                               ` Sathyanarayanan Kuppuswamy
2022-05-09 23:54                           ` Kai Huang
2022-05-10  0:17                             ` Sathyanarayanan Kuppuswamy
2022-05-10  1:30                             ` Kirill A. Shutemov
2022-05-10  1:40                               ` Kai Huang
2022-05-10 10:42                             ` Kai Huang [this message]
2022-05-16 17:39                               ` Sathyanarayanan Kuppuswamy
2022-05-06 11:00                   ` Kai Huang
2022-05-06 15:47                     ` Dave Hansen
2022-05-07  1:00                     ` Kirill A. Shutemov
2022-05-05 10:50           ` Kai Huang
2022-05-05 19:03             ` Sathyanarayanan Kuppuswamy
2022-05-05 22:25               ` Kai Huang
2022-05-02  5:01   ` Kai Huang
2022-05-02 16:02     ` Sathyanarayanan Kuppuswamy
2022-05-02 23:02       ` Kai Huang
2022-05-02 13:16   ` Wander Lairson Costa
2022-05-02 16:05     ` Sathyanarayanan Kuppuswamy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=690ae2cb2099ac3e13c3da530a1b4a4eb5bafc5a.camel@intel.com \
    --to=kai.huang@intel.com \
    --cc=ak@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=isaku.yamahata@gmail.com \
    --cc=khalid.elmously@canonical.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kirill@shutemov.name \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo.cerri@canonical.com \
    --cc=mingo@redhat.com \
    --cc=philip.cox@canonical.com \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=tglx@linutronix.de \
    --cc=tim.gardner@canonical.com \
    --cc=tony.luck@intel.com \
    --cc=wander@redhat.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.