All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Hofmann <sebastian@kaemmelot.de>
To: Jason Wang <jasowang@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>
Cc: virtualization@lists.linux-foundation.org
Subject: Re: [PATCH] virtio_ring: use DMA when memory encryption is active
Date: Fri, 23 Oct 2020 12:55:57 +0200 (CEST)	[thread overview]
Message-ID: <1556371108.50676.1603450557595@office.mailbox.org> (raw)
In-Reply-To: <ea4d2c99-1c67-797d-29dc-d122e4856d24@redhat.com>


> Jason Wang <jasowang@redhat.com> hat am 23.10.2020 11:10 geschrieben:
> 
>  
> On 2020/10/23 下午5:00, Sebastian Hofmann wrote:
> >> Michael S. Tsirkin <mst@redhat.com> hat am 22.10.2020 13:39 geschrieben:
> >>
> >>   
> >> On Wed, Oct 21, 2020 at 05:14:25PM +0200, Sebastian Hofmann wrote:
> >>> virtio_ring does not work with active memory encryption because the host cannot read it. Fix this by enforcing the use of DMA which uses shared (unencrypted) memory pages.
> >>>
> >>> Signed-off-by: Sebastian Hofmann <sebastian@kaemmelot.de>
> >>
> >> Sorry, no.
> >> host which can not access all of driver memory must set VIRTIO_F_ACCESS_PLATFORM.
> >>
> >> Not worth it to work around broken hosts.
> >>
> >> Xen is an exception we carry around since it predates the
> >> introduction of VIRTIO_F_ACCESS_PLATFORM.
> >>
> >>
> > Thanks for pointing out VIRTIO_F_ACCESS_PLATFORM which I was not aware of. Maybe that patch was a bit naïve.
> >
> > Basically I'm looking for a way to use vsock with qemu on AMD SEV. When I try to use IOMMU for vsock I get an EOPNOTSUPP out of vhost_vsock_set_features.
> >
> > Is there a reason why vhost_vsock_set_features doesn't use vhost_init_device_iotlb as done in the net device?
> 
> 
> It's just because it has been implemented. In addition to implement 
> IOTLB, the virtio-vsock-pci must advertise ATS capability as well.
> 
> 
> > Because that would have been my next attempt.
> > I would appreciate a short comment on this idea or a recommendation for another solution that is better than the patch below.
> 
> 
> A question, is vIOMMU a must for making SEV work?

Based on the demo code from AMD where they just use "-device virtio-scsi-pci,id=scsi,disable-legacy=on,iommu_platform=true" and my understanding of IOMMU: no, I don't think so.

The ATS capability is only required for vIOMMU, right?

> 
> Thanks
> 
> 
> >
> >>> ---
> >>>   drivers/virtio/virtio_ring.c | 5 +++++
> >>>   1 file changed, 5 insertions(+)
> >>>
> >>> diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
> >>> index becc77697960..8c68c475ec21 100644
> >>> --- a/drivers/virtio/virtio_ring.c
> >>> +++ b/drivers/virtio/virtio_ring.c
> >>> @@ -12,6 +12,7 @@
> >>>   #include <linux/hrtimer.h>
> >>>   #include <linux/dma-mapping.h>
> >>>   #include <xen/xen.h>
> >>> +#include <linux/mem_encrypt.h>
> >>>   
> >>>   #ifdef DEBUG
> >>>   /* For development, we want to crash whenever the ring is screwed. */
> >>> @@ -255,6 +256,10 @@ static bool vring_use_dma_api(struct virtio_device *vdev)
> >>>   	if (xen_domain())
> >>>   		return true;
> >>>   
> >>> +	/* Memory encryption requires DMA */
> >>> +	if (mem_encrypt_active())
> >>> +		return true;
> >>> +
> >>>   	return false;
> >>>   }
> >>>   
> >>> -- 
> >>> 2.25.1
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

  reply	other threads:[~2020-10-23 10:56 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1075010014.50900.1603293266000@office.mailbox.org>
2020-10-22 11:39 ` [PATCH] virtio_ring: use DMA when memory encryption is active Michael S. Tsirkin
2020-10-23  9:00   ` Sebastian Hofmann
2020-10-23  9:10     ` Jason Wang
2020-10-23 10:55       ` Sebastian Hofmann [this message]
2020-10-26  3:13         ` Jason Wang
2020-10-23 15:49     ` Michael S. Tsirkin
2020-10-24 10:19       ` Sebastian Hofmann

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=1556371108.50676.1603450557595@office.mailbox.org \
    --to=sebastian@kaemmelot.de \
    --cc=jasowang@redhat.com \
    --cc=mst@redhat.com \
    --cc=virtualization@lists.linux-foundation.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.