Kernel

IncusOS exposes a limited set of configuration knobs for adjusting kernel-level settings. A system reboot may be required for changes to fully take effect.

Configuration options

Configuration fields are defined in the SystemKernelConfig struct.

The following configuration options can be set:

  • blacklist_modules: A list of one or more kernel modules to blacklist. Typically useful when passing through PCI devices to virtual machines.

  • memory: Change sysctl values or other settings that impact the system’s memory configuration

    • persistent_hugepages: Optional; number of persistent hugepages to allocate.

    • zram_swap_size: Optional; a human-readable string such as “4GiB” that defines the size of the zram-backed swap device to create. A value of “0” will disable any existing zram-backed swap that may exist. IncusOS will attempt to immediately apply this change without requiring a reboot.

  • network: Change sysctl values that impact the system’s network configuration.

    • buffer_size: Optional; configure the maximum buffer size used when setting the net.ipv4.tcp_rmem, net.ipv4.tcp_wmem, net.core.rmem_max, and net.core.wmem_max sysctl fields.

    • queuing_discipline: Optional; configure the value of the net.core.default_qdisc sysctl field.

    • tcp_congestion_algorithm: Optional; configure the TCP congestion algorithm used by the system, defaults to bbr.

  • pci: Change PCI device configuration.

    • passthrough: Configure one or more PCI devices for pass-through to a virtual machine:

      • vendor_id: The PCI vendor ID

      • product_id: The PCI product ID

      • pci_address: Optional; if specified the system will attempt to unbind the given PCI device from its existing driver and configure it for passing though to a virtual machine without requiring a reboot.