Difference between revisions of "Kernel configuration"

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search
(added intro, mention cpulimits/cpuunits)
Line 1: Line 1:
 
This article summarises various kernel configuration issues.
 
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
  
 
== ACPI sleep ==
 
== ACPI sleep ==

Revision as of 15:25, 23 March 2007

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

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 ;)