All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] virtio_ring: Use DMA API if guest memory is encrypted
@ 2019-01-29 17:08 ` Thiago Jung Bauermann
  0 siblings, 0 replies; 198+ messages in thread
From: Thiago Jung Bauermann @ 2019-01-29 17:08 UTC (permalink / raw)
  To: virtualization
  Cc: linuxppc-devel, iommu, linux-kernel, Michael S . Tsirkin,
	Jason Wang, Christoph Hellwig, David Gibson,
	Alexey Kardashevskiy, Paul Mackerras, Benjamin Herrenschmidt,
	Ram Pai


Hello,

With Christoph's rework of the DMA API that recently landed, the patch
below is the only change needed in virtio to make it work in a POWER
secure guest under the ultravisor.

The other change we need (making sure the device's dma_map_ops is NULL
so that the dma-direct/swiotlb code is used) can be made in
powerpc-specific code.

Of course, I also have patches (soon to be posted as RFC) which hook up
<linux/mem_encrypt.h> to the powerpc secure guest support code.

What do you think?

From d0629a36a75c678b4a72b853f8f7f8c17eedd6b3 Mon Sep 17 00:00:00 2001
From: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Date: Thu, 24 Jan 2019 22:08:02 -0200
Subject: [RFC PATCH] virtio_ring: Use DMA API if guest memory is encrypted

The host can't access the guest memory when it's encrypted, so using
regular memory pages for the ring isn't an option. Go through the DMA API.

Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
---
 drivers/virtio/virtio_ring.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index cd7e755484e3..321a27075380 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -259,8 +259,11 @@ static bool vring_use_dma_api(struct virtio_device *vdev)
 	 * not work without an even larger kludge.  Instead, enable
 	 * the DMA API if we're a Xen guest, which at least allows
 	 * all of the sensible Xen configurations to work correctly.
+	 *
+	 * Also, if guest memory is encrypted the host can't access
+	 * it directly. In this case, we'll need to use the DMA API.
 	 */
-	if (xen_domain())
+	if (xen_domain() || sev_active())
 		return true;

 	return false;


^ permalink raw reply related	[flat|nested] 198+ messages in thread
* [RFC PATCH] virtio_ring: Use DMA API if guest memory is encrypted
@ 2019-01-29 17:08 Thiago Jung Bauermann
  0 siblings, 0 replies; 198+ messages in thread
From: Thiago Jung Bauermann @ 2019-01-29 17:08 UTC (permalink / raw)
  To: virtualization
  Cc: Michael S . Tsirkin, Benjamin Herrenschmidt,
	Alexey Kardashevskiy, Ram Pai, linux-kernel, Paul Mackerras,
	iommu, linuxppc-devel, Christoph Hellwig, David Gibson


Hello,

With Christoph's rework of the DMA API that recently landed, the patch
below is the only change needed in virtio to make it work in a POWER
secure guest under the ultravisor.

The other change we need (making sure the device's dma_map_ops is NULL
so that the dma-direct/swiotlb code is used) can be made in
powerpc-specific code.

Of course, I also have patches (soon to be posted as RFC) which hook up
<linux/mem_encrypt.h> to the powerpc secure guest support code.

What do you think?

From d0629a36a75c678b4a72b853f8f7f8c17eedd6b3 Mon Sep 17 00:00:00 2001
From: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Date: Thu, 24 Jan 2019 22:08:02 -0200
Subject: [RFC PATCH] virtio_ring: Use DMA API if guest memory is encrypted

The host can't access the guest memory when it's encrypted, so using
regular memory pages for the ring isn't an option. Go through the DMA API.

Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
---
 drivers/virtio/virtio_ring.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index cd7e755484e3..321a27075380 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -259,8 +259,11 @@ static bool vring_use_dma_api(struct virtio_device *vdev)
 	 * not work without an even larger kludge.  Instead, enable
 	 * the DMA API if we're a Xen guest, which at least allows
 	 * all of the sensible Xen configurations to work correctly.
+	 *
+	 * Also, if guest memory is encrypted the host can't access
+	 * it directly. In this case, we'll need to use the DMA API.
 	 */
-	if (xen_domain())
+	if (xen_domain() || sev_active())
 		return true;

 	return false;

^ permalink raw reply related	[flat|nested] 198+ messages in thread

end of thread, other threads:[~2019-09-06  5:08 UTC | newest]

Thread overview: 198+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-29 17:08 [RFC PATCH] virtio_ring: Use DMA API if guest memory is encrypted Thiago Jung Bauermann
2019-01-29 17:08 ` Thiago Jung Bauermann
2019-01-29 17:42 ` Thiago Jung Bauermann
2019-01-29 17:42   ` Thiago Jung Bauermann
2019-01-29 19:02   ` Michael S. Tsirkin
2019-01-29 19:02     ` Michael S. Tsirkin
2019-01-30  2:24     ` Jason Wang
2019-01-30  2:24       ` Jason Wang
2019-01-30  2:36       ` Michael S. Tsirkin
2019-01-30  2:36       ` Michael S. Tsirkin
2019-01-30  2:36         ` Michael S. Tsirkin
2019-01-30  3:05         ` Jason Wang
2019-01-30  3:05         ` Jason Wang
2019-01-30  3:05           ` Jason Wang
2019-01-30  3:26           ` Michael S. Tsirkin
2019-01-30  3:26           ` Michael S. Tsirkin
2019-01-30  3:26             ` Michael S. Tsirkin
2019-01-30  7:44         ` Christoph Hellwig
2019-01-30  7:44         ` Christoph Hellwig
2019-01-30  7:44           ` Christoph Hellwig
2019-02-04 18:15           ` Thiago Jung Bauermann
2019-02-04 18:15           ` Thiago Jung Bauermann
2019-02-04 18:15             ` Thiago Jung Bauermann
2019-02-04 21:38             ` Michael S. Tsirkin
2019-02-04 21:38               ` Michael S. Tsirkin
2019-02-05  7:24               ` Christoph Hellwig
2019-02-05  7:24                 ` Christoph Hellwig
2019-02-05 16:13                 ` Michael S. Tsirkin
2019-02-05 16:13                 ` Michael S. Tsirkin
2019-02-05 16:13                   ` Michael S. Tsirkin
2019-02-05 16:13                   ` Michael S. Tsirkin
2019-02-05  7:24               ` Christoph Hellwig
2019-02-04 21:38             ` Michael S. Tsirkin
2019-03-26 16:53           ` Michael S. Tsirkin
2019-03-26 16:53           ` Michael S. Tsirkin
2019-03-26 16:53             ` Michael S. Tsirkin
2019-01-30  2:24     ` Jason Wang
2019-02-04 18:14     ` Thiago Jung Bauermann
2019-02-04 18:14     ` Thiago Jung Bauermann
2019-02-04 18:14       ` Thiago Jung Bauermann
2019-02-04 20:23       ` Michael S. Tsirkin
2019-02-04 20:23         ` Michael S. Tsirkin
2019-03-20 16:13         ` Thiago Jung Bauermann
2019-03-20 16:13           ` Thiago Jung Bauermann
2019-03-20 16:13           ` Thiago Jung Bauermann
2019-03-20 21:17           ` Michael S. Tsirkin
2019-03-20 21:17           ` Michael S. Tsirkin
2019-03-20 21:17             ` Michael S. Tsirkin
2019-03-22  0:05             ` Thiago Jung Bauermann
2019-03-22  0:05             ` Thiago Jung Bauermann
2019-03-22  0:05               ` Thiago Jung Bauermann
2019-03-23 21:01               ` Michael S. Tsirkin
2019-03-23 21:01                 ` Michael S. Tsirkin
2019-03-23 21:01                 ` Michael S. Tsirkin
2019-03-25  0:57                 ` David Gibson
2019-03-25  0:57                   ` David Gibson
2019-03-25  0:57                   ` David Gibson
2019-04-17 21:42                   ` Thiago Jung Bauermann
2019-04-17 21:42                     ` Thiago Jung Bauermann
2019-04-17 21:42                     ` Thiago Jung Bauermann
2019-04-17 21:42                     ` Thiago Jung Bauermann
2019-04-17 21:42                 ` Thiago Jung Bauermann
2019-04-17 21:42                 ` Thiago Jung Bauermann
2019-04-17 21:42                   ` Thiago Jung Bauermann
2019-04-17 21:42                   ` Thiago Jung Bauermann
2019-04-17 21:42                   ` Thiago Jung Bauermann
2019-04-19 23:09                   ` Michael S. Tsirkin
2019-04-19 23:09                   ` Michael S. Tsirkin
2019-04-19 23:09                     ` Michael S. Tsirkin
2019-04-19 23:09                     ` Michael S. Tsirkin
2019-04-25  1:01                     ` Thiago Jung Bauermann
2019-04-25  1:01                       ` Thiago Jung Bauermann
2019-04-25  1:01                       ` Thiago Jung Bauermann
2019-04-25  1:18                       ` Michael S. Tsirkin
2019-04-25  1:18                       ` Michael S. Tsirkin
2019-04-25  1:18                         ` Michael S. Tsirkin
2019-04-25  1:18                         ` Michael S. Tsirkin
2019-04-25  1:18                         ` Michael S. Tsirkin
2019-04-26 23:56                         ` Thiago Jung Bauermann
2019-04-26 23:56                         ` Thiago Jung Bauermann
2019-04-26 23:56                           ` Thiago Jung Bauermann
2019-04-26 23:56                           ` Thiago Jung Bauermann
2019-05-20 13:08                           ` Michael S. Tsirkin
2019-05-20 13:08                             ` Michael S. Tsirkin
2019-05-20 13:08                             ` Michael S. Tsirkin
2019-05-20 13:08                             ` Michael S. Tsirkin
2019-04-25  1:01                     ` Thiago Jung Bauermann
2019-05-20 13:16                   ` Michael S. Tsirkin
2019-05-20 13:16                   ` Michael S. Tsirkin
2019-05-20 13:16                     ` Michael S. Tsirkin
2019-05-20 13:16                     ` Michael S. Tsirkin
2019-06-04  1:13                     ` Thiago Jung Bauermann
2019-06-04  1:13                       ` Thiago Jung Bauermann
2019-06-04  1:13                       ` Thiago Jung Bauermann
2019-06-04  1:42                       ` Michael S. Tsirkin
2019-06-04  1:42                         ` Michael S. Tsirkin
2019-06-04  1:42                         ` Michael S. Tsirkin
2019-06-04  1:42                         ` Michael S. Tsirkin
2019-06-28  1:58                         ` Thiago Jung Bauermann
2019-06-28  1:58                         ` Thiago Jung Bauermann
2019-06-28  1:58                           ` Thiago Jung Bauermann
2019-06-28  1:58                           ` Thiago Jung Bauermann
2019-07-01 14:17                           ` Michael S. Tsirkin
2019-07-01 14:17                           ` Michael S. Tsirkin
2019-07-01 14:17                             ` Michael S. Tsirkin
2019-07-01 14:17                             ` Michael S. Tsirkin
2019-07-14  5:51                             ` Thiago Jung Bauermann
2019-07-14  5:51                             ` Thiago Jung Bauermann
2019-07-14  5:51                               ` Thiago Jung Bauermann
2019-07-14  5:51                               ` Thiago Jung Bauermann
2019-07-15 14:35                               ` Michael S. Tsirkin
2019-07-15 14:35                               ` Michael S. Tsirkin
2019-07-15 14:35                                 ` Michael S. Tsirkin
2019-07-15 14:35                                 ` Michael S. Tsirkin
2019-07-15 20:29                                 ` Thiago Jung Bauermann
2019-07-15 20:29                                   ` Thiago Jung Bauermann
2019-07-15 20:29                                   ` Thiago Jung Bauermann
2019-07-15 20:36                                   ` Michael S. Tsirkin
2019-07-15 20:36                                   ` Michael S. Tsirkin
2019-07-15 20:36                                     ` Michael S. Tsirkin
2019-07-15 20:36                                     ` Michael S. Tsirkin
2019-07-15 22:03                                     ` Thiago Jung Bauermann
2019-07-15 22:03                                       ` Thiago Jung Bauermann
2019-07-15 22:03                                       ` Thiago Jung Bauermann
2019-07-15 22:03                                       ` Thiago Jung Bauermann
2019-07-15 22:16                                       ` Michael S. Tsirkin
2019-07-15 22:16                                       ` Michael S. Tsirkin
2019-07-15 22:16                                         ` Michael S. Tsirkin
2019-07-15 22:16                                         ` Michael S. Tsirkin
2019-07-15 23:05                                         ` Thiago Jung Bauermann
2019-07-15 23:05                                           ` Thiago Jung Bauermann
2019-07-15 23:05                                           ` Thiago Jung Bauermann
2019-07-15 23:05                                         ` Thiago Jung Bauermann
2019-07-15 23:24                                       ` Benjamin Herrenschmidt
2019-07-15 23:24                                       ` Benjamin Herrenschmidt
2019-07-15 23:24                                         ` Benjamin Herrenschmidt
2019-07-15 23:24                                         ` Benjamin Herrenschmidt
2019-07-15 20:29                                 ` Thiago Jung Bauermann
2019-07-18  3:39                               ` Thiago Jung Bauermann
2019-07-18  3:39                                 ` Thiago Jung Bauermann
2019-07-18  3:39                               ` Thiago Jung Bauermann
2019-06-04  1:13                     ` Thiago Jung Bauermann
2019-03-20 16:13         ` Thiago Jung Bauermann
2019-02-04 20:23       ` Michael S. Tsirkin
2019-01-29 19:02   ` Michael S. Tsirkin
2019-01-29 17:42 ` Thiago Jung Bauermann
2019-08-10 18:57 ` Michael S. Tsirkin
2019-08-10 18:57   ` Michael S. Tsirkin
2019-08-10 18:57   ` Michael S. Tsirkin
2019-08-10 22:07   ` Ram Pai
2019-08-10 22:07   ` Ram Pai
2019-08-10 22:07     ` Ram Pai
2019-08-11  5:56     ` Christoph Hellwig
2019-08-11  5:56       ` Christoph Hellwig
2019-08-11  5:56       ` Christoph Hellwig
2019-08-11  6:46       ` Ram Pai
2019-08-11  6:46         ` Ram Pai
2019-08-11  6:46         ` Ram Pai
2019-08-11  8:44         ` Michael S. Tsirkin
2019-08-11  8:44           ` Michael S. Tsirkin
2019-08-11  8:44           ` Michael S. Tsirkin
2019-08-12 12:13         ` Christoph Hellwig
2019-08-12 12:13         ` Christoph Hellwig
2019-08-12 12:13           ` Christoph Hellwig
2019-08-12 20:29           ` Ram Pai
2019-08-12 20:29             ` Ram Pai
2019-08-12 20:29           ` Ram Pai
2019-08-11  8:42       ` Michael S. Tsirkin
2019-08-11  8:42         ` Michael S. Tsirkin
2019-08-11  8:42       ` Michael S. Tsirkin
2019-08-11  8:55       ` Michael S. Tsirkin
2019-08-11  8:55       ` Michael S. Tsirkin
2019-08-11  8:55         ` Michael S. Tsirkin
2019-08-12 12:15         ` Christoph Hellwig
2019-08-12 12:15         ` Christoph Hellwig
2019-08-12 12:15           ` Christoph Hellwig
2019-09-06  5:07           ` Michael S. Tsirkin
2019-09-06  5:07             ` Michael S. Tsirkin
2019-09-06  5:07             ` Michael S. Tsirkin
2019-08-12  9:51       ` David Gibson
2019-08-12  9:51       ` David Gibson
2019-08-12  9:51         ` David Gibson
2019-08-13 13:26         ` Christoph Hellwig
2019-08-13 13:26           ` Christoph Hellwig
2019-08-13 14:24           ` David Gibson
2019-08-13 14:24             ` David Gibson
2019-08-13 15:45             ` Ram Pai
2019-08-13 15:45               ` Ram Pai
2019-08-13 15:45               ` Ram Pai
2019-08-26 17:48               ` Ram Pai
2019-08-26 17:48                 ` Ram Pai
2019-08-26 17:48               ` Ram Pai
2019-08-13 14:24           ` David Gibson
2019-08-13 13:26         ` Christoph Hellwig
2019-08-11  8:12     ` Michael S. Tsirkin
2019-08-11  8:12       ` Michael S. Tsirkin
2019-08-11  8:12       ` Michael S. Tsirkin
  -- strict thread matches above, loose matches on Subject: below --
2019-01-29 17:08 Thiago Jung Bauermann

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.