Open main menu

OpenVZ Virtuozzo Containers Wiki β

Changes

Download/kernel/2.6.16/026test015.1/changes

7,454 bytes added, 08:37, 21 March 2008
created (not yet fixed)
== Changes ==
* IPv6 netfilter functionality, mainstream updates (up to 2.6.16.23), bugfixes in veth, netfilters, vpids, UBC.

=== Config changes ===
Same as {{Kernel link|2.6.16|026test014.4}}, plus
Added:
* +CONFIG_IP6_NF_IPTABLES=m
* +CONFIG_IP6_NF_MATCH_RT=m
* +CONFIG_IP6_NF_MATCH_OPTS=m
* +CONFIG_IP6_NF_MATCH_FRAG=m
* +CONFIG_IP6_NF_MATCH_HL=m
* +CONFIG_IP6_NF_MATCH_MULTIPORT=m
* +CONFIG_IP6_NF_MATCH_OWNER=m
* +CONFIG_IP6_NF_MATCH_IPV6HEADER=m
* +CONFIG_IP6_NF_MATCH_AHESP=m
* +CONFIG_IP6_NF_MATCH_EUI64=m
* +CONFIG_IP6_NF_FILTER=m
* +CONFIG_IP6_NF_TARGET_LOG=m
* +CONFIG_IP6_NF_TARGET_REJECT=m
* +CONFIG_IP6_NF_MANGLE=m
* +CONFIG_IP6_NF_TARGET_HL=m

<includeonly>[[{{PAGENAME}}/changes#Patches|{{Long changelog message}}]]</includeonly><noinclude>
=== Patches ===
<dl>
<dt>diff-broken-veprintk-20060623</dt>
<dd>
Patch from Alexey Kuznetsov &lt;alexey@openvz.org&gt;:<br/>
[PATCH] verbose "vzctl start" kills console
</dd>


<dt>diff-cpt-ipt-conntrack-alloc-fix-20060623</dt>
<dd>
Patch from Kirill Korotaev &lt;dev@openvz.org&gt;:<br/>
[CPT] ip_conntrack_alloc() can return ENOMEM now (#64293)
</dd>


<dt>diff-debug-busy-inodes-misprint-20060620</dt>
<dd>
Patch from Kirill Korotaev &lt;dev@openvz.org&gt;:<br/>
Fix inode debug misprint
</dd>


<dt>diff-export-free-divert-blk-20060620</dt>
<dd>
Patch from Dmitry V. Levin &lt;ldv@altlinux.org&gt;:<br/>
[PATCH] net/core/dv.c: Export free_divert_blk

<p>I have no idea why ve_netdev_cleanup() from kernel/vecalls.c duplicates
some code from net/core/dev.c, but if both CONFIG_NET_DIVERT and
CONFIG_VE_CALLS_MODULE are defined, then vzmon gets undefined reference
to free_divert_blk symbol. Here is a workaround.</p>

Signed-off-by: Dmitry V. Levin &lt;ldv@altlinux.org&gt;<br/>
Signed-off-by: Kirill Korotaev &lt;dev@openvz.org&gt;<br/>
Signed-off-by: Pavel Emelianov &lt;xemul@openvz.org&gt;<br/>
</dd>


<dt>diff-fairsched-wake-up-init-20060609</dt>
<dd>
Patch from Kirill Korotaev &lt;dev@openvz.org&gt;:<br/>
Fix of init process wake up.

<p>Since 2.6.9 kernel threads can't be spawned with CLONE_STOPPED
as do_signal() ignores signals for kernel code.
Instead, wake_up_init() is called now from wake_up_new_task().</p>
</dd>


<dt>diff-merge-2.6.16.23-20060704</dt>
<dd>
Patch from OpenVZ team &lt;devel@openvz.org&gt;:<br/>
Merged 2.6.16.23 from /linux/kernel/git/stable/linux-2.6.16.y
</dd>


<dt>diff-ms-exit-signal-fix-20060629</dt>
<dd>
Patch from Pavel Emelianov &lt;xemul@openvz.org&gt;

<p>Fix of signal_struct-&gt;curr_target value after __exit_signal().
When task calls __exit_signal() it moves curr_target pointer
on the next thread. If task isn't changed - this pointer must be
set to NULL. Otherwise race:</p>
<pre>
sys_execve() sys_kill()
... ...
de_thread()
switch_exec_pids()
/* at this point thread and leader
* have shared signal_struct but splitted
* (empty) pids lists
*/
release_task()
sig-&gt;curr_target = next_thread(tsk);
/* at this point curr_target is set to
* tsk since it's PID_TYPE_TGID list is
* empty
*/
... ___group_complete_signal()
`- t = p-&gt;signal-&gt;curr_target
/* t is the task which tries to
* exit on the 1st cpu so its
* memory may already be freed
*/
</pre>
</dd>


<dt>diff-tcp-sg-export-20060605</dt>
<dd>
Patch from Pavel Emelianov &lt;xemul@openvz.org&gt;:<br/>
Export sysctl_tcp_use_sg variable.
Without it ipv6 module can't load.
</dd>


<dt>diff-ubc-kmem-pipe-20060629</dt>

<dd>
Patch from Vasily Tarasov &lt;vtaras@openvz.org&gt;:<br/>
Fix missing memory charging in pipe.c
</dd>


<dt>diff-ve-net-conntrack-sysctl-alloc-fix-20060630</dt>
<dd>
Patch from Kirill Korotaev &lt;dev@openvz.org&gt;:<br/>
Fix of conntracs' sysctl initialization

<p>Conntracks initialization code allocates sysctl array
for 15 elements, while requires 21 (#64594)</p>
</dd>


<dt>diff-ve-netfilter-ipv6-20060606</dt>

<dd>
Patch from Dmitry Mishin &lt;dim@openvz.org&gt;:<br/>
Port of iptables virtualization to ip6tables
</dd>


<dt>diff-ve-net-ipv6-addr-ve-access-20060607</dt>
<dd>
Patch from Alexey Kuznetsov &lt;alexey@openvz.org&gt;:<br/>
[IPV6] checks of address ownership were wrong

<p>The intention was right (the functions get optional dev and when they do,
it is not necessary to verify for VE ownership), but I was lost in mass
of || and &amp;&amp;'s, so that only one of three places came out correct.</p>
</dd>

<dt>diff-ve-net-neigh-params-init-20060614</dt>
<dd>
Patch from Alexey Kuznetsov &lt;alexey@openvz.org&gt;:<br/>
[PATCH] incomplete initialization of virtual neighbor tables

<p>neigh_tbl-&gt;parms.next was inherited from VE0 neighbour table.
The effect is that when a device in VE0 was unregistered, VE still
contained the reference to dead data.</p>
</dd>


<dt>diff-ve-net-proc-entries-create-20060704</dt>
<dd>
Patch from Pavel Emelianov &lt;xemul@openvz.org&gt;:<br/>
Fix creation of tcp/udp proc entries.

<p>When we didn't have ipv6 virtualized ipv6-related entries
we created locally to ve0. Now we have ipv6 virtualized, so
the entries in question must be visible in VEs.</p>
</dd>


<dt>diff-ve-net-tcp-udp-proc-20060615</dt>
<dd>
Patch from Dmitry Mishin &lt;dim@openvz.org&gt;:<br/>
Small cleanup in net proc entries registration code
</dd>


<dt>diff-ve-net-veth-caps-20060620</dt>
<dd>
Patch from Andrey Mirkin &lt;amirkin@openvz.org&gt;:<br/>
[VETH] fix capabilities checking
</dd>


<dt>diff-ve-net-veth-context-20060607</dt>
<dd>
Patch from Andrey Mirkin &lt;amirkin@openvz.org&gt;:<br/>
Veth device fix.

<p>There was a bug in veth_stop(): unregister_netdev() must be
performed in right context. Plus cosmetic cleanups.</p>
</dd>


<dt>diff-ve-net-veth-overflow-20060609</dt>
<dd>
Patch from Andrey Mirkin &lt;amirkin@openvz.org&gt;:<br/>
[VETH] one more buffer overflow in veth fix
</dd>


<dt>diff-ve-net-veth-strcpy-fix-20060616</dt>
<dd>
Patch from Andrey Mirkin &lt;amirkin@openvz.org&gt;:<br/>
[VETH] fix of potential buffer overflow in veth device name allocation

</dd>
<dt>diff-ve-nf-ipv6-comp-fix-20060704</dt>
<dd>
Patch from Pavel Emelianov &lt;xemul@openvz.org&gt;:<br/>
Compilation fix for ipv6 netfilter initialization.
</dd>


<dt>diff-ve-vpid-rcu-20060620</dt>
<dd>
Patch from Alexey Kuznetsov &lt;alexey@openvz.org&gt;:<br/>
[PATCH] RCU for VPID hash table

<p>In 2.6.16 pid hash table is not protected by tasklist_lock,
it uses RCU now. We used to protect VPID hash table with this lock,
but now we cannot because the functions, which used to be protected
with read_lock(), are not anymore.</p>

<p>So, we switch to RCU for VPID hash table as well. It is quite simple,
and unlike use of RCU for global pid hash tables, it is quite obvious
that RCU is valid here.</p>
</dd>


<dt>diff-ve-vpid-setpgid-bug-20060620</dt>
<dd>
Patch from Alexey Kuznetsov &lt;alexey@openvz.org&gt;:<br/>
[PATCH] setpgid() could corrupt pid hash table

<p>Also I add new BUG() into pid.c to assert and obvious invariant that a free pid cannot be released.</p>

<p>This solves <a href="http://bugzilla.openvz.org/159">bug #159</a>.</p>
</dd>
</dl>

</noinclude>