Re: [PATCH v5 00/33] New thermal OF code

Daniel Lezcano
2022-08-08T10:22:07Z

Hi Michael,

On 08/08/2022 11:42, Michael Walle wrote:
> Hi,
>
>> The following changes are depending on:
>>
>> - 20220722200007.1839356-1-daniel.lezcano@linexp.org
>>
>> which are present in the thermal/linux-next branch:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git/log/?h=thermal/linux-next
>>
>> The series introduces a new thermal OF code. The patch description gives
>> a detailed explanation of the changes. Basically we write new OF parsing
>> functions, we migrate all the users of the old thermal OF API to the new
>> one and then we finish by removing the old OF code.
>>
>> That is the second step to rework the thermal OF code. More patches will
>> come after that to remove the duplication of the trip definitions in the
>> different drivers which will result in more code duplication removed and
>> consolidation of the core thermal framework.
>>
>> Thanks for those who tested the series on their platform and
>> investigated the regression with the disabled by default thermal zones.
> I haven't looked closely yet, but this series is breaking two of my
> boards.
>
> There seems to be one mistake within the new thermal code:
>
> [ 2.030452] thermal_sys: Failed to find 'trips' node
> [ 2.033664] usb 1-1: new high-speed USB device number 2 using xhci-hcd
> [ 2.035434] thermal_sys: Failed to find trip points for tmu id=2
> [ 2.048010] qoriq_thermal 1f80000.tmu: Failed to register sensors
> [ 2.054128] qoriq_thermal: probe of 1f80000.tmu failed with error -22
> [ 2.060607] devm_thermal_of_zone_release:707 res=ffff002002377180
> [ 2.067044] Unable to handle kernel paging request at virtual address 01adadadadadad88
> [ 2.075003] Mem abort info:
> [ 2.077805] ESR = 0x0000000096000004
> [ 2.081562] EC = 0x25: DABT (current EL), IL = 32 bits
> [ 2.086893] SET = 0, FnV = 0
> [ 2.089955] EA = 0, S1PTW = 0
> [ 2.093100] FSC = 0x04: level 0 translation fault
> [ 2.097993] Data abort info:
> [ 2.100876] ISV = 0, ISS = 0x00000004
> [ 2.104724] CM = 0, WnR = 0
> [ 2.107698] [01adadadadadad88] address between user and kernel address ranges
> [ 2.114863] Internal error: Oops: 96000004 [#1] SMP
> [ 2.119754] Modules linked in:
> [ 2.122815] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.19.0-next-20220808-00078-ga957a15f74fc-dirty #1694
> [ 2.132504] Hardware name: Kontron KBox A-230-LS (DT)
> [ 2.137568] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [ 2.144554] pc : kfree+0x5c/0x3c0
> [ 2.147885] lr : thermal_of_zone_unregister+0x34/0x54
> [ 2.152954] sp : ffff80000a22bab0
> [ 2.156274] x29: ffff80000a22bab0 x28: 0000000000000000 x27: ffff800009960464
> [ 2.163438] x26: ffff800009a16960 x25: 0000000000000006 x24: ffff800009f09a40
> [ 2.170601] x23: ffff800009ab9008 x22: ffff800008d0d684 x21: 01adadadadadad80
> [ 2.177763] x20: 6b6b6b6b6b6b6b6b x19: ffff002002335000 x18: 00000000fffffffb
> [ 2.184925] x17: ffff800008d0d67c x16: ffff800008d072b4 x15: ffff800008d0c6c4
> [ 2.192087] x14: ffff800008d0c34c x13: ffff8000088d5034 x12: ffff8000088d46d4
> [ 2.199248] x11: ffff8000088d4624 x10: 0000000000000000 x9 : ffff800008d0d684
> [ 2.206410] x8 : ffff002000b1a158 x7 : bbbbbbbbbbbbbbbb x6 : ffff80000a0f53b8
> [ 2.213572] x5 : ffff80000a22b940 x4 : 0000000000000000 x3 : 0000000000000000
> [ 2.220733] x2 : fffffc0000000000 x1 : ffff002000838040 x0 : 01adb1adadadad80
> [ 2.227895] Call trace:
> [ 2.230342] kfree+0x5c/0x3c0
> [ 2.233318] thermal_of_zone_unregister+0x34/0x54
> [ 2.238036] devm_thermal_of_zone_release+0x44/0x54
> [ 2.242931] release_nodes+0x64/0xd0
> [ 2.246516] devres_release_all+0xbc/0x350
> [ 2.250623] device_unbind_cleanup+0x20/0x70
> [ 2.254905] really_probe+0x1a0/0x2e4
> [ 2.258577] __driver_probe_device+0x80/0xec
> [ 2.262859] driver_probe_device+0x44/0x130
> [ 2.267055] __driver_attach+0x104/0x1b4
> [ 2.270989] bus_for_each_dev+0x7c/0xe0
> [ 2.274834] driver_attach+0x30/0x40
> [ 2.278418] bus_add_driver+0x160/0x210
> [ 2.281900] hub 1-1:1.0: USB hub found
> [ 2.282264] driver_register+0x84/0x140
> [ 2.286109] hub 1-1:1.0: 7 ports detected
> [ 2.289859] __platform_driver_register+0x34/0x40
> [ 2.289867] qoriq_tmu_init+0x28/0x34
> [ 2.302258] do_one_initcall+0x50/0x250
> [ 2.306104] kernel_init_freeable+0x278/0x31c
> [ 2.310474] kernel_init+0x30/0x140
> [ 2.313972] ret_from_fork+0x10/0x20
> [ 2.317559] Code: b25657e2 d34cfc00 d37ae400 8b020015 (f94006a1)
> [ 2.323672] ---[ end trace 0000000000000000 ]---
> [ 2.328317] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
> [ 2.335999] SMP: stopping secondary CPUs
> [ 2.339932] Kernel Offset: disabled
> [ 2.343425] CPU features: 0x2000,0800f021,00001086
> [ 2.348229] Memory Limit: none
> [ 2.351289] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---
>
> This was seen a sl28 board
> (arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-kbox-a-230-ls.dts).
> The same board in the KernelCI also have some more information:
> https://lavalab.kontron.com/scheduler/job/151900#L1162
>
> But I guess even if that is fixed, the driver will not probe due to the
> missing trip points? Are they now mandatory? Does it mean we'd need to
> update our device trees? But that will then mean older devices trees
> don't work anymore.

Thanks for reporting, I'll investigate the issues you are reporting.

There is no need to update any device tree file. The code does not
change the bindings, it is a rewrite of the implementation supposed to
be without impact on the existing bindings, thus the existing device
tree descriptions.

Why are you saying there are missing trip points ? The dts shows trip
points for 'core-cluster' and 'ddr-controller' ?

> On my second board
> (arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dts). I get the
> following error:
>
> [ 6.292819] thermal_sys: Unable to find thermal zones description
> [ 6.298872] thermal_sys: Failed to find thermal zone for hwmon id=0
> [ 6.305375] lan966x-hwmon e2010180.hwmon: error -EINVAL: failed to register hwmon device
> [ 6.313508] lan966x-hwmon: probe of e2010180.hwmon failed with error -22

Interesting ...

> Again, is there seems to be something missing in the device tree. For this
> board a device tree change should be easily doable, as it is still in
> development.

> Let me know if I can help testing changes.

Yes, definitively, thanks for proposing

--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |