Re: [PATCH] arch_topology: Trace the update thermal pressure

From: Lukasz Luba
Date: Mon Apr 25 2022 - 06:06:09 EST

On 4/20/22 09:34, kernel test robot wrote:
Hi Lukasz,

I love your patch! Yet something to improve:

[auto build test ERROR on driver-core/driver-core-testing]
[also build test ERROR on rostedt-trace/for-next linus/master linux/master v5.18-rc3 next-20220419]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in]

base: 3123109284176b1532874591f7c81f3837bbdc17
config: riscv-randconfig-c024-20220420 (
compiler: riscv64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git remote add linux-review
git fetch --no-tags linux-review Lukasz-Luba/arch_topology-Trace-the-update-thermal-pressure/20220420-005845
git checkout aeff700a88be6a7469acfc312155bd213f76de95
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

riscv64-linux-ld: drivers/base/arch_topology.o: in function `.L18':
arch_topology.c:(.text+0x136): undefined reference to `__traceiter_thermal_pressure_update'
riscv64-linux-ld: drivers/base/arch_topology.o: in function `.L20':
arch_topology.c:(.text+0x168): undefined reference to `__tracepoint_thermal_pressure_update'
riscv64-linux-ld: arch_topology.c:(.text+0x16c): undefined reference to `__tracepoint_thermal_pressure_update'
riscv64-linux-ld: drivers/base/arch_topology.o: in function `.L0 ':
arch_topology.c:(__jump_table+0x8): undefined reference to `__tracepoint_thermal_pressure_update'

I've reproduced this issue and experimented with a few solutions.
that config file doesn't set CONFIG_THERMAL, where normally we have
in thermal_core.c the:
25 #include <trace/events/thermal.h>

(similar mechanism we have for thermal_power_allocator.h and IPA.)

We normally test w/ this config, but I'll also start checking the build
w/o thermal subsystem.

I cannot add those two lines in the arch_topology.c since it complains
about multiple definitions for many entries.

Thus, I'll create a separate header thermal_pressure.h to put it in the

I'll also export the symbol as suggested by Steve, so some potential
cpufreq modules could just us it from there.

I'll also re-visit the trace events that we have in thermal subsystem,
since they are not exported but some modules might would like
to use (some of) them...