Skip to content

Enable config requirements for IDM ivshmem + virtio-vsock transport#189

Merged
sveith merged 1 commit into
mainfrom
sveith/kvm-idm
May 27, 2026
Merged

Enable config requirements for IDM ivshmem + virtio-vsock transport#189
sveith merged 1 commit into
mainfrom
sveith/kvm-idm

Conversation

@sveith
Copy link
Copy Markdown
Contributor

@sveith sveith commented May 26, 2026

For KVM, we currently have a prototype IDM implementation running over
virtio-console. Due to performance issues, we might replace it with an
implementation based on ivshmem + virtio-vsock.

Enable the kernel options that have been found to be necessary for this
implementation.

Suggested-by: Steven Noonan steven@edera.dev
Signed-off-by: Simon Veith simon@edera.dev

Testing

Confirmed that the configuration options ended up enabled in the .config file for a local v6.18 kernel build.

x86

[linux-kernel-oci]$ cp configs/x86_64/zone.config ~/linux/.config
[linux-kernel-oci]$ cd ~/linux
[linux]$ git checkout v6.18.23
HEAD is now at 47a33eea6d51 Linux 6.18.23
[linux]$ make -j12 olddefconfig
.config:2379:warning: override: reassigning to symbol MLX4_EN
.config:2380:warning: override: reassigning to symbol MLX5_CORE
.config:2381:warning: override: reassigning to symbol MLX5_CORE_EN
.config:2390:warning: override: reassigning to symbol IAVF
.config:2391:warning: override: reassigning to symbol I40E
.config:2392:warning: override: reassigning to symbol I40EVF
.config:2399:warning: override: reassigning to symbol DEBUG_INFO_NONE
#
# configuration written to .config
#
[linux]$ grep -e '^CONFIG_VFIO=y' -e '^CONFIG_VFIO_PCI=y' -e '^CONFIG_VIRTIO_IOMMU=y' -e '^CONFIG_VIRTIO_VFIO_PCI=y' -e '^CONFIG_VSOCKETS=y' -e ^CNFIG_VIRTIO_VSOCKETS' 
[linux]$ grep CONFIG_VFIO CONFIG_VFIO_PCI CONFIG_VIRTIO_IOMMU CONFIG_VIRTIO_VFIO_PCI CONFIG_VSOCKETS CONFIG_VIRTIO_VSOCKETS ^C
[linux]$ grep -e CONFIG_VFIO -e CONFIG_VFIO_PCI -e CONFIG_VIRTIO_IOMMU -e CONFIG_VIRTIO_VFIO_PCI -e CONFIG_VSOCKETS -e CONFIG_VIRTIO_VSOCKETS .config
CONFIG_VSOCKETS=y
CONFIG_VSOCKETS_DIAG=y
CONFIG_VSOCKETS_LOOPBACK=y
CONFIG_VIRTIO_VSOCKETS=y
CONFIG_VIRTIO_VSOCKETS_COMMON=y
CONFIG_VFIO=y
CONFIG_VFIO_GROUP=y
CONFIG_VFIO_CONTAINER=y
CONFIG_VFIO_IOMMU_TYPE1=y
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_VIRQFD=y
# CONFIG_VFIO_DEBUGFS is not set
CONFIG_VFIO_PCI_CORE=y
CONFIG_VFIO_PCI_INTX=y
CONFIG_VFIO_PCI=y
# CONFIG_VFIO_PCI_VGA is not set
CONFIG_VFIO_PCI_IGD=y
CONFIG_VIRTIO_VFIO_PCI=y
CONFIG_VIRTIO_VFIO_PCI_ADMIN_LEGACY=y
CONFIG_VIRTIO_IOMMU=y

aarch64

[linux-kernel-oci]$ cp configs/aarch64/zone.config ~/linux/.config
[linux-kernel-oci]$ cd ~/linux
[linux]$ git checkout v6.18.23
HEAD is now at 47a33eea6d51 Linux 6.18.23
[linux]$ make -j12 olddefconfig
.config:102:warning: override: reassigning to symbol NET_ACT_BPF
.config:151:warning: override: reassigning to symbol CGROUPS
.config:597:warning: symbol value '0' invalid for BASE_SMALL
.config:974:warning: override: reassigning to symbol NET_CLS_ACT
.config:1095:warning: override: reassigning to symbol FW_LOADER_COMPRESS
.config:1096:warning: override: reassigning to symbol FW_LOADER_COMPRESS_XZ
.config:1690:warning: override: reassigning to symbol GENERIC_PCI_IOMAP
.config:1846:warning: override: reassigning to symbol SCHEDSTATS
.config:1892:warning: override: reassigning to symbol DEBUG_INFO
.config:1896:warning: override: reassigning to symbol DEBUG_INFO_NONE
#
# configuration written to .config
#
[linux]$ grep -e CONFIG_VFIO -e CONFIG_VFIO_PCI -e CONFIG_VIRTIO_IOMMU -e CONFIG_VIRTIO_VFIO_PCI -e CONFIG_VSOCKETS -e CONFIG_VIRTIO_VSOCKETS .config
CONFIG_VSOCKETS=y
CONFIG_VSOCKETS_DIAG=y
CONFIG_VSOCKETS_LOOPBACK=y
CONFIG_VIRTIO_VSOCKETS=y
CONFIG_VIRTIO_VSOCKETS_COMMON=y
CONFIG_VFIO=y
CONFIG_VFIO_GROUP=y
CONFIG_VFIO_CONTAINER=y
CONFIG_VFIO_IOMMU_TYPE1=y
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_VIRQFD=y
CONFIG_VFIO_PCI_CORE=y
CONFIG_VFIO_PCI_INTX=y
CONFIG_VFIO_PCI=y
# CONFIG_VFIO_PCI_VGA is not set
CONFIG_VFIO_PCI_IGD=y
CONFIG_VIRTIO_VFIO_PCI=y
CONFIG_VIRTIO_VFIO_PCI_ADMIN_LEGACY=y
CONFIG_VIRTIO_IOMMU=y

For KVM, we currently have a prototype IDM implementation running over
virtio-console. Due to performance issues, we might replace it with an
implementation based on ivshmem + virtio-vsock.

Enable the kernel options that have been found to be necessary for this
implementation.

Suggested-by: Steven Noonan <steven@edera.dev>
Signed-off-by: Simon Veith <simon@edera.dev>
@sveith sveith marked this pull request as ready for review May 26, 2026 19:25
@sveith sveith merged commit bed8090 into main May 27, 2026
8 checks passed
@sveith sveith deleted the sveith/kvm-idm branch May 27, 2026 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants