Liang Chen f7a1c6f2a1 cpufreq: interactive: fix deadlock
up_read() may wakeup some tasks, so do not call up_read() in scheduler,
or it will cause deadlock as below:

Thread #4 5 (Name: cpu3, state: debug-request) (Suspended : Container)
	queued_spin_lock_slowpath() at qspinlock.c:369 0xffffff8008119120
	queued_spin_lock() at qspinlock.h:88 0xffffff8008f0a470
	do_raw_spin_lock() at spinlock.h:180 0xffffff8008f0a470
	__raw_spin_lock() at spinlock_api_smp.h:143 0xffffff8008f0a470
	_raw_spin_lock() at spinlock.c:144 0xffffff8008f0a470
	rq_lock() at sched.h:1,244 0xffffff80080f2f4c
	ttwu_queue() at core.c:2,442 0xffffff80080f2f4c
	try_to_wake_up() at core.c:2,658 0xffffff80080eb998
	wake_up_q() at core.c:450 0xffffff80080eb6a8
	rwsem_wake() at rwsem-xadd.c:703 0xffffff800811a44c
	__up_read() at rwsem.h:107 0xffffff8008118930
	up_read() at rwsem.c:122 0xffffff8008118930
	cpufreq_task_boost() at cpufreq_interactive.c:1,449 0xffffff8008a4bdb4
	enqueue_task_fair() at fair.c:5,285 0xffffff80080f7814
	enqueue_task() at core.c:1,324 0xffffff80080ec15c
	activate_task() at core.c:1,346 0xffffff80080ec15c
	ttwu_activate() at core.c:2,240 0xffffff80080f2fc0
	ttwu_do_activate() at core.c:2,299 0xffffff80080f2fc0
	ttwu_queue() at core.c:2,444 0xffffff80080f2fc0
	try_to_wake_up() at core.c:2,658 0xffffff80080eb998
	wake_up_q() at core.c:450 0xffffff80080eb6a8
	futex_wake() at futex.c:1,636 0xffffff8008159e78
	do_futex() at futex.c:3,714 0xffffff8008158fb0
	__do_sys_futex() at futex.c:3,770 0xffffff800815bd98
	__se_sys_futex() at futex.c:3,738 0xffffff800815bd98
	__arm64_sys_futex() at futex.c:3,738 0xffffff800815bd98
	__invoke_syscall() at syscall.c:36 0xffffff8008098d6c
	invoke_syscall() at syscall.c:48 0xffffff8008098d6c
	el0_svc_common() at syscall.c:117 0xffffff8008098d6c
	el0_svc_handler() at syscall.c:163 0xffffff8008098ccc
	el0_svc() at entry.S:940 0xffffff8008083d08

Fixes: 2d367d61e8 (cpufreq: interactive: introduce boost cpufreq interface for task)

Change-Id: I9607faa5ede3a662e7f2f55da29b08fc328f4d43
Signed-off-by: Liang Chen <cl@rock-chips.com>
2020-12-14 14:11:26 +08:00
2020-10-30 12:21:53 +08:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.
Description
No description provided
Readme 7.9 GiB
Languages
C 97.7%
Assembly 1.6%
Makefile 0.3%
Perl 0.1%