android_kernel_sony_sdm845/kernel
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Paul E. McKenney 4041b8e4fd rcu: Migrate callbacks earlier in the CPU-offline timeline
RCU callbacks must be migrated away from an outgoing CPU, and this is
done near the end of the CPU-hotplug operation, after the outgoing CPU is
long gone.  Unfortunately, this means that other CPU-hotplug callbacks
can execute while the outgoing CPU's callbacks are still immobilized
on the long-gone CPU's callback lists.  If any of these CPU-hotplug
callbacks must wait, either directly or indirectly, for the invocation
of any of the immobilized RCU callbacks, the system will hang.

This commit avoids such hangs by migrating the callbacks away from the
outgoing CPU immediately upon its departure, shortly after the return
from __cpu_die() in takedown_cpu().  Thus, RCU is able to advance these
callbacks and invoke them, which allows all the after-the-fact CPU-hotplug
callbacks to wait on these RCU callbacks without risk of a hang.

While in the neighborhood, this commit also moves rcu_send_cbs_to_orphanage()
and rcu_adopt_orphan_cbs() under a pre-existing #ifdef to avoid including
dead code on the one hand and to avoid define-without-use warnings on the
other hand.

Reported-by: Jeffrey Hugo <jhugo@codeaurora.org>
Link: http://lkml.kernel.org/r/db9c91f6-1b17-6136-84f0-03c3c2581ab4@codeaurora.org
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Anna-Maria Gleixner <anna-maria@linutronix.de>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Richard Weinberger <richard@nod.at>
Signed-off-by: Twisted <36546624+TwistedPrime@users.noreply.github.com>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>
2026-05-15 17:49:31 +07:00
..
bpf treewide: Backport new vmalloc for large performance benefits 2026-05-15 17:48:25 +07:00
configs
debug UPSTREAM: kdb: use correct pointer when 'btc' calls 'btt' 2022-02-21 16:30:05 +01:00
events Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into lineage-20 2023-01-19 15:42:12 +01:00
gcov Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into lineage-20 2023-01-19 15:42:12 +01:00
irq Merge remote-tracking branch 'common/android-4.9-q' into android12-4.9-sdm845 2022-07-18 14:05:31 +03:00
livepatch
locking BACKPORT: rcu: Ports some of RCU's taken from k4.14 2026-05-15 17:49:30 +07:00
power treewide: Backport new vmalloc for large performance benefits 2026-05-15 17:48:25 +07:00
printk Merge remote-tracking branch 'common/android-4.9-q' into android12-4.9-sdm845 2022-06-12 01:39:01 +03:00
rcu rcu: Migrate callbacks earlier in the CPU-offline timeline 2026-05-15 17:49:31 +07:00
sched sched,rcu: Make cond_resched() provide RCU quiescent state 2026-05-15 17:49:30 +07:00
time BACKPORT: rcu: Ports some of RCU's taken from k4.14 2026-05-15 17:49:30 +07:00
trace Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into lineage-20 2023-01-19 15:42:12 +01:00
.gitignore BACKPORT: Provide in-kernel headers to make extending kernel easier 2019-07-03 14:30:53 -04:00
acct.c acct: fix potential integer overflow in encode_comp_t() 2023-01-07 12:07:31 +01:00
async.c kernel/async.c: revert "async: simplify lowest_in_progress()" 2018-02-17 13:21:18 +01:00
audit.c Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into lineage-18.1-caf-sdm845 2021-04-26 01:27:02 +03:00
audit.h audit: fix a net reference leak in audit_list_rules_send() 2021-04-07 12:05:41 +02:00
audit_fsnotify.c
audit_tree.c
audit_watch.c audit: CONFIG_CHANGE don't log internal bookkeeping as an event 2020-10-01 20:40:07 +02:00
auditfilter.c audit: fix a net reference leak in audit_list_rules_send() 2021-04-07 12:05:41 +02:00
auditsc.c Merge android-4.9.204(72e8598) into msm-4.9 2020-01-06 18:13:26 +08:00
backtracetest.c
bounds.c kbuild: fix kernel/bounds.c 'W=1' warning 2018-11-13 11:16:57 -08:00
capability.c
cfi.c ANDROID: cfi: Remove unused variable in ptr_to_check_fn 2019-03-06 18:27:16 +00:00
cgroup.c Merge remote-tracking branch 'common/android-4.9-q' into android12-4.9-sdm845 2022-07-18 14:05:31 +03:00
cgroup_freezer.c
cgroup_pids.c cgroup: pids: use atomic64_t for pids->limit 2019-12-21 10:42:02 +01:00
compat.c
configs.c
context_tracking.c
cpu.c rcu: Migrate callbacks earlier in the CPU-offline timeline 2026-05-15 17:49:31 +07:00
cpu_pm.c Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into HEAD 2020-06-30 02:33:58 +03:00
cpuset.c Merge android-4.9.183 (a80a7ab) into msm-4.9 2019-08-07 16:30:28 +08:00
crash_dump.c
cred.c memcg: account security cred as well to kmemcg 2020-01-12 11:24:13 +01:00
delayacct.c BACKPORT: delayacct: track delays from thrashing cache pages 2019-03-22 14:08:39 -07:00
dma.c
exec_domain.c
exit.c Merge remote-tracking branch 'common/android-4.9-q' into android12-4.9-sdm845 2022-09-06 06:20:26 +03:00
extable.c extable: Make init_kernel_text() global 2021-06-06 18:42:18 +03:00
fork.c BACKPORT: rcu: Ports some of RCU's taken from k4.14 2026-05-15 17:49:30 +07:00
freezer.c
futex.c mm, futex: fix shared futex pgoff on shmem huge page 2021-07-11 12:46:40 +02:00
gen_kheaders.sh BACKPORT: kheaders: Do not regenerate archive if config is not changed 2019-07-03 14:31:16 -04:00
groups.c treewide: Backport new vmalloc for large performance benefits 2026-05-15 17:48:25 +07:00
hung_task.c Merge android-4.9.170 (1ef64da) into msm-4.9 2019-05-30 14:15:13 +08:00
irq_work.c
jump_label.c jump_label: Disable jump labels in __exit code 2021-06-06 18:42:18 +03:00
kallsyms.c kallsyms: strip the .cfi postfix from symbols with CONFIG_CFI_CLANG 2018-02-28 15:09:58 -08:00
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks locking/rwsem: for rwsem prio aware enhancement 2019-01-08 16:14:39 +08:00
Kconfig.preempt
kcov.c This is the 4.9.117 stable release 2018-08-03 08:50:05 +02:00
kexec.c
kexec_core.c treewide: Backport new vmalloc for large performance benefits 2026-05-15 17:48:25 +07:00
kexec_file.c Merge remote-tracking branch 'common/android-4.9-q' into android12-4.9-sdm845 2022-07-18 14:05:31 +03:00
kexec_internal.h
kheaders.c BACKPORT: kheaders: Move from proc to sysfs 2019-07-03 14:31:02 -04:00
kmod.c usermodehelper: reset umask to default before executing user process 2020-10-14 09:48:14 +02:00
kprobes.c This is the 4.9.327 stable release 2022-09-05 14:02:59 +02:00
ksysfs.c
kthread.c Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into lineage-18.1-caf-sdm845 2021-07-22 02:11:11 +03:00
latencytop.c
Makefile Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into lineage-18.1-caf-sdm845 2021-04-26 01:27:02 +03:00
membarrier.c
memremap.c mm, devm_memremap_pages: kill mapping "System RAM" support 2019-01-13 10:03:51 +01:00
module-internal.h
module.c treewide: Backport new vmalloc for large performance benefits 2026-05-15 17:48:25 +07:00
module_signing.c
notifier.c x86/mm: split vmalloc_sync_all() 2020-04-02 17:20:26 +02:00
nsproxy.c
padata.c padata: purge get_cpu and reorder_via_wq from padata_do_serial 2020-05-27 16:41:53 +02:00
panic.c Merge android-4.9.197(e9766ef) into msm-4.9 2019-12-06 19:41:21 +08:00
params.c
pid.c UPSTREAM: locking/atomic, kref: Add KREF_INIT() 2021-01-05 16:00:48 +00:00
pid_namespace.c memcg: enable accounting for pids in nested pid namespaces 2021-09-22 11:43:08 +02:00
profile.c profiling: fix shift-out-of-bounds bugs 2021-09-26 13:36:18 +02:00
ptrace.c ptrace: Reimplement PTRACE_KILL by always sending SIGKILL 2022-06-14 16:52:28 +02:00
range.c
reboot.c reboot: fix overflow parsing reboot cpu number 2020-11-18 18:26:32 +01:00
relay.c kernel/relay.c: fix memleak on destroy relay channel 2020-08-26 10:29:03 +02:00
resource.c Merge android-4.9.96 (320d53a) into msm-4.9 2018-05-11 05:38:48 -07:00
seccomp.c seccomp: Add missing return in non-void function 2021-03-03 17:44:43 +01:00
signal.c BACKPORT: rcu: Ports some of RCU's taken from k4.14 2026-05-15 17:49:30 +07:00
smp.c Merge remote-tracking branch 'common/android-4.9-q' into android12-4.9-sdm845 2022-06-12 01:39:01 +03:00
smpboot.c sched/walt: Fix the memory leak of idle task load pointers 2018-09-20 19:00:55 +05:30
smpboot.h
softirq.c Mark HI and TASKLET softirq synchronous 2018-08-15 18:14:42 +02:00
stacktrace.c
stop_machine.c stop_machine: Use raw spinlocks 2018-08-03 07:55:24 +02:00
sys.c Merge remote-tracking branch 'common/android-4.9-q' into lineage-18.1-caf-sdm845 2021-10-19 16:05:50 +03:00
sys_ni.c BACKPORT: signal: support CLONE_PIDFD with pidfd_send_signal 2019-09-03 13:44:59 -07:00
sysctl.c Revert "add toggle for disabling newly added USB devices" 2023-03-01 21:14:36 +02:00
sysctl_binary.c net/ipv6/addrconf: IPv6 tethering enhancement 2018-03-15 11:36:45 -07:00
task_work.c
taskstats.c taskstats: fix data-race 2020-01-12 11:24:12 +01:00
test_kprobes.c
torture.c
tracepoint.c tracepoint: Do not fail unregistering a probe due to memory failure 2021-03-03 17:44:38 +01:00
tsacct.c taskstats: Cleanup the use of task->exit_code 2022-02-23 11:56:40 +01:00
ucount.c
uid16.c kernel: make groups_sort calling a responsibility group_info allocators 2018-01-10 09:29:52 +01:00
up.c
user-return-notifier.c
user.c ANDROID: proc: Add /proc/uid directory 2018-04-03 11:15:30 -07:00
user_namespace.c userns: move user access out of the mutex 2018-09-09 20:01:24 +02:00
utsname.c
utsname_sysctl.c sys: don't hold uts_sem while accessing userspace memory 2018-09-09 20:01:24 +02:00
watchdog.c
watchdog_hld.c
workqueue.c rcu: Create RCU-specific workqueues with rescuers 2026-05-15 17:49:31 +07:00
workqueue_internal.h UPSTREAM: psi: fix aggregation idle shut-off 2019-03-22 14:15:01 -07:00