Re: [PATCH RFC v2 13/13] net/vhost-user: add memory isolation
Akihiko Odaki <[email protected]>
| Newsgroups | dev.linux.lists.virtio-fs,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
On 2026/08/18 14:12, Connor Kite wrote: > Add a memory-isolation property to NetdevPassOptions and > NetDevVhostUserOptions in net.json. This property will > be used for vhost-user devices to disable access to guest > memory from vhost-user backends. The cover letter says multiqueue is not supported but the code just continues with multiqueue and breaks. Regards, Akihiko Odaki > > Signed-off-by: Connor Kite <[email protected]> > --- > net/passt.c | 5 +++++ > net/vhost-user.c | 3 +++ > qapi/net.json | 16 ++++++++++++---- > 3 files changed, 20 insertions(+), 4 deletions(-) > > diff --git a/net/passt.c b/net/passt.c > index 35ec6ad6de..7bcd47ad32 100644 > --- a/net/passt.c > +++ b/net/passt.c > @@ -741,6 +741,11 @@ int net_init_passt(const Netdev *netdev, const char *name, > if (netdev->u.passt.has_vhost_user && netdev->u.passt.vhost_user) { > bool memory_isolation = false; > > + if (netdev->u.passt.has_memory_isolation && > + netdev->u.passt.memory_isolation) { > + memory_isolation = true; > + } > + > if (net_passt_vhost_user_init(s, memory_isolation, errp) == -1) { > qemu_del_net_client(nc); > return -1; > diff --git a/net/vhost-user.c b/net/vhost-user.c > index b6ee9ed297..bd33decadf 100644 > --- a/net/vhost-user.c > +++ b/net/vhost-user.c > @@ -477,6 +477,9 @@ int net_init_vhost_user(const Netdev *netdev, const char *name, > return -1; > } > > + memory_isolation = vhost_user_opts->has_memory_isolation ? > + vhost_user_opts->memory_isolation : false; > + > return net_vhost_user_init(peer, "vhost_user", name, chr, queues, > memory_isolation); > } > diff --git a/qapi/net.json b/qapi/net.json > index 1a6382825c..add7cb5408 100644 > --- a/qapi/net.json > +++ b/qapi/net.json > @@ -213,6 +213,9 @@ > # > # @param: parameter to pass to passt command > # > +# @memory-isolation: isolate guest memory from vhost-user back-end > +# (default: false) (Since 11.2) > +# > # Since: 10.1 > ## > { 'struct': 'NetdevPasstOptions', > @@ -250,7 +253,8 @@ > '*ipv6': 'bool', > '*tcp-ports': ['PasstPortForward'], > '*udp-ports': ['PasstPortForward'], > - '*param': ['PasstParameter'] }, > + '*param': ['PasstParameter'], > + '*memory-isolation': 'bool'}, > 'if': 'CONFIG_PASST' } > > ## > @@ -685,13 +689,17 @@ > # @queues: number of queues to be created for multiqueue vhost-user > # (default: 1) (Since 2.5) > # > +# @memory-isolation: isolate guest memory from vhost-user back-end > +# (default: false) (Since 11.2) > +# > # Since: 2.1 > ## > { 'struct': 'NetdevVhostUserOptions', > 'data': { > - 'chardev': 'str', > - '*vhostforce': 'bool', > - '*queues': 'int' } } > + 'chardev': 'str', > + '*vhostforce': 'bool', > + '*queues': 'int', > + '*memory-isolation': 'bool' } } > > ## > # @NetdevVhostVDPAOptions: >