Message ID | 20201204170235.84387-1-andraprs@amazon.com |
---|---|
Headers | show |
Series | vsock: Add flags field in the vsock address | expand |
Hi Andra, On Fri, Dec 04, 2020 at 07:02:31PM +0200, Andra Paraschiv wrote: >vsock enables communication between virtual machines and the host they are >running on. Nested VMs can be setup to use vsock channels, as the multi >transport support has been available in the mainline since the v5.5 Linux kernel >has been released. > >Implicitly, if no host->guest vsock transport is loaded, all the vsock packets >are forwarded to the host. This behavior can be used to setup communication >channels between sibling VMs that are running on the same host. One example can >be the vsock channels that can be established within AWS Nitro Enclaves >(see Documentation/virt/ne_overview.rst). > >To be able to explicitly mark a connection as being used for a certain use case, >add a flags field in the vsock address data structure. The "svm_reserved1" field >has been repurposed to be the flags field. The value of the flags will then be >taken into consideration when the vsock transport is assigned. This way can >distinguish between different use cases, such as nested VMs / local communication >and sibling VMs. the series seems in a good shape, I left some minor comments. I run my test suite (vsock_test, iperf3, nc) with nested VMs (QEMU/KVM), and everything looks good. Note: I'll be offline today and tomorrow, so I may miss followups. Thanks, Stefano
On 07/12/2020 12:05, Stefano Garzarella wrote: > > Hi Andra, > > On Fri, Dec 04, 2020 at 07:02:31PM +0200, Andra Paraschiv wrote: >> vsock enables communication between virtual machines and the host >> they are >> running on. Nested VMs can be setup to use vsock channels, as the multi >> transport support has been available in the mainline since the v5.5 >> Linux kernel >> has been released. >> >> Implicitly, if no host->guest vsock transport is loaded, all the >> vsock packets >> are forwarded to the host. This behavior can be used to setup >> communication >> channels between sibling VMs that are running on the same host. One >> example can >> be the vsock channels that can be established within AWS Nitro Enclaves >> (see Documentation/virt/ne_overview.rst). >> >> To be able to explicitly mark a connection as being used for a >> certain use case, >> add a flags field in the vsock address data structure. The >> "svm_reserved1" field >> has been repurposed to be the flags field. The value of the flags >> will then be >> taken into consideration when the vsock transport is assigned. This >> way can >> distinguish between different use cases, such as nested VMs / local >> communication >> and sibling VMs. > > the series seems in a good shape, I left some minor comments. > I run my test suite (vsock_test, iperf3, nc) with nested VMs (QEMU/KVM), > and everything looks good. Thanks, Stefano, for review and checking it out for the nested case as well. I'll send out v3 including the addressed feedback and the Rb tags. > > Note: I'll be offline today and tomorrow, so I may miss followups. Ok, np, thanks for the heads-up. Andra Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005.