6,534
edits
Changes
created
== Changes ==
* CPT bind mounts migration
* CPT fixes.
* Mainstream updates up to 2.6.16.27.
* Added iptables xt_mac target, SysRq debugger.
* Conntracks fixes.
* Memory leaks fixes.
* UBC, VZDQ, compilation fixes.
=== Config changes ===
* +<code>CONFIG_SYSRQ_DEBUG=y</code>
{{Kernel git log|2.6.16|026test017}}
<includeonly>[[{{PAGENAME}}/changes#Patches|{{Long changelog message}}]]</includeonly><noinclude>
=== Patches ===
==== diff-cpt-bind-mount-20060804 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
[CPT] support checkpointing of bind mounts
</div>
==== diff-cpt-image-versioning-20060804 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
[CPT] Image versioning
Boost image version.
</div>
==== diff-cpt-makefile-misprint-20060804 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Fix CPT module compilation (misprint)
</div>
==== diff-cpt-noub-compile-20060726 ====
<div class="change">
Patch from Vasily Tarasov <vtaras@openvz.org>:<br/>
[PATCH 2/3] [CPT] Fixes compilation with CONFIG_USER_RESOURCE off
Checkpointing-related fixes.
</div>
==== diff-cpt-timers-20060804 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
[CPT] timers cleanup, ve suspend cleanup
Timers are totally messed in 2.6.16. This fixes bug with randomly stuck sleeps etc.
Also, the same patch fixes two another critical bugs:
# vzctl chkpnt N --suspend; vzctl chkpnt N --resume sometimes kills some applications (f.e. strace bash).
# when GFP_KERNEL allocation fails (oom killer), checkpoint can fail and leave some processes frozen.
</div>
==== diff-cpt-ve-suspend-20060804 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
VE suspend cleanup
Software suspend breaks some processes, when it fails.
The problem is capital. Core assumes that as soon as signal_pending()
is set, the only place where the condition is cleared is signal delivery
path. Otherwise, processes can occasionally get bare -ERESTART* and
die.
The only solution is to avoid clearing TIG_FREEZE ever, leaving
this function to refrigrator(). This requires adding a global (or per-VE)
flag.
</div>
==== diff-merge-2.6.16.27-20060804 ====
<div class="change">
Patch from OpenVZ team <devel@openvz.org>:<br/>
Merged 2.6.16.27 from /linux/kernel/git/stable/linux-2.6.16.y
</div>
==== diff-ms-sock-compile-20060722 ====
<div class="change">
Patch from Kir Kolyshkin <kir@openvz.org>:<br/>
[x86_64] Compilation fix for net/socket.c
On an x86_64 arch, if CONFIG_NETFILTER is not set, linux/in6.h is not included into net/socket.c and it fails to compile:
<pre>
net/socket.c: In function 'vz_security_proto_check':
net/socket.c:1106: error: 'IPPROTO_ICMPV6' undeclared (first use in this function)
</pre>
The fix is to include linux/in6.h explicitly.
[http://buzgilla.openvz.org/206 OpenVZ bug #206]
</div>
==== diff-sysrq-debug-20060719 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
SysRq debugger.
This patch adds small debugger which works via SysRq. With it
one can dump memory, resolve kernel symbols and write to memory.
/proc/sysrq-trigger is patched to read more than one character
from user, so that debugger works with commands like
<pre>echo -n -e 'gd0xc0400000\rq' > /proc/sysrq-trigger</pre>
</div>
==== diff-ubc-noub-compile-20060726 ====
<div class="change">
Patch from Vasily Tarasov <vtaras@openvz.org>:<br/>
[PATCH 1/3] Fixes compilation with CONFIG_USER_RESOURCE off
A misprint in ub_misc.h.
</div>
==== diff-ubc-nrfiles-20060727 ====
<div class="change">
Patch from Kirill Korotaev <dev@openvz.org>:<br/>
nr_files should not limit VEs
We have UBC numfile limit, so skip global check for VE.
Long-term solution is to virtualize nr_files variable.
</div>
==== diff-ubc-nrfiles-fix-20060727 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Fix for nr_files acct in UB0.
Do not just limit nr_files in UB0 only, but also account.
</div>
==== diff-ve-nf-iptflush-18082006 ====
<div class="change">
Patch from Vasily Tarasov <vtaras@openvz.org>:<br/>
Iptables bug in ipt_flush_table
One cannot set private->size = 0 in ipt_flush_table() 'cause this
value is used in xt_free_table_info() later.
{{Bug|191}}.
</div>
==== diff-ve-nf-xt-mac-20060802 ====
<div class="change">
Patch from Dmitry Mishin <dim@openvz.org>:<br/>
xt_mac iptables match virtualization
[http://forum.openvz.org/index.php?t=tree&th=902&mid=4883 OpenVZ forum thread #902]
</div>
==== diff-ve-noub-compile-20060726 ====
<div class="change">
Patch from Vasily Tarasov <vtaras@openvz.org>:<br/>
[PATCH 3/3] Fixes compilation with CONFIG_USER_RESOURCE off
Vecalls-related fixes.
</div>
==== diff-ve-start-time-20060804 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
VE start time cleanup
* start_time is signed value. After migration it can be negative. Respect this.
* It is possible some processes started before ve->start_time. (f.e. migrated VE processes from viewpoint of VE0 or processes forked before VE creation and entering it later). The only sane solution is to show in /proc zero times.
* Set ve->start_time to sane value, so that init does not have negative start time.
* Deprecate ve->start_jiffies. It is uses only for ve_cpu_stats now.
</div>
==== diff-vzdq-sync-list-empty-20060714 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
[VZDQ] Fix __vzquota_sync_list() list manipulations
After schedule() on need_resched() need to check for list_empty() again. (#65333)
</div>
==== diff-cpt-fget-errorcode-20060707 ====
<div class="change">Patch from Pavel Emelianov <xemul@openvz.org><br/>
[CPT] fget() call returns NULL on error
cpt code expected ERR_PTR values and thus could oops (#64758)
</div>
==== diff-fairsched-vcpu-sched-comp-fix-20060707 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Compilation fix for CONFIG_FAIRSCHED=n and CONFIG_SCHED_VCPU=y.
This is the first (and the easiest) part of
{{Bug|173}}.
</div>
==== diff-initcall-err-warn-20060706 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Print warning if some initcall returned error.
Stop booting the kernel is not correct, but sometimes
it's necessary to know that some initcall failed.
</div>
==== diff-merge-2.6.16.24-20060714 ====
<div class="change">
Patch from OpenVZ team <devel@openvz.org>:<br/>
Merged 2.6.16.24 from /linux/kernel/git/stable/linux-2.6.16.y
</div>
==== diff-ms-fdset-leakage-20060710 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
[PATCH] fdset's leakage
When found, it is obvious. nfds calculated when allocating fdsets
is rewritten by calculation of size of fdtable, and when we are
unlucky, we try to free fdsets of wrong size.
There is a little problem there, the bug is triggered only under
certain combination of initial values for max_fdset and max_fds.
They were changed recently, so that bug may be invisible in current
mainstream (well, it was invisible because of absence of UBC in any
case :-)). Nevertheless, it remains logical bug.
</div>
==== diff-ms-namei-leak-20060710 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
Memory leak in fs/namei.c
2.6.16 leaks like hell. While testing, I found massive leakage in:
* filp
* size-4096
And 1 object leaks in
* size-32
* size-64
* size-128
Bug #63420.
</div>
==== diff-ubc-headers-20060704 ====
<div class="change">
Patch from Kirill Korotaev <dev@openvz.org>:<br/>
Fix of UBC headers.
config.h should not be included from user space.
</div>
==== diff-ve-ct-destroy-ctx-20060707 ====
<div class="change">
Patch from Dmitry Mishin <dim@openvz.org>:<br/>
Fixed vzmond cycling due to wrong conntracks cleanup context. Bug #64713.
</div>
==== diff-ve-netdevice-move-20060712 ====
<div class="change">Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Call notifiers on netdevice moving.
When device moves from ve to ve0 or vice-versa NETDEV_UNREGISTER/NETDEV_REGISTERevents must be sent. This at least clears dst entries from device. Bug #64925.
</div>
==== diff-ve-net-tcp-hashes-access-20060707 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Check for inet_bin_bucket owner in inet(6)_hash_connect.
Noticed by Andrey Savochkin.
</div>
</noinclude>
* CPT bind mounts migration
* CPT fixes.
* Mainstream updates up to 2.6.16.27.
* Added iptables xt_mac target, SysRq debugger.
* Conntracks fixes.
* Memory leaks fixes.
* UBC, VZDQ, compilation fixes.
=== Config changes ===
* +<code>CONFIG_SYSRQ_DEBUG=y</code>
{{Kernel git log|2.6.16|026test017}}
<includeonly>[[{{PAGENAME}}/changes#Patches|{{Long changelog message}}]]</includeonly><noinclude>
=== Patches ===
==== diff-cpt-bind-mount-20060804 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
[CPT] support checkpointing of bind mounts
</div>
==== diff-cpt-image-versioning-20060804 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
[CPT] Image versioning
Boost image version.
</div>
==== diff-cpt-makefile-misprint-20060804 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Fix CPT module compilation (misprint)
</div>
==== diff-cpt-noub-compile-20060726 ====
<div class="change">
Patch from Vasily Tarasov <vtaras@openvz.org>:<br/>
[PATCH 2/3] [CPT] Fixes compilation with CONFIG_USER_RESOURCE off
Checkpointing-related fixes.
</div>
==== diff-cpt-timers-20060804 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
[CPT] timers cleanup, ve suspend cleanup
Timers are totally messed in 2.6.16. This fixes bug with randomly stuck sleeps etc.
Also, the same patch fixes two another critical bugs:
# vzctl chkpnt N --suspend; vzctl chkpnt N --resume sometimes kills some applications (f.e. strace bash).
# when GFP_KERNEL allocation fails (oom killer), checkpoint can fail and leave some processes frozen.
</div>
==== diff-cpt-ve-suspend-20060804 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
VE suspend cleanup
Software suspend breaks some processes, when it fails.
The problem is capital. Core assumes that as soon as signal_pending()
is set, the only place where the condition is cleared is signal delivery
path. Otherwise, processes can occasionally get bare -ERESTART* and
die.
The only solution is to avoid clearing TIG_FREEZE ever, leaving
this function to refrigrator(). This requires adding a global (or per-VE)
flag.
</div>
==== diff-merge-2.6.16.27-20060804 ====
<div class="change">
Patch from OpenVZ team <devel@openvz.org>:<br/>
Merged 2.6.16.27 from /linux/kernel/git/stable/linux-2.6.16.y
</div>
==== diff-ms-sock-compile-20060722 ====
<div class="change">
Patch from Kir Kolyshkin <kir@openvz.org>:<br/>
[x86_64] Compilation fix for net/socket.c
On an x86_64 arch, if CONFIG_NETFILTER is not set, linux/in6.h is not included into net/socket.c and it fails to compile:
<pre>
net/socket.c: In function 'vz_security_proto_check':
net/socket.c:1106: error: 'IPPROTO_ICMPV6' undeclared (first use in this function)
</pre>
The fix is to include linux/in6.h explicitly.
[http://buzgilla.openvz.org/206 OpenVZ bug #206]
</div>
==== diff-sysrq-debug-20060719 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
SysRq debugger.
This patch adds small debugger which works via SysRq. With it
one can dump memory, resolve kernel symbols and write to memory.
/proc/sysrq-trigger is patched to read more than one character
from user, so that debugger works with commands like
<pre>echo -n -e 'gd0xc0400000\rq' > /proc/sysrq-trigger</pre>
</div>
==== diff-ubc-noub-compile-20060726 ====
<div class="change">
Patch from Vasily Tarasov <vtaras@openvz.org>:<br/>
[PATCH 1/3] Fixes compilation with CONFIG_USER_RESOURCE off
A misprint in ub_misc.h.
</div>
==== diff-ubc-nrfiles-20060727 ====
<div class="change">
Patch from Kirill Korotaev <dev@openvz.org>:<br/>
nr_files should not limit VEs
We have UBC numfile limit, so skip global check for VE.
Long-term solution is to virtualize nr_files variable.
</div>
==== diff-ubc-nrfiles-fix-20060727 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Fix for nr_files acct in UB0.
Do not just limit nr_files in UB0 only, but also account.
</div>
==== diff-ve-nf-iptflush-18082006 ====
<div class="change">
Patch from Vasily Tarasov <vtaras@openvz.org>:<br/>
Iptables bug in ipt_flush_table
One cannot set private->size = 0 in ipt_flush_table() 'cause this
value is used in xt_free_table_info() later.
{{Bug|191}}.
</div>
==== diff-ve-nf-xt-mac-20060802 ====
<div class="change">
Patch from Dmitry Mishin <dim@openvz.org>:<br/>
xt_mac iptables match virtualization
[http://forum.openvz.org/index.php?t=tree&th=902&mid=4883 OpenVZ forum thread #902]
</div>
==== diff-ve-noub-compile-20060726 ====
<div class="change">
Patch from Vasily Tarasov <vtaras@openvz.org>:<br/>
[PATCH 3/3] Fixes compilation with CONFIG_USER_RESOURCE off
Vecalls-related fixes.
</div>
==== diff-ve-start-time-20060804 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
VE start time cleanup
* start_time is signed value. After migration it can be negative. Respect this.
* It is possible some processes started before ve->start_time. (f.e. migrated VE processes from viewpoint of VE0 or processes forked before VE creation and entering it later). The only sane solution is to show in /proc zero times.
* Set ve->start_time to sane value, so that init does not have negative start time.
* Deprecate ve->start_jiffies. It is uses only for ve_cpu_stats now.
</div>
==== diff-vzdq-sync-list-empty-20060714 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
[VZDQ] Fix __vzquota_sync_list() list manipulations
After schedule() on need_resched() need to check for list_empty() again. (#65333)
</div>
==== diff-cpt-fget-errorcode-20060707 ====
<div class="change">Patch from Pavel Emelianov <xemul@openvz.org><br/>
[CPT] fget() call returns NULL on error
cpt code expected ERR_PTR values and thus could oops (#64758)
</div>
==== diff-fairsched-vcpu-sched-comp-fix-20060707 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Compilation fix for CONFIG_FAIRSCHED=n and CONFIG_SCHED_VCPU=y.
This is the first (and the easiest) part of
{{Bug|173}}.
</div>
==== diff-initcall-err-warn-20060706 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Print warning if some initcall returned error.
Stop booting the kernel is not correct, but sometimes
it's necessary to know that some initcall failed.
</div>
==== diff-merge-2.6.16.24-20060714 ====
<div class="change">
Patch from OpenVZ team <devel@openvz.org>:<br/>
Merged 2.6.16.24 from /linux/kernel/git/stable/linux-2.6.16.y
</div>
==== diff-ms-fdset-leakage-20060710 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
[PATCH] fdset's leakage
When found, it is obvious. nfds calculated when allocating fdsets
is rewritten by calculation of size of fdtable, and when we are
unlucky, we try to free fdsets of wrong size.
There is a little problem there, the bug is triggered only under
certain combination of initial values for max_fdset and max_fds.
They were changed recently, so that bug may be invisible in current
mainstream (well, it was invisible because of absence of UBC in any
case :-)). Nevertheless, it remains logical bug.
</div>
==== diff-ms-namei-leak-20060710 ====
<div class="change">
Patch from Alexey Kuznetsov <alexey@openvz.org>:<br/>
Memory leak in fs/namei.c
2.6.16 leaks like hell. While testing, I found massive leakage in:
* filp
* size-4096
And 1 object leaks in
* size-32
* size-64
* size-128
Bug #63420.
</div>
==== diff-ubc-headers-20060704 ====
<div class="change">
Patch from Kirill Korotaev <dev@openvz.org>:<br/>
Fix of UBC headers.
config.h should not be included from user space.
</div>
==== diff-ve-ct-destroy-ctx-20060707 ====
<div class="change">
Patch from Dmitry Mishin <dim@openvz.org>:<br/>
Fixed vzmond cycling due to wrong conntracks cleanup context. Bug #64713.
</div>
==== diff-ve-netdevice-move-20060712 ====
<div class="change">Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Call notifiers on netdevice moving.
When device moves from ve to ve0 or vice-versa NETDEV_UNREGISTER/NETDEV_REGISTERevents must be sent. This at least clears dst entries from device. Bug #64925.
</div>
==== diff-ve-net-tcp-hashes-access-20060707 ====
<div class="change">
Patch from Pavel Emelianov <xemul@openvz.org>:<br/>
Check for inet_bin_bucket owner in inet(6)_hash_connect.
Noticed by Andrey Savochkin.
</div>
</noinclude>