<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Master</id>
	<title>OpenVZ Virtuozzo Containers Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Master"/>
	<link rel="alternate" type="text/html" href="https://wiki.openvz.org/Special:Contributions/Master"/>
	<updated>2026-06-10T01:18:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Talk:NFS_doesn%27t_work&amp;diff=3209</id>
		<title>Talk:NFS doesn't work</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Talk:NFS_doesn%27t_work&amp;diff=3209"/>
		<updated>2007-06-26T21:41:03Z</updated>

		<summary type="html">&lt;p&gt;Master: New page: Start portmap on the client? --~~~~&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Start portmap on the client? --[[User:Master|Master]] 17:41, 26 June 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>Master</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=User:Master&amp;diff=3191</id>
		<title>User:Master</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=User:Master&amp;diff=3191"/>
		<updated>2007-06-13T17:32:19Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm using OpenVZ on [[x86]] and on [[sparc]]. I've build an image for [sparc] that can be found on&lt;br /&gt;
[http://openvz.i88.de http://openvz.i88.de]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=User:Master&amp;diff=3190</id>
		<title>User:Master</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=User:Master&amp;diff=3190"/>
		<updated>2007-06-13T17:31:35Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm using OpenVZ on [x86] and on [sparc]. I've build an image for [sparc] that can be found on&lt;br /&gt;
[http://openvz.i88.de http://openvz.i88.de]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=User:Master&amp;diff=3189</id>
		<title>User:Master</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=User:Master&amp;diff=3189"/>
		<updated>2007-06-13T17:31:15Z</updated>

		<summary type="html">&lt;p&gt;Master: New page: I'm using OpenVZ on [x86] and on [sparc]. I've build an image for [sparc] that can be found on [[http://openvz.i88.de http://openvz.i88.de]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm using OpenVZ on [x86] and on [sparc]. I've build an image for [sparc] that can be found on&lt;br /&gt;
[[http://openvz.i88.de http://openvz.i88.de]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Porting_the_kernel&amp;diff=3188</id>
		<title>Porting the kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Porting_the_kernel&amp;diff=3188"/>
		<updated>2007-06-13T17:26:59Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenVZ kernel supports x86, x86_64, IA64, power64, and [[sparc]] architectures as of now. Below are the quick and dirty information about how to port the  kernel to yet another architecture.&lt;br /&gt;
&lt;br /&gt;
* UBC: need to account any platform specific VMAs created by hand in arch specific code. i.e. if there are calls of &amp;lt;code&amp;gt;insert_vm_struct()&amp;lt;/code&amp;gt; this should be accounted with &amp;lt;code&amp;gt;ub_memory_charge()&amp;lt;/code&amp;gt;. Didn't find such thing on sparc64.&lt;br /&gt;
&lt;br /&gt;
* If there are user triggerable &amp;lt;code&amp;gt;printk()&amp;lt;/code&amp;gt;'s (related to the user, not the system as a whole) better replace them with &amp;lt;code&amp;gt;ve_printk()&amp;lt;/code&amp;gt;. Otherwise user can flood (DoS). minor actually.&lt;br /&gt;
&lt;br /&gt;
* Call to functions &amp;lt;code&amp;gt;find_task_by_pid()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;for_each_process()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;do_each_thread()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;while_each_thread()&amp;lt;/code&amp;gt; should be replaced with it's counterparts - &amp;lt;code&amp;gt;find_task_by_pid_XXX()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;for_each_process_XXX()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;do_each_thread_XXX()&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;while_each_thread_XXX()&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;XXX&amp;lt;/code&amp;gt; is either &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ve&amp;lt;/code&amp;gt;. Here &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt; means that all system processes in the system will be scanned, while &amp;lt;code&amp;gt;ve&amp;lt;/code&amp;gt; means that only the [[VE]] accessible from this task (current context - &amp;lt;code&amp;gt;get_exec_env()&amp;lt;/code&amp;gt;) will be visible. So you need to decide whether the code in question is about system or user context.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;task-&amp;gt;pid&amp;lt;/code&amp;gt; should be changed with &amp;lt;code&amp;gt;virt_pid(task)&amp;lt;/code&amp;gt; in some places. The rule is simple: user should see only virtual pids, while kernel operate on global pids. e.g. in signals, virtual pid should be delivered to app.&lt;br /&gt;
&lt;br /&gt;
* In interrupt handlers one need to set global host ([[VE0]]) context. i.e. &amp;lt;code&amp;gt;set_exec_env()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;set_exec_ub()&amp;lt;/code&amp;gt;. i.e. interrupt handlers are running in VE0 context.&lt;br /&gt;
&lt;br /&gt;
* In &amp;lt;code&amp;gt;kernel_thread()&amp;lt;/code&amp;gt; one needs to prohibit kernel threads in VE. Mostly security related...&lt;br /&gt;
&lt;br /&gt;
* Extend &amp;lt;code&amp;gt;show_registers()&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;show_regs()&amp;lt;/code&amp;gt;) to show current VE.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;utsname&amp;lt;/code&amp;gt; should be virtualized. This mostly means that &amp;lt;code&amp;gt;system_utsnames&amp;lt;/code&amp;gt; should be replaced with &amp;lt;code&amp;gt;ve_utsname&amp;lt;/code&amp;gt;. See any arch code for this.&lt;br /&gt;
&lt;br /&gt;
* Some exports will be required. e.g. &amp;lt;code&amp;gt;show_mem()&amp;lt;/code&amp;gt; and probably &amp;lt;code&amp;gt;cpu_khz&amp;lt;/code&amp;gt;. Easy.&lt;br /&gt;
&lt;br /&gt;
* Everything else are bugfixes.&lt;br /&gt;
&lt;br /&gt;
All these are straightforward and really simple, so it should take a few hours to do.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://forum.openvz.org/index.php?t=msg&amp;amp;goto=3338&amp;amp;&amp;amp;srch=sparc#msg_num_5 Original forum post]&lt;br /&gt;
&lt;br /&gt;
[[Category: Kernel]]&lt;br /&gt;
[[Category: Development]]&lt;br /&gt;
[[Category: Internals]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Sparc&amp;diff=3187</id>
		<title>Sparc</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Sparc&amp;diff=3187"/>
		<updated>2007-06-13T17:26:18Z</updated>

		<summary type="html">&lt;p&gt;Master: New page: Ready to use OpenVZ kernel 2.6.18 images for debian on sparc (Ultra10) can be found on: &amp;lt;br&amp;gt; [http://openvz.i88.de http://openvz.i88.de]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ready to use OpenVZ kernel 2.6.18 images for debian on sparc (Ultra10) can be found on: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://openvz.i88.de http://openvz.i88.de]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Kernel_configuration&amp;diff=3174</id>
		<title>Kernel configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Kernel_configuration&amp;diff=3174"/>
		<updated>2007-06-12T22:22:56Z</updated>

		<summary type="html">&lt;p&gt;Master: /* OpenVZ related kernel config options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article summarises various kernel configuration issues.&lt;br /&gt;
&lt;br /&gt;
== OpenVZ related kernel config options ==&lt;br /&gt;
&lt;br /&gt;
Please make sure the following config options are enabled&lt;br /&gt;
in your kernel .config file before compilation process:&lt;br /&gt;
 CONFIG_SCHED_VCPU=y&lt;br /&gt;
 CONFIG_FAIRSCHED=y&lt;br /&gt;
&lt;br /&gt;
 CONFIG_SIM_FS=m&lt;br /&gt;
 CONFIG_VZ_QUOTA=m&lt;br /&gt;
 # CONFIG_VZ_QUOTA_UNLOAD is not set&lt;br /&gt;
 CONFIG_VZ_QUOTA_UGID=y&lt;br /&gt;
&lt;br /&gt;
 CONFIG_VE=y&lt;br /&gt;
 CONFIG_VE_CALLS=m&lt;br /&gt;
 CONFIG_VZ_GENCALLS=y&lt;br /&gt;
 CONFIG_VE_NETDEV=m&lt;br /&gt;
 CONFIG_VE_ETHDEV=m&lt;br /&gt;
 CONFIG_VZ_DEV=m&lt;br /&gt;
 CONFIG_VE_IPTABLES=y&lt;br /&gt;
 CONFIG_VZ_WDOG=m&lt;br /&gt;
 CONFIG_VZ_CHECKPOINT=m  #(CONFIG_VZ_CHECKPOINT=n on sparc)&lt;br /&gt;
&lt;br /&gt;
== ACPI sleep ==&lt;br /&gt;
&lt;br /&gt;
It is a bit tricky to make ACPI sleep and OpenVZ work together.&lt;br /&gt;
&lt;br /&gt;
ACPI sleep is enabled by &amp;lt;code&amp;gt;ACPI_SLEEP&amp;lt;/code&amp;gt; kernel option. The following dependencies are declared in kernel configs:&lt;br /&gt;
&lt;br /&gt;
 ACPI_SLEEP depends on X86 &amp;amp;&amp;amp; (!SMP || SUSPEND_SMP)&lt;br /&gt;
 SUSPEND_SMP depends on HOTPLUG_CPU &amp;amp;&amp;amp; X86 &amp;amp;&amp;amp; PM&lt;br /&gt;
 FAIRSCHED depends on SCHED_VCPU&lt;br /&gt;
&lt;br /&gt;
And &amp;lt;code&amp;gt;SCHED_VCPU&amp;lt;/code&amp;gt; is incompatible with &amp;lt;code&amp;gt;HOTPLUG_CPU&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 ./kernel/cpu.c:#error &amp;quot;CONFIG_HOTPLUG_CPU isn't supported with CONFIG_SCHED_VCPU&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On non-SMP machine, you may disable &amp;lt;code&amp;gt;SMP&amp;lt;/code&amp;gt;, this will resolve the conflict.&lt;br /&gt;
&lt;br /&gt;
If you have SMP machine, you can only disable &amp;lt;code&amp;gt;FAIRSCHED&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SCHED_VCPU&amp;lt;/code&amp;gt;. This will loose some isolation between VEs (CPU scheduling will be performed per-task, not per-VE, and &amp;lt;code&amp;gt;cpuunits&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;cpulimit&amp;lt;/code&amp;gt; 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 ;)&lt;br /&gt;
&lt;br /&gt;
[[Category:Kernel]]&lt;br /&gt;
[[Category:HOWTO]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
		
	</entry>
</feed>