Author | Commit | Message | Commit date | Issues | |
---|---|---|---|---|---|
OpenVZ team | 38663ac994c | linux-2.6.18-028stab027 released | |||
Alexandr 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 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 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 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 Andreev | 890503fcc50 | [SCHED] find_busiest_group() should use pcpu maskVCPUs should be skipped according to pcpu mask | |||
OpenVZ team | bab2b129449 | linux-2.6.18-028stab026 released | |||
Alexandr 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 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 Andreev | 15f72218f30 | [SCHED] small cleanup of codeRemove unnecessary argument this_pcpu (=== smp_processor_id()) from find_idle_target() and find_busiest_vsched() | |||
Vasily 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 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 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 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 team | 466c9378357 | linux-2.6.18-028stab025 released | |||
Alexandr 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 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 Korotaev | 6a9752504b0 | [PATCH] revert exec perms race fix (part 3) | |||
Kirill Korotaev | d15190385a6 | [PATCH] revert exec perms race fix (part 2) | |||
Kirill Korotaev | 8e789fc305f | [PATCH] Compilation fix fo idlebalanceCompilation fix for diff-fairsched-idlebalance-20070328 | |||
Pavel Emelianov | 6368196c64c | [ACL] ext3: fix minor merge bugext3: fix minor merge bug | |||
Kirill Korotaev | 2de38854df3 | Small compilation fix | |||
Pavel 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 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 Korotaev | a8c5eda4b90 | [PATCH] Disable NMI watchdog by defaultRemove enable of NMI watchdog by default | |||
Vasily 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 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 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 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 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 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 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 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 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 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 team | 292c1aae983 | linux-2.6.18-028stab024 released | |||
Alexey Dobriyan | 29b59f40255 | [IOPRIO] dereference after freesave queue pointer in order not to dereference freed cfq_bc structure. | |||
Den Lunev | 4876a78c725 | Removes warning about special pids (from NFS kernel thread spawning).http://bugzilla.openvz.org/show_bug.cgi?id=470 | |||
Alexey 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 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 team | 37dfe28675b | linux-2.6.18-028stab023.1 released | |||
Kirill Korotaev | 4b5e31be809 | Fix loopback stats compilation | |||
OpenVZ team | 4433ee1e2d8 | linux-2.6.18-028stab023 released | |||
Dmitriy 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 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 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 Emelianov | 8fc6184ef19 | [IOPRIO] Fix potential deadlock found by lockdepcfq_bc_list_lock should be taken with IRQs disabled | |||
Andrey 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 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 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 |
Commits
Author | Commit | Commit date | Issues | |
---|---|---|---|---|
OpenVZ team | 38663ac994c | |||
Alexandr Andreev | e1c1be83b4a | |||
Vasily Tarasov | 7a3b51adaa6 | |||
Andrey Mirkin | ff598aff37a | |||
Pavel Emelianov | 1a44bf252b1 | |||
Alexandr Andreev | 890503fcc50 | |||
OpenVZ team | bab2b129449 | |||
Alexandr Andreev | 17df200b283 | |||
Alexandr Andreev | 703c9e5a515 | |||
Alexandr Andreev | 15f72218f30 | |||
Vasily Tarasov | 061fb955312 | |||
Alexandr Andreev | 568e13a57fb | |||
Alexandr Andreev | a165afe0286 | |||
Vasily Tarasov | 8672d0e3859 | |||
OpenVZ team | 466c9378357 | |||
Alexandr Andreev | 6d3fc6a224b | |||
Evgeny Kravtsunov | b7912df7a82 | |||
Kirill Korotaev | 6a9752504b0 | |||
Kirill Korotaev | d15190385a6 | |||
Kirill Korotaev | 8e789fc305f | |||
Pavel Emelianov | 6368196c64c | |||
Kirill Korotaev | 2de38854df3 | |||
Pavel Emelianov | cd275477a5a | |||
Alexandr Andreev | 6caf5463a7c | |||
Kirill Korotaev | a8c5eda4b90 | |||
Vasily Tarasov | a0f80b36779 | |||
Pavel Emelianov | e11eedcd9b4 | |||
Kirill Korotaev | dcad8e3d576 | |||
Konstantin Khorenko | 1ddec57b89c | |||
Alexandr Andreev | 4b57c242710 | |||
Andrey Mirkin | 32c82e3b285 | |||
Den Lunev | 5dffb55a806 | |||
Alexey Dobriyan | c3f9143b5cf | |||
Kirill Korotaev | 5f35bc73d46 | |||
Andrey Mirkin | 1a5613fdb23 | |||
OpenVZ team | 292c1aae983 | |||
Alexey Dobriyan | 29b59f40255 | |||
Den Lunev | 4876a78c725 | |||
Alexey Dobriyan | 9cf6fa8edf1 | |||
Alexey Kuznetsov | 48b9727aa7e | |||
OpenVZ team | 37dfe28675b | |||
Kirill Korotaev | 4b5e31be809 | |||
OpenVZ team | 4433ee1e2d8 | |||
Dmitriy Monakhov | 1e203c60584 | |||
Dmitriy Monakhov | a996105f3c2 | |||
Dmitriy Monakhov | 2acc6b50c9d | |||
Pavel Emelianov | 8fc6184ef19 | |||
Andrey Mirkin | 57eaae4286b | |||
Pavel Emelianov | 4f4bec72b62 | |||
Pavel Emelianov | 90720dbdff0 |