android_kernel_sony_sdm845/kernel/sched
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Pavankumar Kondeti 56ea74ecec sched: Disable interrupts while holding related_thread_group_lock
There is a potential deadlock condition if interrupts are enabled
while holding the related_thread_group_lock. Prevent this.

----------------                              --------------------
    CPU 0                                          CPU 1
---------------                               --------------------

check_for_migration()                         cgroup_file_write(p)

check_for_freq_change()                       cgroup_attach_task(p)

send_notification()                           schedtune_attach(p)

read_lock(&related_thread_group_lock)         sched_set_group_id(p)

                                              raw_spin_lock_irqsave(
					       &p->pi_lock, flags)

					      write_lock_irqsave(
					       &related_thread_group_lock)

					       waiting on CPU#0

raw_spin_lock_irqsave(&rq->lock, flags)

raw_spin_unlock_irqrestore(&rq->lock, flags)

--> interrupt()

----> ttwu(p)

-------> waiting for p's pi_lock on CPU#1

Change-Id: I6f0f8f742d6e1b3ff735dcbeabd54ef101329cdf
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2017-02-07 14:51:23 -08:00
..
auto_group.c sched/autogroup: Fix 64-bit kernel nice level adjustment 2016-11-24 05:45:02 +01:00
auto_group.h sched, timer: Convert usages of ACCESS_ONCE() in the scheduler to READ_ONCE()/WRITE_ONCE() 2015-05-08 12:11:32 +02:00
boost.c sched/hmp: Enhance co-location and scheduler boost features 2017-02-07 14:51:21 -08:00
clock.c sched/clock: Make local_clock()/cpu_clock() inline 2016-04-13 12:25:22 +02:00
completion.c sched/completion: Serialize completion_done() with complete() 2015-02-18 14:27:40 +01:00
core.c sched: Ensure proper synch between isolation, hotplug, and suspend 2017-02-07 14:51:22 -08:00
core_ctl.c sched: Ensure proper synch between isolation, hotplug, and suspend 2017-02-07 14:51:22 -08:00
cpuacct.c sched/cpuacct: Introduce cpuacct.usage_all to show all CPU stats together 2016-07-09 13:56:15 +02:00
cpuacct.h sched/cpuacct: Simplify the cpuacct code 2016-03-21 11:00:28 +01:00
cpudeadline.c sched/deadline: Split cpudl_set() into cpudl_set() and cpudl_clear() 2016-09-05 13:29:43 +02:00
cpudeadline.h sched/deadline: Split cpudl_set() into cpudl_set() and cpudl_clear() 2016-09-05 13:29:43 +02:00
cpufreq.c cpufreq / sched: Pass flags to cpufreq_update_util() 2016-08-16 22:14:55 +02:00
cpufreq_schedutil.c cpufreq: schedutil: Add iowait boosting 2016-09-13 23:36:01 +02:00
cpupri.c sched/core: Use tsk_cpus_allowed() instead of accessing ->cpus_allowed 2016-05-12 09:55:35 +02:00
cpupri.h sched/cpupri: Remove unnecessary definitions in cpupri.h 2014-11-16 10:58:59 +01:00
cputime.c sched: Introduce HMP scheduling 2016-11-18 16:41:31 -08:00
deadline.c sched: Introduce HMP scheduling 2016-11-18 16:41:31 -08:00
debug.c sched: Add the mechanics of top task tracking for frequency guidance 2017-02-07 14:50:53 -08:00
fair.c sched/hmp: Enhance co-location and scheduler boost features 2017-02-07 14:51:21 -08:00
features.h sched: Introduce HMP scheduling 2016-11-18 16:41:31 -08:00
hmp.c sched: Disable interrupts while holding related_thread_group_lock 2017-02-07 14:51:23 -08:00
idle.c nmi_backtrace: generate one-line reports for idle cpus 2016-10-07 18:46:30 -07:00
idle_task.c sched: Introduce HMP scheduling 2016-11-18 16:41:31 -08:00
loadavg.c sched/core: Correct off by one bug in load migration calculation 2016-07-13 14:58:20 +02:00
Makefile sched/hmp: Enhance co-location and scheduler boost features 2017-02-07 14:51:21 -08:00
rt.c sched/hmp: Enhance co-location and scheduler boost features 2017-02-07 14:51:21 -08:00
sched.h sched/hmp: Enhance co-location and scheduler boost features 2017-02-07 14:51:21 -08:00
sched_avg.c sched: Fix integer overflow in sched_update_nr_prod() 2017-02-07 14:50:43 -08:00
stats.c sched: use %*pb[l] to print bitmaps including cpumasks and nodemasks 2015-02-13 21:21:37 -08:00
stats.h sched/debug: Rename 'schedstat_val()' -> 'schedstat_val_or_zero()' 2016-09-05 13:29:46 +02:00
stop_task.c sched: Introduce HMP scheduling 2016-11-18 16:41:31 -08:00
swait.c wait.[ch]: Introduce the simple waitqueue (swait) implementation 2016-02-25 11:27:16 +01:00
tune.c sched/hmp: Enhance co-location and scheduler boost features 2017-02-07 14:51:21 -08:00
wait.c mm: remove per-zone hashtable of bitlock waitqueues 2016-10-27 09:27:57 -07:00