[PATCH mvebu 0/3] Armada 37xx: Fix cpufreq changing base CPU speed to 800 MHz from 1000 MHz
Pali Rohár
pali at kernel.org
Thu Oct 8 04:56:01 EDT 2020
On Thursday 08 October 2020 10:21:18 Pali Rohár wrote:
> On Wednesday 07 October 2020 21:35:19 Marek Behún wrote:
> > Hi Gregory,
> >
> > the armada-37xx-cpufreq driver changes base CPU speed from 1000 MHz to 800 MHz
> > on EspressoBIN and Turris MOX. The commit message in patch 2/3 explains why
> > and how can this be discovered.
> >
> > I have added the Fixes tag so that this is fixed in stable kernels.
> >
> > Marek
> >
> > Cc: Gregory CLEMENT <gregory.clement at free-electrons.com>
> > Cc: Miquel Raynal <miquel.raynal at bootlin.com>
> >
> > Marek Behún (3):
> > arm64: dts: marvell: armada-37xx: fix syscon compatible to NB clk node
> > cpufreq: armada-37xx: Fix setting TBG parent for load levels
> > clk: mvebu: armada-37xx-periph: remove .set_parent method for CPU PM
> > clock
> >
> > arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 3 +-
> > drivers/clk/mvebu/armada-37xx-periph.c | 28 ----------------
> > drivers/cpufreq/armada-37xx-cpufreq.c | 35 +++++++++++++-------
> > 3 files changed, 25 insertions(+), 41 deletions(-)
> >
> > --
> > 2.26.2
> >
>
> Hello! This patch series is causing kernel BUG and board reset after
> loading ondemand governor on Turris MOX with 5.9.0-rc8 kernel.
>
> Here is log from serial console:
>
> root at turris:/# echo ondemand > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
> root at turris:/# [ 51.678502] ------------[ cut here ]------------
> [ 51.680411] kernel BUG at arch/arm64/kernel/traps.c:470!
> [ 51.685876] Internal error: Oops - BUG: 0 [#1] SMP
> [ 51.690802] Modules linked in: ath9k ath9k_common ath9k_hw ath10k_pci ath10k_core ath rfcomm mwifiex_sdio mwifiex mac80211 hidp hci_uart cfg80211 btmrvl_sdio btmrvl bnep bluetooth hid
> [ 51.707652] CPU: 0 PID: 23 Comm: kworker/0:1 Not tainted 5.9.0-rc8-mox-00023-g31368bea463b-dirty #359
> [ 51.717142] Hardware name: CZ.NIC Turris Mox Board (DT)
> [ 51.722533] Workqueue: 0x0 (events)
> [ 51.726195] pstate: 00000085 (nzcv daIf -PAN -UAO BTYPE=--)
> [ 51.731935] pc : do_undefinstr+0x2d8/0x2e8
> [ 51.736138] lr : do_undefinstr+0x22c/0x2e8
> [ 51.740349] sp : ffffffc011343b60
> [ 51.743754] x29: ffffffc011343b60 x28: ffffff801f670000
> [ 51.749218] x27: ffffff801f5a3300 x26: ffffff801f6704e0
> [ 51.754684] x25: ffffff801f5a3300 x24: ffffffc010a6c028
> [ 51.760150] x23: 0000000060000085 x22: ffffffc01007b000
> [ 51.765616] x21: ffffffc011343d00 x20: 00000000b9403820
> [ 51.771081] x19: ffffffc011343bc0 x18: 0000000000000000
> [ 51.776547] x17: 0000000000000000 x16: 0000000000000000
> [ 51.782012] x15: 0000000000000000 x14: 0000000000000000
> [ 51.787478] x13: 0000000000000000 x12: 0000000000000000
> [ 51.792943] x11: 0000000000000026 x10: 0101010101010101
> [ 51.798410] x9 : ffffffc01018d094 x8 : 7f7f7f7f7f7f7f7f
> [ 51.803874] x7 : 0000000000000209 x6 : ffffffc011343bb0
> [ 51.809340] x5 : 0000000000000000 x4 : ffffffc0111ab110
> [ 51.814805] x3 : 00000000d5300000 x2 : ffffffc0110889a0
> [ 51.820271] x1 : ffffffc0111ab110 x0 : 0000000060000085
> [ 51.825737] Call trace:
> [ 51.828249] do_undefinstr+0x2d8/0x2e8
> [ 51.832103] el1_sync_handler+0xb0/0x108
> [ 51.836133] el1_sync+0x7c/0x100
> [ 51.839450] pick_next_task_fair+0x1e0/0x360
> [ 51.843843] __schedule+0x114/0x560
> [ 51.847422] schedule+0x50/0xd8
> [ 51.850650] worker_thread+0xe8/0x4e8
> [ 51.854414] kthread+0x12c/0x130
> [ 51.857728] ret_from_fork+0x10/0x18
> [ 51.861407] Code: 12003c21 2a144034 17ffff99 a9025bf5 (d4210000)
> [ 51.867676] ---[ end trace 2384107ae1437c50 ]---
Some more information:
When I choose userspace governor and I'm trying to switch from 200000 or
250000 directly to 1000000, it crashes too.
Also it crashes when I quickly switch from 200000 to 500000 and then
immediately to 1000000.
More information about the linux-arm-kernel
mailing list