Open main menu

OpenVZ Virtuozzo Containers Wiki β

Kernel configuration

Revision as of 09:32, 13 June 2007 by Kir (talk | contribs) (OpenVZ related kernel config options)

This article summarises various kernel configuration issues.

OpenVZ related kernel config options

Please make sure the following config options are enabled in your kernel .config file before compilation process:

CONFIG_SCHED_VCPU=y
CONFIG_FAIRSCHED=y
CONFIG_SIM_FS=m
CONFIG_VZ_QUOTA=m
# CONFIG_VZ_QUOTA_UNLOAD is not set
CONFIG_VZ_QUOTA_UGID=y
CONFIG_VE=y
CONFIG_VE_CALLS=m
CONFIG_VZ_GENCALLS=y
CONFIG_VE_NETDEV=m
CONFIG_VE_ETHDEV=m
CONFIG_VZ_DEV=m
CONFIG_VE_IPTABLES=y
CONFIG_VZ_WDOG=m
CONFIG_VZ_CHECKPOINT=m
  Note: On architectures that do not currently support checkpointing (i.e. ppc and sparc) CONFIG_VZ_CHECKPOINT should be set to n

ACPI sleep

It is a bit tricky to make ACPI sleep and OpenVZ work together.

ACPI sleep is enabled by ACPI_SLEEP kernel option. The following dependencies are declared in kernel configs:

ACPI_SLEEP depends on X86 && (!SMP || SUSPEND_SMP)
SUSPEND_SMP depends on HOTPLUG_CPU && X86 && PM
FAIRSCHED depends on SCHED_VCPU

And SCHED_VCPU is incompatible with HOTPLUG_CPU:

./kernel/cpu.c:#error "CONFIG_HOTPLUG_CPU isn't supported with CONFIG_SCHED_VCPU"

On non-SMP machine, you may disable SMP, this will resolve the conflict.

If you have SMP machine, you can only disable FAIRSCHED and SCHED_VCPU. This will loose some isolation between VEs (CPU scheduling will be performed per-task, not per-VE, and cpuunits and cpulimit settings will not take effect), but it is acceptable solution if your VEs are trusted (and it's hard to imagine untrusted VEs on a notebook ;)