RE: [RFC v2 1/2] powerpc/pseries/iommu: Share the per-cpu TCE page with the hypervisor.

From: Ram Pai
Date: Mon Nov 11 2019 - 20:16:44 EST


On Sun, Nov 10, 2019 at 07:40:06PM +0000, David Gibson wrote:
> On Fri, Nov 08, 2019 at 03:00:10PM -0800, Ram Pai wrote:
> > The hypervisor needs to access the contents of the page holding the TCE
> > entries while setting up the TCE entries in the IOMMU's TCE table.
> >
> > For SecureVMs, since this page is encrypted, the hypervisor cannot
> > access valid entries. Share the page with the hypervisor. This ensures
> > that the hypervisor sees those valid entries.
> >
> > Why is this safe?
> > The page contains only TCE entries; not any sensitive data
> > belonging to the Secure VM. The hypervisor has a genuine need to know
> > the value of the TCE entries, without which it will not be able to
> > DMA to/from the pages pointed to by the TCE entries. In a Secure
> > VM the TCE entries point to pages that are also shared with the
> > hypervisor; example: pages containing bounce buffers.
>
> The bit that may not be obvious to reviewers from the above is this:
>
> This is *not* a page of "live" TCEs which are actively used for
> translation. Instead this is just a transient buffer with a batch of
> TCEs to set, passed to the hypervisor with the H_PUT_TCE_INDIRECT call.


That is true. I should have stated that explicitly. Thanks. will
update the commit log.


RP