OpenVZ-legacy
  1. OpenVZ-legacy

linux-2.6.18-openvz

Public
AuthorCommitMessageCommit dateIssues
OpenVZ teamPavelOpenVZ team
38663ac994clinux-2.6.18-028stab027 released
Alexandr AndreevPavel EmelianovAlexandr Andreev
e1c1be83b4a[SCHED] VCPU should be initialized completely before deletion There is a race in vsched_del_vcpu() - we can kill migration_thread() even if it has not started yet, i.e. migration_thread() function is not called at all. So, migrate_live_tasks() and migrate_dead_tasks() will not be called on this vcpu while migration thread is killed. But there can be some tasks, that have already migrated on thi...This bug can be easily reproduced. On a busy host with many running tasks user can run: In this case, after the second vzctl, migration thread on VCPU 2 will be created and just waked up, but it can be not really started (scheduled) yet if there are a lot of other more priority tasks running on the host. If it will not be scheduled before the third vzctl call, there will be kernel bug in vsche...
Vasily TarasovPavel EmelianovVasily Tarasov
7a3b51adaa6[IOPRIO] compilation fix in case UBC_IO_ACCT is offCompilation fix in case UBC_IO_ACCT is off http://bugzilla.openvz.org/show_bug.cgi?id=527
Andrey MirkinPavel EmelianovAndrey Mirkin
ff598aff37a[BC] Fix potential beancounter refcount leakOn some error paths we forget to put beancounter. This patch fixes two such places: - sys_setluid() - bc_entry_open()
Pavel EmelianovPavel Emelianov
1a44bf252b1[BC] Don't make pre-created INDEX_AC and INDEX_L3 caches UBCThis made size-32 and size-64 caches on i386 be the same capacity as size-X(UBC) ones.
Alexandr AndreevPavel EmelianovAlexandr Andreev
890503fcc50[SCHED] find_busiest_group() should use pcpu maskVCPUs should be skipped according to pcpu mask
OpenVZ teamPavelOpenVZ team
bab2b129449linux-2.6.18-028stab026 released
Alexandr AndreevPavel EmelianovAlexandr Andreev
17df200b283[SCHED] find_idle_vcpu() mask check fixIn find_idle_vcpu() we skip VCPU's with ID's that is not set in physical '*cpus' mask. It's incorrect. We must skip VCPU's that has appropriate VCPU->last_pcpu
Alexandr AndreevPavel EmelianovAlexandr Andreev
703c9e5a515[SCHED] Cleanup: use vcpu_last_pcpu macro instead of vcpu->last_pcpuReplace vcpu->last_pcpu by vcpu_last_pcpu(vcpu), to fix compilation without CONFIG_VSCHED_VCPU
Alexandr AndreevPavel EmelianovAlexandr Andreev
15f72218f30[SCHED] small cleanup of codeRemove unnecessary argument this_pcpu (=== smp_processor_id()) from find_idle_target() and find_busiest_vsched()
Vasily TarasovPavel EmelianovVasily Tarasov
061fb955312[IOPRIO] elevator switch oops fix When elevator switch happens and UBs persist, putting of async cfqq can happen second time due to non-NULL value in array.http://bugzilla.openvz.org/show_bug.cgi?id=526
Alexandr AndreevPavel EmelianovAlexandr Andreev
568e13a57fb[SCHED] find_busiest_queue() should select VCPUs from given vsched onlyIn new scheme, we choose vsched in find_busiest_vsched(), i.e. before find_busiest_queue(), so when we look for busiest queue we must consider this vsched VCPU's only.
Alexandr AndreevPavel EmelianovAlexandr Andreev
a165afe0286[SCHED] remove debug hunk from previous balance patch My previous patch for load_balance() contains wrong condition statement, that I forget to remove after debugging.In 028stab025.1 load_balance() will not pull tasks from a busiest VCPU's, if there are < 2 tasks running on current VCPU. Attached patch removes this incorrect check and fixes the problem.
Vasily TarasovPavel EmelianovVasily Tarasov
8672d0e3859[IOPRIO] new cfq queue putting mechanismIt's better to use original cfqq put function from CFQ then rewrite it. Use elevator_ops structure for exporting it.
OpenVZ teamPavelOpenVZ team
466c9378357linux-2.6.18-028stab025 released
Alexandr AndreevPavel EmelianovAlexandr Andreev
6d3fc6a224b[SCHED] Improve vcpu scheduling taking into account cache hotness In original VZ kernel schedule_vcpu() takes next VCPU from vsched->active list, and it doesn't take in to account vcpu->last_pcpu, so VCPU's can jump from PCPU to PCPU too often.Try to skip 'hot' VCPU's, i.e. VCPU's that were running on some other PCPU recently. Time slice threshold is tunable via /proc/sys/kernel/vcpu_hot_timeslice
Evgeny KravtsunovPavel EmelianovEvgeny Kravtsunov
b7912df7a82[IOPRIO] Fix cfqq index calculation in async caseField ioprio of task_struct consits of two numbers: 1) value of class (bits 14-16), 2) value of data (bits 0-13). Value of data is allowed to belong the range [0, 7]. In current implementation of cfq_set_request tsk->ioprio is used as index of *async_cfqq[8] array. It is wrong because tsk->ioprio can be >> 8. This can cause to either corruption or reading insufficient value: cfq_set_request...
Kirill KorotaevPavel EmelianovKirill Korotaev
6a9752504b0[PATCH] revert exec perms race fix (part 3)
Kirill KorotaevPavel EmelianovKirill Korotaev
d15190385a6[PATCH] revert exec perms race fix (part 2)
Kirill KorotaevPavel EmelianovKirill Korotaev
8e789fc305f[PATCH] Compilation fix fo idlebalanceCompilation fix for diff-fairsched-idlebalance-20070328
Pavel EmelianovPavel Emelianov
6368196c64c[ACL] ext3: fix minor merge bugext3: fix minor merge bug
Kirill KorotaevPavel EmelianovKirill Korotaev
2de38854df3Small compilation fix
Pavel EmelianovPavel Emelianov
cd275477a5a[IOPRIO] Call bc_findcreate_cfq_bc() out of q->queue_loc (fix 2)Fix to fix for call bc_findcreate_cfq_bc() out of q->queue_lock. iopriv should be initialized in both cases.
Alexandr AndreevPavel EmelianovAlexandr Andreev
6caf5463a7c[SCHED] Improve idle load balanceIdle balance is called from an idle thread on rebalance_tick(). load_balance() tries to find busiest group in idle_vsched, where there are no really running tasks. With this patch, load_balance() will try to find a busiest vsched first, and in case of success, then find busiest group inside this vsched, and so on...
Kirill KorotaevPavel EmelianovKirill Korotaev
a8c5eda4b90[PATCH] Disable NMI watchdog by defaultRemove enable of NMI watchdog by default
Vasily TarasovPavel EmelianovVasily Tarasov
a0f80b36779[IOPRIO] Call bc_findcreate_cfq_bc() out of q->queue_lockOtherwise we may cause GFP_KERNEL allocation to happen with a spinlock held.
Pavel EmelianovPavel Emelianov
e11eedcd9b4[LOCKDEP] Another fix for virtualized filesystems lockdepAs described before, filesystems in our kernels are no longer static objects and thus lockdep refuses to work. This was (wrongly) fixed by setting one static class for all super block's semaphores and locks. It turned out that different filesystems use different lock ordering for sb locks and some other ones, e.g. UDF may take inode->i_mutex under sb->s_lock, while ext3 takes sb->s_lock under ...
Kirill KorotaevPavel EmelianovKirill Korotaev
dcad8e3d576[NMI] set default NMI watchdog timeout to 30 secsIncrease default NMI watchdog timeout to 30 seconds as it was in 2.6.9
Konstantin KhorenkoPavel EmelianovKonstantin Khorenko
1ddec57b89c[PROC] mainstream: race between proc_lookup() and sys_delete_module()Fix for the race between proc_lookup() and sys_delete_module(): proc_lookup() can find PDE under proc_subdir_lock, on 2nd CPU sys_delete_module() removes pde and module, then first CPU tries to get de and module in proc_get_inode()... Bum...
Alexandr AndreevPavel EmelianovAlexandr Andreev
4b57c242710[VESTATS] use jiffies instead of cycles for mm statsuse jiffies instead of cycles for mm stats about page allocation latency. This implementation if very simple but it's strictly not that accurate, because we can add 10 000 000 (or more) cycles (it's ~ 1 jiffy) even if actual allocation consumes < 10 000 cycles, but jiffy has been changed at the moment.
Andrey MirkinPavel EmelianovAndrey Mirkin
32c82e3b285[CPT] Fix IPv6 addresses restoreAll IPv6 addresses based on MAC are created with valid lifetime 0. We checkpoint them and try to restore, but fail as inet6_addr_add() returns -EINVAL if valid_lft is zero. We can use ifaddr flags to find correct values for prefered and valid life times. TODO: Kernel creates automatically local ipv6 address based on MAC address on it when interface is upped. We can manually remove this addre...
Den LunevPavel EmelianovDen Lunev
5dffb55a806[NFS] fix lockd context when bind mounted from VE0 to VEThis patch fixes NFS locking support over partitions bind mounted to VE from VE0.
Alexey DobriyanPavel EmelianovAlexey Dobriyan
c3f9143b5cf[PATCH] mainstream: fix sys_accept() error path* d_alloc() in sock_attach_fd() fails leaving ->f_dentry NULL * bail out to out_fd label, which does fput()/__fput() on new file * but __fput() assumes valid ->f_dentry
Kirill KorotaevPavel EmelianovKirill Korotaev
5f35bc73d46[PATCH] revert exec perms race fixBackout exec perms patches: diff-exec-perm-20060317 diff-exec-perm-jffs2-20060317 This patches are correct, but the race they fix is not exploitable. They do harm since people can't easily compile 3rd party (out of mainstream) patches/filesystems, so better drop to make everyone lifes easier.
Andrey MirkinPavel EmelianovAndrey Mirkin
1a5613fdb23[CPT] unlimit dcachesize on restoreRecently we have added adjusting of 3 limits on restore to not fail because of hitting limits. Now we have to add another one - dcachesize.
OpenVZ teamPavelOpenVZ team
292c1aae983linux-2.6.18-028stab024 released
Alexey DobriyanPavel EmelianovAlexey Dobriyan
29b59f40255[IOPRIO] dereference after freesave queue pointer in order not to dereference freed cfq_bc structure.
Den LunevPavel EmelianovDen Lunev
4876a78c725Removes warning about special pids (from NFS kernel thread spawning).http://bugzilla.openvz.org/show_bug.cgi?id=470
Alexey DobriyanPavel EmelianovAlexey Dobriyan
9cf6fa8edf1[PATCH] Fix unlocked access to task list from /proc/pid/oom_scoreFailing code was prefetch hidden in list_for_each_entry(child, &p->children, sibling) { in badness(). badness() is reachable from two points. One is proc_oom_score, another is out_of_memory() => oom_select_bad_process() => badness(). Second path grabs tasklist_lock, while first doesn't.
Alexey KuznetsovPavel EmelianovAlexey Kuznetsov
48b9727aa7e[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.
OpenVZ teamPavelOpenVZ team
37dfe28675blinux-2.6.18-028stab023.1 released
Kirill KorotaevPavel EmelianovKirill Korotaev
4b5e31be809Fix loopback stats compilation
OpenVZ teamPavelOpenVZ team
4433ee1e2d8linux-2.6.18-028stab023 released
Dmitriy MonakhovPavel EmelianovDmitriy Monakhov
1e203c60584[EXT3] dirindex error handling issues (additional) I've found one more place where we exit with wrong error code. (Andreas Dilger agreed that it should be fixed), but not send it to lkml yet.Signed-Off-By: Monakhov Dmitriy <dmonakhov@openvz.org>
Dmitriy MonakhovPavel EmelianovDmitriy Monakhov
a996105f3c2[EXT3] dirindex error handling issues (fix) my previous patch changed error message semantics in do_split(). Initially when ext3_append() failed we just exit without printing error. In fact ext3_append() may fail, it is legal and it's happens qite often (ENOSPC for example). This cause annoying fake error message. So restore this semantic as it was before patch.Signed-off-by: Monakhov Dmitriy <dmonakhov@openvz.org> Cc: Andreas Dilger <adilger@clusterfs.com> Cc: Theodore Ts'o <tytso@mit.edu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Dmitriy MonakhovPavel EmelianovDmitriy Monakhov
2acc6b50c9d[EXT3] dirindex error handling issues- ext3_dx_find_entry() exit with out setting proper error pointer - do_split() exit with out setting proper error pointer it is realy painful because many callers contain folowing code: de = do_split(handle,dir, &bh, frame, &hinfo, &retval); if (!(de)) return retval; <<< WOW retval wasn't changed by do_split(), so caller failed ...
Pavel EmelianovPavel Emelianov
8fc6184ef19[IOPRIO] Fix potential deadlock found by lockdepcfq_bc_list_lock should be taken with IRQs disabled
Andrey MirkinPavel EmelianovAndrey Mirkin
57eaae4286b[CPT] Reserve vsyscall section and object IDSupport in CPT for vsyscall is not implemented in 2.6.18 kernel yet. This patch is needed to synchronize section and object IDs in 2.6.9 and 2.6.18 kernel to not break 2.6.9 -> 2.6.18 migration.
Pavel EmelianovPavel Emelianov
4f4bec72b62[LOCKDEP] Fix lockdep for virtualized runqueueslockdep is debugging technology that tracks the sequence of spin_lock()-s in kernel. Each lock has a "class" assigned. Rules: 1. class must be a static object as it is registered within lockdep internals 2. two locks of the same class must be taken with _nested suffix to explicitly tell lockdep that this is not a deadlock Problem is that runqueues and filesystem types are no longer st...
Pavel EmelianovPavel Emelianov
90720dbdff0[LOCKDEP] Fix lockdep for virtualized fstype lockdep is debugging technology that tracks the sequence of spin_lock()-s in kernel. Each lock has a "class" assigned. Rules: 1. class must be a static object as it is registered within lockdep internals 2. two locks of the same class must be taken with _nested suffix to explicitly tell lockdep that this is not a deadlockProblem is that runqueues and filesystem types are no longer static in OpenVZ kernel. File system types are resolved that way: set common class for all super blocks. I haven't yet found places where two locks are taken for two super blocks