OpenVZ-legacy
  1. OpenVZ-legacy

linux-2.6.20-openvz

Public
AuthorCommitMessageCommit dateIssues
OpenVZ teamPavelOpenVZ team
2caa17a1ac3linux-2.6.20-ovz008 released
Pavel EmelianovPavel Emelianov
b6b274f8667Compilation fix for cap_best patch
Pavel EmelianovPavel Emelianov
2b147d811adCompilation fixes related to pid namespaces after merging stable patches
Pavel EmelianovPavel Emelianov
a8f9a9389c3[NFS] Small compilation fix after merging stable patches
Pavel EmelianovPavel Emelianov
1a0f402ff52[CPT] Compilation fixesFrom now on CPT will be turned on in 2.6.20 kernel. http://bugzilla.openvz.org/show_bug.cgi?id=608
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
21536282e5a[CPT] bug in restore net routesWhen netroute section in dump is padded, restore tries to interpret padding as the next rtnetlink message and deadlocks interpreting it as message of zero length.
Matt MackallPavel EmelianovMatt Mackall
4493a71e32frandom: fix seeding with zero entropyAdd data from zero-entropy random_writes directly to output pools to avoid accounting difficulties on machines without entropy sources. Tested on lguest with all entropy sources disabled. Signed-off-by: Matt Mackall <mpm@selenic.com> Acked-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Kirill Korotaev <dev@openvz.org> Signed-of...
Alexey DobriyanPavel EmelianovAlexey Dobriyan
a802ad6717d[PATCH] dcache: move might_sleep() from under preempt_disable()dput() had might_sleep() check in the very beginning. After renaming to dput_recursive() and adding preempt_disable() call this check ended up in region with disabled preemption, so with CONFIG_DEBUG_SPINLOCK_SLEEP=y and preemption on dmesg gets heavily spammed. So, do might_sleep() check earlier.
Alexey DobriyanPavel EmelianovAlexey Dobriyan
b0b30176219Speedup the dcache shrinkerBackport of commit d52b908646b88cb1952ab8c9b2d4423908a23f11 Author: Miklos Szeredi <mszeredi@suse.cz> Date: Tue May 8 00:23:46 2007 -0700 fix quadratic behavior of shrink_dcache_parent() The time shrink_dcache_parent() takes, grows quadratically with the depth of the tree under 'parent'. This starts to get noticable at about 10,000. These kinds of depths don't ...
Alexandr AndreevPavel EmelianovAlexandr Andreev
3c5eb789888[PATCH] sched: fix up fairsched tick duration according to VCPU timeslice With latest 'vcpu dynamic timeslice' patch we broke fairsched scheduler logic a bit, which assumed, that fairsched_schedule() must be called on each timer tick.New bigger fairsched timeslice was introduced: this value must be always >= vcpu timeslice Bug #82969
Vasily TarasovPavel EmelianovVasily Tarasov
1adc425c1c6[PATCH] Fix iowait stats in VE02.6.18 OVZ kernels don't account iowait time, this value is always displayed as zero: $ cat /proc/stat | grep cpu cpu 1700 5 1818 11790110 0 60 204 0 cpu0 893 4 1020 5894818 0 56 174 0 cpu1 807 1 797 5895291 0 4 29 0 This happens since calculations usually happen in idle context. Actually there is no good definition of iowait for global VE0 context. And the whole iowait concept is arguable,...
Vasily TarasovPavel EmelianovVasily Tarasov
89919ba4977[PATCH] Fix debug messages when CONFIG_DEBUG_PREEMPT is used If CONFIG_PREEMPT and CONFIG_DEBUG_PREEMPT are turned on, OpenVZ kernels produce a lot of similar messages:BUG: using smp_processor_id() in preemptible [00000001] code: <process>/<pid> caller is io_schedule+0x22/0x53 Call Trace: ... Two reasons of these messages: 1) we call smp_processor_id() from io_schedule/io_schedule_timeout without preemption disabled. minor, raw_smp_processor_id() should be used. 2) task_struct->cpus_allowed has mask of vcpus instead of pcpus. Therefore debug_smp_proces...
Kirill KorotaevPavel EmelianovKirill Korotaev
f75f3fe33dc[PATCH] sched: boot CPU can have non-zero ID (sparc)I was blindly assuming that boot processor ID is always 0, which was not true on SUN4U machine where boot CPU has ID 1 and 2nd CPU has ID 0. Strange, but it is. So replace 0 with real processor id in the code.
Kirill KorotaevPavel EmelianovKirill Korotaev
94be7557841[PATCH] fairsched: fix VCPU info in show regs on x86-64
Evgeny KravtsunovPavel EmelianovEvgeny Kravtsunov
9692fbb00a0[PATCH] rename vcpu_info to vcpu_struct due to conflict with XenRename vcpu_info to vcpu_struct due to conflict with Xen which uses the same name for its data structure (sigh... globally...) Thanks to seyko2 for testing OVZ-Xen kernel.
Alexandr AndreevPavel EmelianovAlexandr Andreev
b246a190169[SCHED] compilation fix in case CONFIG_SCHED_VCPU=nThis patch fixes compilation of OVZ kernel with CONFIG_SCHED_VCPU=n
Alexandr AndreevPavel EmelianovAlexandr Andreev
fbb9b075fa5[SCHED] optimization: dynamic vcpu_timeslicevcpu_timeslice == -1 now has special meaning (and -1 is default value now). In this case, actual vcpu_timeslice value will depend on number of VCPU's ready to run: assume N = ready_vcpus / nr_pcpus for N <= 1, vcpu_timeslice will be 8 1 < N <= 2, vcpu_timeslice = 4 2 < N <= 3, vcpu_timeslice = 2 3 < N <= 4, vcpu_timeslice = 1 N > 4, vcpu_timeslice = 0 This patch lets significantly improve p...
Kirill KorotaevPavel EmelianovKirill Korotaev
c72623e4925[PATCH] ppc: fix screwed OVZ syscall numbers Fix enumeration of OVZ syscall numbers on powerpcThanks to Christian Kaiser for noticing this.
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
4979f987726[CPT] restore packet socketBinding of packet socket was skipped. One tricky bit: getsockname returns "real" sockaddr length and bind() does not accept real name, it wants sizeof(struct sockaddr_ll). Missing bits: - multicast list, incuding promisc status - statistics is not restored Enough for beginning, the rest requires surgery in core.
Andrey MirkinPavel EmelianovAndrey Mirkin
68cac1849d8[PATCH] CPT: checkpoint inodes with deleted referenceConsider the following scenario: 1. Create file (file1) and hard link to it (file2) 2. Open file2 3. Unlink file2 After that during checkpointing we will have the following err: Can not dump VE: Device or resource busy deleted reference to existing inode, checkpointing is impossible The inode in question is not deleted, but it is not foundable from inside checkpointed process group and not ea...
Andrey MirkinPavel EmelianovAndrey Mirkin
668c2a97b7e[PATCH] CPT: restore deleted files (hardlink case)The bug was here all the time, but it was never triggered as we never entered the following path on checkpointing: if (!IS_ROOT(d) && d_unhashed(d)) { struct file *parent; parent = iobj->o_parent; if (!parent || (!IS_ROOT(parent->f_dentry) && d_unhashed(parent->f_dentry))) { /* Inode is not deleted, but it does not ...
Andrey MirkinPavel EmelianovAndrey Mirkin
7776f58bfd3[PATCH] CPT: check if ip_talbes are enabled before dumping themiptables-save returns error if module ip_tables is not loaded. So, we just do not need to dump iptables at all if this module is not loaded in VE. Don't try to dump iptables if they are not enabled in VE.
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
d80ad2e7a40[CPT][IA64] some prctl flags are forgottenSome apps do lots of unaligned accesses, know about this and use prctl(). We did not save/restore those flags and got flood of warnings after checkpointing.
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
8a66cb915e4[CPT] fix compilation warning due to cast u64 -> pointer
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
182e595217d[CPT] cosmetic fix to match 2.6.9 textIn 2.6.9 it was a critical bug, image would be corrupted because of broken alignment if we did not make this. In 2.6.18 it is just nice.
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
f092c71a5b2[CPT][IA64] save/restore NaT valuesThis patch closes two remaining holes in IA64 cpt implementation, both are of no immediate practical value, but neraly impossible to fix after we freeze layout of cpt image structs. 1. Migration between hosts with different layout of struct thread_info, which is possible, if some new bits are added to thread_info in newer kernels. 2. NaT bits are acurately saved and restored. This is req...
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
15a9a372f66[CPT] namespace semaphore possible deadlockOld bug. To my shame I knew about this, but ignored. The fix is to drop namespace semaphore. We make mntget() on current mnt, so that it will not disappear from under us. It still can be unmounted with MNT_DETACH, in this case we cannot proceed with scanning mnt list and we must not: unmounting something inside VE while checkpointing is an obvious good reason to fail.
Andrey MirkinPavel EmelianovAndrey Mirkin
7440501b876[PATCH] CPT: print file name when fail to open it Print file name if we failed to open it. This information will be usefull for resolving problems.Bug #83180
Pavel EmelianovPavel Emelianov
03507778db6[PATCH] CPT: fix potential pid leakWhen restoring the VE restore_one_signal_struct() can occasionally leak some pids. Bug #82895
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
b11214a9021[CPT] restore last pidSigh. I hoped it is not necessary. It is. bash goes insane when its children get not monotonic pids. The place where we store saved last pid is unusual. Violating tradition I extend one of cpt image structs. This should be ok: migration to older kernels will be prohibited, migration from old to new ones is OK.
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
5c77568839e[CPT] Fix possible deadlock in checkpointing of mmLearned it wrong once and did not relearn. anon_vma lock cannot be taken under page table lock. And it is taken and should be taken in reversed order, cpt_mm even has a special hack due to wrong understanding: look at chunk converting ugly spin_trylock to spin_lock. Difference of previous version: in one case (does not happen normally, but yet), page table lock could remain locked. Bug #82785
Andrey MirkinPavel EmelianovAndrey Mirkin
5b107e9b0ee[PATCH] CPT: fix kernel_thread error code checks Some versions of tar return non-zero error code if it was not possible to write warning message to stderr. So, we need to open /dev/null for it. But during restore we will face another problem - /dev is stored on tmpfs, so we are not able to open /dev/null and we need to create it.Also there is another bug which come to CPT code from mainstream kernel_thread helper. If our function returns an error (e.g. exec failed) it doesn't place correct exit code to edi register before calling do_exit. Bug #83183
Pavel EmelianovPavel Emelianov
60f0cc806b3Compilation fix for previous patch
Andrey MirkinPavel EmelianovAndrey Mirkin
2026ef985f3While checkpointing due to memory shortage CPT processes can be killed and tmpfs will not be saved.During restore we will see such errors: CPT ERR: e0000002ef9c5000,111 :-2 mounting /dev/pts devpts 40000000 CPT ERR: e0000002ef9c5000,111 :rst_namespace: -2 Bug #79854 This happens as /dev is tmpfs now and its content was not saved during checkpointing. We need to check exit status of tar and iptables-save to be sure that they exited normally. Changes from v1: - return -EINVAL in case of e...
Evgeny KravtsunovPavel EmelianovEvgeny Kravtsunov
6120ae89e32[XEN] Fix LDT handling - There is one chunk LDT data only
Vasily TarasovPavel EmelianovVasily Tarasov
78860b37d1e[PATCH] sysctl: add VE capability boundary set sysctl The user wishes to have virtualized kernel.cap-bound sysctl in order to use lcap tool to observe capabilities allowed in VE. We have cap_default field on ve_struct, that can be modified to be used as virtualized cap_bset. This patch: - renames cap_default -> ve_cap_bset - virtualizes cap_bset - introduces new proc and strategy routines to ha...http://bugzilla.openvz.org/show_bug.cgi?id=524
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
1900875262e[CPT] too aggressive sys_futex() restartCheckpointing used to enforce restart of sys_futex even when it returns -EINTR to workaround for sick return value of FUTEX_WAIT. Of course, this is wrong (f.e. it means restart of timed FUTEX_WAIT with original timeout :-(), but do not have much of choice if we do not want to break everything. At least one case can be relaxed. If we have signal pending, when we restore we must not restart. Th...
Andrey MirkinPavel EmelianovAndrey Mirkin
72f9d0c0850[CPT] 2.6.9 <-> 2.6.18 features mask compatibility issueUse VE_FEATURES_OLD mask for old (< 2.6.18 kernel) CPT images.
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
3c4d0f966c3[CPT] prevent changes of VM after VE was checkpointedIt is possible that processes' VM is changed after VE is checkpointed and killed. At the moment it will happen when a process set clear_parent_tid or robust list pointers. It was not considered a problem, because VM is about to be destroyed in any case. But one case was missed: corresponging VM areas could be mapped to a file. If it is not deleted, the change will reach file system and migrate...
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
781d37d170d[CPT] VE suspend cleanupsThe patch fixes one bug. Sometimes one process sleeps in an uninterruptible state waiting for some event depending on another process, which could be suspended. I know three such cases: 1. Process did vfork() and waits when child will exec() 2. Thread did exec() and waits when its siblings will die. 3. Thread makes coredump and waits when siblings stop. We detected case #1 directly by looki...
Andrey MirkinPavel EmelianovAndrey Mirkin
987a2a6c3b8[PATCH] CPT: adjust UBC limits before restoring processesMove UBC limit adjustments in more appropriate place, where it is actually needed. SECURITY! UBC limits can be set to maximum value during restore process only after execution of external processes (tar, iptables-restore) to avoid security issues.
Andrey MirkinPavel EmelianovAndrey Mirkin
3dd3e516185We have a problem with external processes.If someone enters to VE forks and does some job w/o exec, then the process is not considered as external (pids are virtual), but some of the files (e.g. libs) can be from HN, i.e. external. New version of vzctl lib enters in VE, forks and executes some function (mainly vzagent functions). The parent then exits before the child finishes its job. And child is reparented to VE's init. Temporary a...
Vasily TarasovPavel EmelianovVasily Tarasov
f346616f75e[CPT] More fixes in inotify to make it checkpointable
Alexey DobriyanPavel EmelianovAlexey Dobriyan
773d8cb9628[PATCH] VZDQ: Fix lockdep warning about s_umount dependancyLockdep learns false dependency due to vz_restore_symlink() and later complains about possible circular locking when quotaon is done. Temporarily up ->s_umount semaphore to workaround this. http://bugzilla.openvz.org/show_bug.cgi?id=585
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
e465196d614[VZDQ] forced accounting for vzquotavzquota in GFS is implemented differently of one for ext3. Instead of atomic check-and-account, it makes checking first and, if at least one block can be added, it starts transaction, which makes strict accounting. We need two new methods: 1. Forced accounting is implemented by passing a special value to alloc_space. 2. Quota checking also can be done in this way, but for now it is impl...
Alexey DobriyanPavel EmelianovAlexey Dobriyan
e9f0c7840a3[VZDQ] Fix GFP_KERNEL allocation under spin lock in vzdq_aquot_buildmntlistSwitch allocation from GFP_KERNEL to GFP_ATOMIC under vfsmount_lock in vzdq_aquot_buildmntlist()
Alexey DobriyanPavel EmelianovAlexey Dobriyan
6d837d60ee1[VZDQ] Trivial fix for vzaquota.group lookup"vzaquota.group" was memcmp'd for only 11 symbols, allowing names like "vzaquota.grouX" to be looked up successfully.
Den LunevPavel EmelianovDen Lunev
78efafa092b[VZDQ] sb->put_super can be NULL in valid cases put_super() superblock operation was not checked for NULL in vzquota leading to NULL dereference.http://bugzilla.openvz.org/show_bug.cgi?id=541 Bug #81936
Vasily TarasovPavel EmelianovVasily Tarasov
7423f4ecfd0[PATCH] vzdquota: compilation fix for ppc32 While compiling on ppc32 the following error appears: Building modules, stage 2. MODPOST WARNING: "__cmpdi2" [fs/vzdquota.ko] undefined! make[2]: *** [__modpost] Error 1 The problem is that switch((long_long_var)) is not a primitive for ppc32 gcc: libgcc.a is needed, which is out of the kernel. The problem was noticed by mbaranzak user at forum and he found the reason of it.
Dmitry MishinPavel EmelianovDmitry Mishin
eee6ad4f95c[BRIDGE] bridge deliver to original eth0 device - now packets are input to the local system as they are coming from phys device only; - fixed bunch of bugs with VE <-> HN communications.