Difference between revisions of "Kernel configuration"

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search
(more grammar)
 
(3 intermediate revisions by 3 users not shown)
Line 21: Line 21:
 
  CONFIG_VE_IPTABLES=y
 
  CONFIG_VE_IPTABLES=y
 
  CONFIG_VZ_WDOG=m
 
  CONFIG_VZ_WDOG=m
 +
 
  CONFIG_VZ_CHECKPOINT=m
 
  CONFIG_VZ_CHECKPOINT=m
 +
 +
{{Note|On architectures that do not currently support checkpointing (i.e. ppc and sparc) <code>CONFIG_VZ_CHECKPOINT</code> should be set to <code>n</code>}}
  
 
== ACPI sleep ==
 
== ACPI sleep ==
Line 37: Line 40:
 
  ./kernel/cpu.c:#error "CONFIG_HOTPLUG_CPU isn't supported with CONFIG_SCHED_VCPU"
 
  ./kernel/cpu.c:#error "CONFIG_HOTPLUG_CPU isn't supported with CONFIG_SCHED_VCPU"
  
On non-SMP machine, you may disable <code>SMP</code>, this will resolve the conflict.
+
On a non-SMP machine, you may disable <code>SMP</code>, this will resolve the conflict.
  
If you have SMP machine, you can only disable <code>FAIRSCHED</code> and <code>SCHED_VCPU</code>. This will loose some isolation between VEs (CPU scheduling will be performed per-task, not per-VE, and <code>cpuunits</code> and <code>cpulimit</code> 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 ;)
+
If you have an SMP machine, you can only disable <code>FAIRSCHED</code> and <code>SCHED_VCPU</code>. It will reduce some isolation between VEs (CPU scheduling will be performed per-task, not per-VE, and <code>cpuunits</code> and <code>cpulimit</code> settings will not take effect), but it is an acceptable solution if your VEs are trusted (and it's hard to imagine untrusted VEs on a notebook.)
  
 
[[Category:Kernel]]
 
[[Category:Kernel]]
 
[[Category:HOWTO]]
 
[[Category:HOWTO]]

Latest revision as of 07:41, 10 July 2007

This article summarises various kernel configuration issues.

OpenVZ related kernel config options[edit]

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
Yellowpin.svg Note: On architectures that do not currently support checkpointing (i.e. ppc and sparc) CONFIG_VZ_CHECKPOINT should be set to n

ACPI sleep[edit]

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 a non-SMP machine, you may disable SMP, this will resolve the conflict.

If you have an SMP machine, you can only disable FAIRSCHED and SCHED_VCPU. It will reduce 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 an acceptable solution if your VEs are trusted (and it's hard to imagine untrusted VEs on a notebook.)