mirror of
https://abf.rosa.ru/djam/kernel-5.15.git
synced 2025-02-23 18:42:55 +00:00
137 lines
6.4 KiB
Diff
137 lines
6.4 KiB
Diff
![]() |
From 7c3c753e3d32b250467bcc172f5abeb08dead01e Mon Sep 17 00:00:00 2001
|
||
|
From: Alexey Sheplyakov <asheplyakov@altlinux.org>
|
||
|
Date: Fri, 19 Feb 2021 12:55:03 +0400
|
||
|
Subject: [PATCH 620/625] cpufreq-dt: don't load on BE-M1000 SoC
|
||
|
|
||
|
Apparently the driver deadlocks the kernel in a few minutes:
|
||
|
|
||
|
[ 454.690508] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
|
||
|
[ 454.696839] (detected by 4, t=26002 jiffies, g=22561, q=15)
|
||
|
[ 454.703017] rcu: All QSes seen, last rcu_preempt kthread activity 25992 (4295121102-4295095110), jiffies_till_next_fqs=3, root ->qsmask 0x0
|
||
|
[ 454.715570] rcu: rcu_preempt kthread starved for 25992 jiffies! g22561 f0x2 RCU_GP_WAIT_FQS(5) ->state=0x200 ->cpu=1
|
||
|
[ 454.726117] rcu: Unless rcu_preempt kthread gets sufficient CPU time, OOM is now expected behavior.
|
||
|
[ 454.735273] rcu: RCU grace-period kthread stack dump:
|
||
|
[ 454.740344] task:rcu_preempt state:R stack: 0 pid: 13 ppid: 2 flags:0x00000028
|
||
|
[ 454.748731] Call trace:
|
||
|
[ 454.751204] __switch_to+0x114/0x170
|
||
|
[ 454.754803] __schedule+0x370/0xa3c
|
||
|
[ 454.758310] schedule+0x50/0x104
|
||
|
[ 454.761557] schedule_timeout+0x9c/0x114
|
||
|
[ 454.765503] rcu_gp_kthread+0x598/0xb50
|
||
|
[ 454.769360] kthread+0x150/0x160
|
||
|
[ 454.772607] ret_from_fork+0x10/0x38
|
||
|
[ 454.778130]
|
||
|
[ 454.779631] ================================
|
||
|
[ 454.783912] WARNING: inconsistent lock state
|
||
|
[ 454.788196] 5.10.17-00041-g454ed3004040-dirty #1 Not tainted
|
||
|
[ 454.793867] --------------------------------
|
||
|
[ 454.798147] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
|
||
|
[ 454.804168] swapper/4/0 [HC0[0]:SC1[1]:HE0:SE0] takes:
|
||
|
[ 454.809319] ffff800011198498 (rcu_node_0){?.-.}-{2:2}, at: rcu_sched_clock_irq+0x480/0xce0
|
||
|
[ 454.817615] {IN-HARDIRQ-W} state was registered at:
|
||
|
[ 454.822508] __lock_acquire+0xad8/0x2094
|
||
|
[ 454.826530] lock_acquire.part.0+0xfc/0x360
|
||
|
[ 454.830813] lock_acquire+0x68/0x84
|
||
|
[ 454.834399] _raw_spin_lock_irqsave+0x84/0x158
|
||
|
[ 454.838941] rcu_exp_handler+0xcc/0x140
|
||
|
[ 454.842878] flush_smp_call_function_queue+0xec/0x304
|
||
|
[ 454.848029] generic_smp_call_function_single_interrupt+0x20/0x2c
|
||
|
[ 454.854225] ipi_handler+0x1d8/0x39c
|
||
|
[ 454.857899] handle_percpu_devid_fasteoi_ipi+0xb0/0xe0
|
||
|
[ 454.863137] __handle_domain_irq+0xbc/0x13c
|
||
|
[ 454.867419] gic_handle_irq+0xcc/0x14c
|
||
|
[ 454.871265] el1_irq+0xc4/0x180
|
||
|
[ 454.874504] lock_acquire.part.0+0x120/0x360
|
||
|
[ 454.878873] lock_acquire+0x68/0x84
|
||
|
[ 454.882461] lock_page_memcg+0x5c/0x150
|
||
|
[ 454.886399] page_add_file_rmap+0x28/0x27c
|
||
|
[ 454.890595] alloc_set_pte+0xb8/0x5c0
|
||
|
[ 454.894356] filemap_map_pages+0x4a4/0x4c0
|
||
|
[ 454.898551] handle_mm_fault+0xbcc/0xf50
|
||
|
[ 454.902572] do_page_fault+0x14c/0x404
|
||
|
[ 454.906418] do_translation_fault+0xbc/0xd8
|
||
|
[ 454.910701] do_mem_abort+0x4c/0xac
|
||
|
[ 454.914287] el0_ia+0x68/0xcc
|
||
|
[ 454.917351] el0_sync_handler+0x180/0x1b0
|
||
|
[ 454.921458] el0_sync+0x174/0x180
|
||
|
[ 454.924868] irq event stamp: 449729
|
||
|
[ 454.928368] hardirqs last enabled at (449725): [<ffff8000109fcf74>] default_idle_call+0x24/0xdc
|
||
|
[ 454.937171] hardirqs last disabled at (449726): [<ffff8000109f27a0>] enter_el1_irq_or_nmi+0x10/0x20
|
||
|
[ 454.946237] softirqs last enabled at (449728): [<ffff8000100532f0>] _local_bh_enable+0x30/0x54
|
||
|
[ 454.954952] softirqs last disabled at (449729): [<ffff8000100534c4>] __irq_exit_rcu+0x1b0/0x1bc
|
||
|
[ 454.963665]
|
||
|
[ 454.963665] other info that might help us debug this:
|
||
|
[ 454.970206] Possible unsafe locking scenario:
|
||
|
[ 454.970206]
|
||
|
[ 454.976136] CPU0
|
||
|
[ 454.978590] ----
|
||
|
[ 454.981043] lock(rcu_node_0);
|
||
|
[ 454.984198] <Interrupt>
|
||
|
[ 454.986825] lock(rcu_node_0);
|
||
|
[ 454.990155]
|
||
|
[ 454.990155] *** DEADLOCK ***
|
||
|
[ 454.990155]
|
||
|
[ 454.996087] 1 lock held by swapper/4/0:
|
||
|
[ 454.999932] #0: ffff800011198498 (rcu_node_0){?.-.}-{2:2}, at: rcu_sched_clock_irq+0x480/0xce0
|
||
|
[ 455.008662]
|
||
|
[ 455.008662] stack backtrace:
|
||
|
[ 455.013033] CPU: 4 PID: 0 Comm: swapper/4 Not tainted 5.10.17-00041-g454ed3004040-dirty #1
|
||
|
[ 455.021313] Hardware name: Baikal Electronics Baikal-M mitx board (DT)
|
||
|
[ 455.027854] Call trace:
|
||
|
[ 455.030311] dump_backtrace+0x0/0x1e4
|
||
|
[ 455.033985] show_stack+0x24/0x80
|
||
|
[ 455.037312] dump_stack+0xec/0x154
|
||
|
[ 455.040723] print_usage_bug.part.0+0x208/0x22c
|
||
|
[ 455.045265] mark_lock+0x88c/0x934
|
||
|
[ 455.048677] mark_held_locks+0x58/0x90
|
||
|
[ 455.052437] lockdep_hardirqs_on_prepare+0xe4/0x23c
|
||
|
[ 455.057330] trace_hardirqs_on+0x78/0x2e0
|
||
|
[ 455.061350] __do_softirq+0x114/0x6d0
|
||
|
[ 455.065022] __irq_exit_rcu+0x1b0/0x1bc
|
||
|
[ 455.068868] irq_exit+0x1c/0x54
|
||
|
[ 455.072020] __handle_domain_irq+0xc0/0x13c
|
||
|
[ 455.076214] gic_handle_irq+0xcc/0x14c
|
||
|
[ 455.079972] el1_irq+0xc4/0x180
|
||
|
[ 455.083124] arch_cpu_idle+0x18/0x30
|
||
|
[ 455.086710] default_idle_call+0x5c/0xdc
|
||
|
[ 455.090645] do_idle+0x260/0x2e0
|
||
|
[ 455.093883] cpu_startup_entry+0x30/0x8c
|
||
|
[ 455.097818] secondary_start_kernel+0x138/0x184
|
||
|
[ 455.102410] BUG: scheduling while atomic: swapper/4/0/0x00000002
|
||
|
[ 455.108449] INFO: lockdep is turned off.
|
||
|
[ 455.112399] Modules linked in: dm_mod designware_i2s sdhci_of_dwcmshc snd_soc_core sdhci_pltfm dw_hdmi_ahb_audio snd_pcm_dmaengine ac97_bus evdev sdhci snd_pcm at24 panfrost mmc_core snd_timer pcie_baikal_v44 snd pcie_baikal bt1_pvt gpu_sched soundcore cpufreq_dt fuse configfs efivarfs ipv6
|
||
|
[ 455.138295] Preemption disabled at:
|
||
|
[ 455.138305] [<ffff800010028c64>] secondary_start_kernel+0xb4/0x184
|
||
|
[ 455.148020] CPU: 4 PID: 0 Comm: swapper/4 Not tainted 5.10.17-00041-g454ed3004040-dirty #1
|
||
|
[ 455.156299] Hardware name: Baikal Electronics Baikal-M mitx board (DT)
|
||
|
[ 455.162840] Call trace:
|
||
|
[ 455.165296] dump_backtrace+0x0/0x1e4
|
||
|
[ 455.168969] show_stack+0x24/0x80
|
||
|
[ 455.172295] dump_stack+0xec/0x154
|
||
|
[ 455.175711] __schedule_bug+0xcc/0xe0
|
||
|
[ 455.179383] __schedule+0x928/0xa3c
|
||
|
[ 455.182881] schedule_idle+0x34/0x5c
|
||
|
[ 455.186467] do_idle+0x1dc/0x2e0
|
||
|
[ 455.189706] cpu_startup_entry+0x30/0x8c
|
||
|
[ 455.193640] secondary_start_kernel+0x138/0x184
|
||
|
---
|
||
|
drivers/cpufreq/cpufreq-dt-platdev.c | 2 ++
|
||
|
1 file changed, 2 insertions(+)
|
||
|
|
||
|
diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c
|
||
|
index 1c192a42f11e..2885ad3779bf 100644
|
||
|
--- a/drivers/cpufreq/cpufreq-dt-platdev.c
|
||
|
+++ b/drivers/cpufreq/cpufreq-dt-platdev.c
|
||
|
@@ -105,6 +105,8 @@ static const struct of_device_id blacklist[] __initconst = {
|
||
|
|
||
|
{ .compatible = "arm,vexpress", },
|
||
|
|
||
|
+ { .compatible = "baikal,baikal-m", },
|
||
|
+
|
||
|
{ .compatible = "calxeda,highbank", },
|
||
|
{ .compatible = "calxeda,ecx-2000", },
|
||
|
|
||
|
--
|
||
|
2.31.1
|
||
|
|