Peter Zijlstra
da8d5089da
sched: fix possible recursive rq->lock
...
Vaidyanathan Srinivasan reported:
> =============================================
> [ INFO: possible recursive locking detected ]
> 2.6.28-autotest-tip-sv #1
> ---------------------------------------------
> klogd/5062 is trying to acquire lock:
> (&rq->lock){++..}, at: [<ffffffff8022aca2>] task_rq_lock+0x45/0x7e
>
> but task is already holding lock:
> (&rq->lock){++..}, at: [<ffffffff805f7354>] schedule+0x158/0xa31
With sched_mc at 2. (it is default-off)
Strictly speaking we'll not deadlock, because ttwu will not be able to
place the migration task on our rq, but since the code can deal with
both rqs getting unlocked, this seems the easiest way out.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-07 16:10:54 +01:00
..
irq
Merge branch 'cpus4096-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-01-03 12:04:39 -08:00
power
pm: struct device - replace bus_id with dev_name(), dev_set_name()
2009-01-06 10:44:39 -08:00
time
Merge branches 'sched/clock', 'sched/cleanups' and 'linus' into sched/urgent
2009-01-06 09:33:57 +01:00
trace
Merge branch 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-01-02 11:44:09 -08:00
.gitignore
acct.c
CRED: Wrap task credential accesses in the core kernel
2008-11-14 10:39:12 +11:00
audit.c
[PATCH] fix broken timestamps in AVC generated by kernel threads
2008-12-09 02:27:41 -05:00
audit.h
fixing audit rule ordering mess, part 1
2009-01-04 15:14:41 -05:00
audit_tree.c
audit: validate comparison operations, store them in sane form
2009-01-04 15:14:42 -05:00
auditfilter.c
audit: validate comparison operations, store them in sane form
2009-01-04 15:14:42 -05:00
auditsc.c
make sure that filterkey of task,always rules is reported
2009-01-04 15:14:42 -05:00
backtracetest.c
bounds.c
capability.c
Merge branch 'next' into for-linus
2009-01-07 09:58:22 +11:00
cgroup.c
mm: remove cgroup_mm_owner_callbacks
2009-01-06 15:59:01 -08:00
cgroup_debug.c
cgroups: fix probable race with put_css_set[_taskexit] and find_css_set
2008-10-20 08:52:38 -07:00
cgroup_freezer.c
freezer_cg: disable writing freezer.state of root cgroup
2008-11-12 17:17:16 -08:00
compat.c
Allow times and time system calls to return small negative values
2009-01-06 15:59:13 -08:00
configs.c
kernel/configs.c: remove useless comments
2008-10-20 08:52:34 -07:00
cpu.c
stop_machine: introduce stop_machine_create/destroy.
2009-01-05 08:40:14 +10:30
cpuset.c
oom: print triggering task's cpuset and mems allowed
2009-01-06 15:58:59 -08:00
cred-internals.h
CRED: Inaugurate COW credentials
2008-11-14 10:39:23 +11:00
cred.c
User namespaces: set of cleanups (v2)
2008-11-24 18:57:41 -05:00
delayacct.c
schedstat: consolidate per-task cpu runtime stats
2008-12-18 13:54:01 +01:00
dma-coherent.c
dma-coherent: catch oversized requests to dma_alloc_from_coherent()
2009-01-06 15:59:31 -08:00
dma.c
kernel/dma.c: remove a CVS keyword
2008-10-16 11:21:30 -07:00
exec_domain.c
proc: move /proc/execdomains to kernel/exec_domain.c
2008-10-23 14:30:41 +04:00
exit.c
mm: introduce get_mm_hiwater_xxx(), fix taskstats->hiwater_xxx accounting
2009-01-06 15:59:09 -08:00
extable.c
Merge branch 'core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-12-30 16:10:19 -08:00
fork.c
coredump_filter: permit changing of the default filter
2009-01-06 15:59:29 -08:00
freezer.c
freezer_cg: use thaw_process() in unfreeze_cgroup()
2008-10-30 11:38:45 -07:00
futex.c
Merge branches 'core/futexes', 'core/locking', 'core/rcu' and 'linus' into core/urgent
2009-01-06 09:32:11 +01:00
futex_compat.c
CRED: Use RCU to access another task's creds and to release a task's own creds
2008-11-14 10:39:19 +11:00
hrtimer.c
hrtimer: splitout peek ahead functionality, fix
2009-01-05 14:11:10 +01:00
itimer.c
timers: fix itimer/many thread hang
2008-09-14 16:25:35 +02:00
kallsyms.c
allow stripping of generated symbols under CONFIG_KALLSYMS_ALL
2008-12-19 22:47:10 +01:00
Kconfig.freezer
container freezer: implement freezer cgroup subsystem
2008-10-20 08:52:34 -07:00
Kconfig.hz
Kconfig.preempt
rcu: provide RCU options on non-preempt architectures too
2008-12-25 09:31:28 +01:00
kexec.c
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: core
2009-01-01 10:12:15 +10:30
kfifo.c
kgdb.c
kgdb: call touch_softlockup_watchdog on resume
2008-10-06 13:50:59 -05:00
kmod.c
kmod: fix varargs kernel-doc
2009-01-06 15:59:27 -08:00
kprobes.c
kprobes: support probing module __init function
2009-01-06 15:59:21 -08:00
ksysfs.c
kernel/ksysfs.c:fix dependence on CONFIG_NET
2009-01-06 10:44:31 -08:00
kthread.c
tracepoints: add DECLARE_TRACE() and DEFINE_TRACE()
2008-11-16 09:01:36 +01:00
latencytop.c
KSYM_SYMBOL_LEN fixes
2008-12-10 08:01:54 -08:00
lockdep.c
Merge branch 'core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-12-30 16:10:19 -08:00
lockdep_internals.h
lockdep_proc.c
lockstat: contend with points
2008-10-20 15:43:10 +02:00
Makefile
Merge branch 'core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-12-30 16:10:19 -08:00
marker.c
markers/tracpoints: fix non-modular build
2008-11-16 09:52:03 +01:00
module.c
module: add MODULE_STATE_LIVE notify
2009-01-06 15:59:21 -08:00
mutex-debug.c
mutex-debug.h
mutex.c
mutex: __used is needed for function referenced only from inline asm
2008-11-24 10:00:28 +01:00
mutex.h
notifier.c
Merge commit 'v2.6.28-rc6' into core/debug
2008-11-26 08:22:50 +01:00
ns_cgroup.c
nsproxy.c
User namespaces: set of cleanups (v2)
2008-11-24 18:57:41 -05:00
panic.c
oops: increment the oops UUID every time we oops
2009-01-06 15:59:12 -08:00
params.c
Fix compile warning in kernel/params.c
2008-10-23 12:09:00 -07:00
pid.c
pid_namespace.c
pid_ns: (BUG 11391) change ->child_reaper when init->group_leader exits
2008-09-02 19:21:38 -07:00
pm_qos_params.c
pm_qos_requirement might sleep
2008-09-02 19:21:40 -07:00
posix-cpu-timers.c
Merge commit 'v2.6.28' into core/core
2008-12-25 13:51:46 +01:00
posix-timers.c
Merge branches 'timers/clocksource', 'timers/hpet', 'timers/hrtimers', 'timers/nohz', 'timers/ntp', 'timers/posixtimers' and 'timers/rtc' into timers/core
2008-12-25 18:02:25 +01:00
printk.c
printk: fix discarding message when recursion_bug
2008-12-19 22:52:47 +01:00
profile.c
profile: don't include <asm/ptrace.h> twice.
2009-01-06 15:59:14 -08:00
ptrace.c
Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-12-28 12:21:10 -08:00
rcuclassic.c
cpumask: convert RCU implementations, fix
2009-01-03 18:59:25 +01:00
rcupdate.c
rcu: eliminate synchronize_rcu_xxx macro
2009-01-05 10:18:08 +01:00
rcupreempt.c
rcu: eliminate synchronize_rcu_xxx macro
2009-01-05 10:18:08 +01:00
rcupreempt_trace.c
"Tree RCU": scalable classic RCU implementation
2008-12-18 21:56:04 +01:00
rcutorture.c
rcu: fix rcutorture bug
2009-01-05 13:09:49 +01:00
rcutree.c
rcu: make treercu safe for suspend and resume
2009-01-05 10:12:33 +01:00
rcutree_trace.c
"Tree RCU": scalable classic RCU implementation
2008-12-18 21:56:04 +01:00
relay.c
relayfs: fix infinite loop with splice()
2008-12-10 08:01:52 -08:00
res_counter.c
resource.c
resources: skip sanity check of busy resources
2008-12-16 23:30:49 +01:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
hrtimer: convert kernel/* to the new hrtimer apis
2008-09-05 21:35:13 -07:00
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c
sched: fix possible recursive rq->lock
2009-01-07 16:10:54 +01:00
sched_clock.c
sched_clock: prevent scd->clock from moving backwards, take #2
2008-12-31 09:53:21 +01:00
sched_cpupri.c
sched: fix section mismatch
2009-01-06 11:07:15 +01:00
sched_cpupri.h
sched: convert struct cpupri_vec cpumask_var_t.
2008-11-24 17:52:22 +01:00
sched_debug.c
sched: add uid information to sched_debug for CONFIG_USER_SCHED
2008-12-01 20:39:50 +01:00
sched_fair.c
Merge branch 'linus' into sched/urgent
2009-01-05 13:53:39 +01:00
sched_features.h
sched: backward looking buddy
2008-11-05 10:30:14 +01:00
sched_idletask.c
sched: add CONFIG_SMP consistency
2008-10-22 10:01:52 +02:00
sched_rt.c
sched: put back some stack hog changes that were undone in kernel/sched.c
2009-01-03 19:00:09 +01:00
sched_stats.h
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask into merge-rr-cpumask
2009-01-03 18:53:31 +01:00
seccomp.c
semaphore.c
signal.c
SEND_SIG_NOINFO: set si_pid to tgid instead of pid
2009-01-06 15:59:29 -08:00
smp.c
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: core
2009-01-01 10:12:15 +10:30
softirq.c
Merge branch 'cpus4096-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-01-03 12:04:39 -08:00
softlockup.c
cpumask: convert rest of files in kernel/
2009-01-01 10:12:28 +10:30
spinlock.c
srcu.c
stacktrace.c
stacktrace: provide save_stack_trace_tsk() weak alias
2008-12-25 11:44:43 +01:00
stop_machine.c
stop_machine: introduce stop_machine_create/destroy.
2009-01-05 08:40:14 +10:30
sys.c
Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-01-06 17:10:33 -08:00
sys_ni.c
reintroduce accept4
2008-11-19 18:49:57 -08:00
sysctl.c
mm: add dirty_background_bytes and dirty_bytes sysctls
2009-01-06 15:59:03 -08:00
sysctl_check.c
[XFS] remove restricted chown parameter from xfs linux
2008-10-30 18:30:09 +11:00
taskstats.c
cpumask: convert rest of files in kernel/
2009-01-01 10:12:28 +10:30
test_kprobes.c
kprobes: add tests for register_kprobes
2009-01-06 15:59:20 -08:00
time.c
Allow times and time system calls to return small negative values
2009-01-06 15:59:13 -08:00
timeconst.pl
timer.c
[PATCH] idle cputime accounting
2008-12-31 15:11:46 +01:00
tracepoint.c
markers/tracpoints: fix non-modular build
2008-11-16 09:52:03 +01:00
tsacct.c
mm: introduce get_mm_hiwater_xxx(), fix taskstats->hiwater_xxx accounting
2009-01-06 15:59:09 -08:00
uid16.c
CRED: Wrap current->cred and a few other accessors
2008-11-14 10:39:18 +11:00
user.c
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-12-28 12:27:58 -08:00
user_namespace.c
User namespaces: set of cleanups (v2)
2008-11-24 18:57:41 -05:00
utsname.c
removed unused #include <linux/version.h>'s
2008-08-23 12:14:12 -07:00
utsname_sysctl.c
sysctl: simplify ->strategy
2008-10-16 11:21:47 -07:00
wait.c
wait: kill is_sync_wait()
2008-10-16 11:21:31 -07:00
workqueue.c
cpumask: convert kernel/workqueue.c
2009-01-01 10:12:25 +10:30