[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGb2v67bWu0n--REsmmMo9oqdSu8wh6ys0b4omEQ57223W7suw@mail.gmail.com>
Date: Sun, 31 Jan 2021 13:33:32 +0800
From: Chen-Yu Tsai <wens@...e.org>
To: Corentin Labbe <clabbe.montjoie@...il.com>,
Maxime Ripard <mripard@...nel.org>
Cc: Jernej Skrabec <jernej.skrabec@...l.net>,
devicetree <devicetree@...r.kernel.org>,
linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: arm: sunxi: &83t: WARNING: CPU: 2 PID: 57 at drivers/thermal/thermal_core.c:563
thermal_zone_device_update
Hi,
On Sun, Jan 31, 2021 at 12:54 AM Corentin Labbe
<clabbe.montjoie@...il.com> wrote:
>
> Hello
>
> When booting next-20210128, I got the following warning on by bpim3
> 6.148421] ------------[ cut here ]------------
> [ 6.153145] WARNING: CPU: 2 PID: 57 at drivers/thermal/thermal_core.c:563 thermal_zone_device_update+0x134/0x154
> [ 6.163378] 'thermal_zone_device_update' must not be called without 'get_temp' ops set
> [ 6.171300] Modules linked in: sha256_generic libsha256
> [ 6.176553] CPU: 2 PID: 57 Comm: kworker/2:1 Not tainted 5.11.0-rc1-00042-gf3788af62cfe #399
> [ 6.184984] Hardware name: Allwinner A83t board
> [ 6.189517] Workqueue: events deferred_probe_work_func
> [ 6.194686] [<c010d568>] (unwind_backtrace) from [<c010a060>] (show_stack+0x10/0x14)
> [ 6.202438] [<c010a060>] (show_stack) from [<c07e156c>] (dump_stack+0x98/0xac)
> [ 6.209666] [<c07e156c>] (dump_stack) from [<c07df02c>] (__warn+0xc0/0xd8)
> [ 6.216545] [<c07df02c>] (__warn) from [<c07df0dc>] (warn_slowpath_fmt+0x98/0xc0)
> [ 6.224030] [<c07df0dc>] (warn_slowpath_fmt) from [<c0630384>] (thermal_zone_device_update+0x134/0x154)
> [ 6.233426] [<c0630384>] (thermal_zone_device_update) from [<c0630918>] (__thermal_cooling_device_register+0x334/0x35c)
> [ 6.244204] [<c0630918>] (__thermal_cooling_device_register) from [<c0633ea0>] (__cpufreq_cooling_register.constprop.0+0x184/0x294)
> [ 6.256026] [<c0633ea0>] (__cpufreq_cooling_register.constprop.0) from [<c0633ff0>] (of_cpufreq_cooling_register+0x40/0x7c)
> [ 6.267153] [<c0633ff0>] (of_cpufreq_cooling_register) from [<c064cb44>] (cpufreq_online+0x2b4/0x8f4)
> [ 6.276379] [<c064cb44>] (cpufreq_online) from [<c064d200>] (cpufreq_add_dev+0x6c/0x78)
> [ 6.284383] [<c064d200>] (cpufreq_add_dev) from [<c04f7a98>] (subsys_interface_register+0xa4/0xf0)
> [ 6.293344] [<c04f7a98>] (subsys_interface_register) from [<c064b664>] (cpufreq_register_driver+0x144/0x2dc)
> [ 6.303169] [<c064b664>] (cpufreq_register_driver) from [<c064de34>] (dt_cpufreq_probe+0x298/0x3b8)
> [ 6.312215] [<c064de34>] (dt_cpufreq_probe) from [<c04fb540>] (platform_probe+0x5c/0xb8)
> [ 6.320313] [<c04fb540>] (platform_probe) from [<c04f9374>] (really_probe+0x1dc/0x3b8)
> [ 6.328231] [<c04f9374>] (really_probe) from [<c04f95ac>] (driver_probe_device+0x5c/0xb4)
> [ 6.336406] [<c04f95ac>] (driver_probe_device) from [<c04f778c>] (bus_for_each_drv+0x84/0xc8)
> [ 6.344928] [<c04f778c>] (bus_for_each_drv) from [<c04f9124>] (__device_attach+0xe8/0x154)
> [ 6.353189] [<c04f9124>] (__device_attach) from [<c04f8440>] (bus_probe_device+0x84/0x8c)
> [ 6.361365] [<c04f8440>] (bus_probe_device) from [<c04f88d4>] (deferred_probe_work_func+0x64/0x90)
> [ 6.370321] [<c04f88d4>] (deferred_probe_work_func) from [<c0134b98>] (process_one_work+0x1dc/0x438)
> [ 6.379456] [<c0134b98>] (process_one_work) from [<c0135050>] (worker_thread+0x25c/0x55c)
> [ 6.387632] [<c0135050>] (worker_thread) from [<c013b7b4>] (kthread+0x124/0x150)
> [ 6.395032] [<c013b7b4>] (kthread) from [<c0100150>] (ret_from_fork+0x14/0x24)
> [ 6.402256] Exception stack(0xc12d1fb0 to 0xc12d1ff8)
> [ 6.407307] 1fa0: 00000000 00000000 00000000 00000000
> [ 6.415478] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> [ 6.423648] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
> [ 6.430301] ---[ end trace bd63a5c976f3611c ]---
>
> I bisected the problem to
> ARM: dts: sunxi: Remove thermal zones without trip points
>
> Reverting this commit remove the warning.
The thermal subsystem seems to require a thermal zone be present for each
thermal sensor that is registered.
So maybe a better solution is not to remove the thermal zones without trip
points, but just add the standard passive and critical trip points based
on the SoC's thermal limits.
ChenYu
Powered by blists - more mailing lists