Page MenuHomeSolus

Kernel config changes for LXC/LXD
Closed, ResolvedPublic

Description

LXC 4.0.11 supports the new core scheduling feature of the 5.14 kernel. Unfortunately it seems like there are issues with this support in that if a container is started on a system with kernel >= 5.14 with core scheduling disabled that a fatal error will be thrown by LXc that core scheduling is disabled (despite the fact that there exists apparently untested fallback logic to disable the feature on the LXC side if it's not detected as enabled). While this is likely a bug in LXC I looked into it and it doesn't appear that there are any downsides to enabling core scheduling support given that it it entirely opt-in by a process and does not affect processes/threads that do not opt-in.

Additionally I noticed that there was an error during LXD init that VHOST_VSOCK is not enabled. This is apparently used when LXD manages a virtual machine using QEMU as a communication mechanism between the host and the VM. Given that we already support Virtio it does not appear harmful to enable this as well.

Proposed config changes:

--- config      2021-10-22 00:11:46.042689840 -0500
+++ config_new  2021-10-22 00:05:22.023368152 -0500
@@ -126,7 +126,7 @@
 CONFIG_PREEMPT_COUNT=y
 CONFIG_PREEMPTION=y
 CONFIG_PREEMPT_DYNAMIC=y
-# CONFIG_SCHED_CORE is not set
+CONFIG_SCHED_CORE=y
 
 #
 # CPU/Task time and stats accounting
@@ -2675,6 +2675,7 @@
 CONFIG_VETH=m
 CONFIG_VIRTIO_NET=m
 CONFIG_NLMON=m
+# CONFIG_VSOCKMON is not set
 CONFIG_SUNGEM_PHY=m
 CONFIG_ARCNET=m
 CONFIG_ARCNET_1201=m
@@ -7014,7 +7015,12 @@
 # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
 CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
 # CONFIG_VDPA is not set
-# CONFIG_VHOST_MENU is not set
+CONFIG_VHOST_IOTLB=m
+CONFIG_VHOST=m
+CONFIG_VHOST_MENU=y
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_VSOCK=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
 
 #
 # Microsoft Hyper-V guest support