mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 06:25:52 +02:00
Linux kernel source tree
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:
|
||
|---|---|---|
| android | ||
| arch | ||
| block | ||
| certs | ||
| crypto | ||
| Documentation | ||
| drivers | ||
| firmware | ||
| fs | ||
| include | ||
| init | ||
| ipc | ||
| kernel | ||
| lib | ||
| LICENSES | ||
| mm | ||
| net | ||
| samples | ||
| scripts | ||
| security | ||
| sound | ||
| tools | ||
| usr | ||
| virt | ||
| .clang-format | ||
| .cocciconfig | ||
| .get_maintainer.ignore | ||
| .gitattributes | ||
| .gitignore | ||
| .mailmap | ||
| .scmversion | ||
| build.config.aarch64 | ||
| build.config.allmodconfig | ||
| build.config.allmodconfig.aarch64 | ||
| build.config.allmodconfig.arm | ||
| build.config.allmodconfig.x86_64 | ||
| build.config.arm | ||
| build.config.common | ||
| build.config.gki | ||
| build.config.gki_kasan | ||
| build.config.gki_kasan.aarch64 | ||
| build.config.gki_kasan.x86_64 | ||
| build.config.gki-debug.aarch64 | ||
| build.config.gki-debug.x86_64 | ||
| build.config.gki.aarch64 | ||
| build.config.gki.x86_64 | ||
| build.config.x86_64 | ||
| COPYING | ||
| CREDITS | ||
| Kbuild | ||
| Kconfig | ||
| logo_kernel.bmp | ||
| logo.bmp | ||
| MAINTAINERS | ||
| Makefile | ||
| README | ||
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.