Difference between revisions of "Kernel configuration"
(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.
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 ;)