Re: [PATCH v1] thermal/core: change mm alloc method to avoid kernel warning

From: Daniel Lezcano
Date: Tue Apr 19 2022 - 13:56:47 EST


On 19/04/2022 15:54, Zhang Rui wrote:
CC Viresh.

On Tue, 2022-04-19 at 11:14 +0200, Daniel Lezcano wrote:
On 19/04/2022 10:48, Zhang Rui wrote:
On Sun, 2022-04-17 at 12:56 +0000, Junwen Wu wrote:
Very high cooling device max state value makes cooling device
stats
buffer allocation fails,like below.Using kzvalloc instead of
kzalloc
can avoid this issue.

When a cooling device has big max_state, this patch can get ride of
the
warning here, but still we end up with the read failure of the
trans_table in sysfs because it is larger than PAGE_SIZE.

$ cat /sys/class/thermal/cooling_device8/stats/trans_table
cat: /sys/class/thermal/cooling_device8/stats/trans_table: File too
large

IMO, unless we can fix both places, I'd suggest we skip allocating
and
creating the broken trans_table attr. Like a prototype patch below

Why not create a thermal debugfs with real useful information and
get
rid of this broken code ?

The idea looks good to me.

What about doing a percentile approach of the state indexes changes instead of a raw matrix full of zeros ? So we show the most significant transitions, perhaps something like:

99%: 7->6 6->7
98%: 6->5 5->6
95%: 5->4 4->5
90%: 7->5 5->7
80%: 6->4 4->6
70%: 7->1 7->2
50%: ... ...

total: 123456 124573


And another statistics file containing some timings information like the total duration in mitigation, and the duration in the most significant states above?

--
<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 |
<http://www.linaro.org/linaro-blog/> Blog