Hi Stephen, On 2024-09-11 1:38 a.m., Stephen Rothwell wrote: > Hi all, > > After merging the tip tree, today's linux-next build (arm > multi_v7_defconfig) produced this warning: > > kernel/events/core.c: In function 'perf_event_setup_cpumask': > kernel/events/core.c:14012:13: warning: the comparison will always evaluate as 'true' for the address of 'thread_sibling' will never be NULL [-Waddress] > 14012 | if (!topology_sibling_cpumask(cpu)) { The perf_event_init_cpu() may be invoked at the early boot stage, while the topology_*_cpumask hasn't been initialized yet. The check is to specially handle the case. X86 uses a per-cpu cpumask pointer, which could be NULL at the early boot stage. However, it looks like ARM uses a global variable, which never be NULL. If so, I think we should check whether it's empty. The below patch should fix it (Only test on X86). diff --git a/kernel/events/core.c b/kernel/events/core.c index 2766090de84e..fc0c17e57c86 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -14000,7 +14000,8 @@ static void perf_event_setup_cpumask(unsigned int cpu) * The perf_online_<domain>_masks includes the first CPU of each domain. * Always uncondifionally set the boot CPU for the perf_online_<domain>_masks. */ - if (!topology_sibling_cpumask(cpu)) { + if (cpu == get_boot_cpu_id() && + (!topology_sibling_cpumask(cpu) || cpumask_empty(topology_sibling_cpumask(cpu)))) { for (scope = PERF_PMU_SCOPE_NONE + 1; scope < PERF_PMU_MAX_SCOPE; scope++) { pmu_cpumask = perf_scope_cpumask(scope); if (WARN_ON_ONCE(!pmu_cpumask)) Should I send the above as a separate patch to fix it? Thanks, Kan > | ^ > In file included from include/linux/topology.h:30, > from include/linux/gfp.h:8, > from include/linux/xarray.h:16, > from include/linux/list_lru.h:14, > from include/linux/fs.h:13, > from kernel/events/core.c:11: > include/linux/arch_topology.h:78:19: note: 'thread_sibling' declared here > 78 | cpumask_t thread_sibling; > | ^~~~~~~~~~~~~~ > > Introduced by commit > > 4ba4f1afb6a9 ("perf: Generic hotplug support for a PMU with a scope") >