Re: [PATCH v2 2/6] perf/x86/amd/uncore: Move discovery and registration

From: kernel test robot
Date: Mon Oct 09 2023 - 08:37:18 EST


Hi Sandipan,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tip/perf/core]
[also build test WARNING on perf-tools/perf-tools acme/perf/core linus/master v6.6-rc5 next-20231009]
[cannot apply to perf-tools-next/perf-tools-next]
[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
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Sandipan-Das/perf-x86-amd-uncore-Move-discovery-and-registration/20231006-005053
base: tip/perf/core
patch link: https://lore.kernel.org/r/e6c447e48872fcab8452e0dd81b1c9cb09f39eb4.1696425185.git.sandipan.das%40amd.com
patch subject: [PATCH v2 2/6] perf/x86/amd/uncore: Move discovery and registration
config: i386-randconfig-061-20231009 (https://download.01.org/0day-ci/archive/20231009/202310092019.yMh3nlyD-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231009/202310092019.yMh3nlyD-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310092019.yMh3nlyD-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> arch/x86/events/amd/uncore.c:601:10: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got union amd_uncore_info * @@
arch/x86/events/amd/uncore.c:601:10: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/events/amd/uncore.c:601:10: sparse: got union amd_uncore_info *
arch/x86/events/amd/uncore.c:730:10: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got union amd_uncore_info * @@
arch/x86/events/amd/uncore.c:730:10: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/events/amd/uncore.c:730:10: sparse: got union amd_uncore_info *
>> arch/x86/events/amd/uncore.c:847:30: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected union amd_uncore_info *[noderef] info @@ got union amd_uncore_info [noderef] __percpu * @@
arch/x86/events/amd/uncore.c:847:30: sparse: expected union amd_uncore_info *[noderef] info
arch/x86/events/amd/uncore.c:847:30: sparse: got union amd_uncore_info [noderef] __percpu *
>> arch/x86/events/amd/uncore.c:881:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __percpu *__pdata @@ got union amd_uncore_info *[noderef] info @@
arch/x86/events/amd/uncore.c:881:43: sparse: expected void [noderef] __percpu *__pdata
arch/x86/events/amd/uncore.c:881:43: sparse: got union amd_uncore_info *[noderef] info
arch/x86/events/amd/uncore.c:904:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __percpu *__pdata @@ got union amd_uncore_info *[noderef] info @@
arch/x86/events/amd/uncore.c:904:35: sparse: expected void [noderef] __percpu *__pdata
arch/x86/events/amd/uncore.c:904:35: sparse: got union amd_uncore_info *[noderef] info
arch/x86/events/amd/uncore.c:358:39: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got union amd_uncore_info * @@
arch/x86/events/amd/uncore.c:358:39: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/events/amd/uncore.c:358:39: sparse: got union amd_uncore_info *
>> arch/x86/events/amd/uncore.c:358:39: sparse: sparse: dereference of noderef expression
arch/x86/events/amd/uncore.c:358:39: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got union amd_uncore_info * @@
arch/x86/events/amd/uncore.c:358:39: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/events/amd/uncore.c:358:39: sparse: got union amd_uncore_info *
>> arch/x86/events/amd/uncore.c:358:39: sparse: sparse: dereference of noderef expression
arch/x86/events/amd/uncore.c:601:10: sparse: sparse: dereference of noderef expression
>> arch/x86/events/amd/uncore.c:593:31: sparse: sparse: invalid access past the end of 'info' (4 8)
arch/x86/events/amd/uncore.c:598:48: sparse: sparse: invalid access past the end of 'info' (4 8)
arch/x86/events/amd/uncore.c:365:39: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got union amd_uncore_info * @@
arch/x86/events/amd/uncore.c:365:39: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/events/amd/uncore.c:365:39: sparse: got union amd_uncore_info *
arch/x86/events/amd/uncore.c:365:39: sparse: sparse: dereference of noderef expression
arch/x86/events/amd/uncore.c:730:10: sparse: sparse: dereference of noderef expression
arch/x86/events/amd/uncore.c:724:31: sparse: sparse: invalid access past the end of 'info' (4 8)
arch/x86/events/amd/uncore.c:365:39: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got union amd_uncore_info * @@
arch/x86/events/amd/uncore.c:365:39: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/events/amd/uncore.c:365:39: sparse: got union amd_uncore_info *
arch/x86/events/amd/uncore.c:365:39: sparse: sparse: dereference of noderef expression
arch/x86/events/amd/uncore.c:848:22: sparse: sparse: dereference of noderef expression
arch/x86/events/amd/uncore.c:880:21: sparse: sparse: dereference of noderef expression
arch/x86/events/amd/uncore.c:881:37: sparse: sparse: dereference of noderef expression
arch/x86/events/amd/uncore.c:882:25: sparse: sparse: dereference of noderef expression
arch/x86/events/amd/uncore.c:901:22: sparse: sparse: dereference of noderef expression
arch/x86/events/amd/uncore.c:904:29: sparse: sparse: dereference of noderef expression
arch/x86/events/amd/uncore.c:905:17: sparse: sparse: dereference of noderef expression

vim +601 arch/x86/events/amd/uncore.c

582
583 static
584 void amd_uncore_df_ctx_scan(struct amd_uncore *uncore, unsigned int cpu)
585 {
586 union cpuid_0x80000022_ebx ebx;
587 union amd_uncore_info info;
588
589 if (!boot_cpu_has(X86_FEATURE_PERFCTR_NB))
590 return;
591
592 info.split.aux_data = 0;
> 593 info.split.num_pmcs = NUM_COUNTERS_NB;
594 info.split.cid = topology_die_id(cpu);
595
596 if (pmu_version >= 2) {
597 ebx.full = cpuid_ebx(EXT_PERFMON_DEBUG_FEATURES);
598 info.split.num_pmcs = ebx.split.num_df_pmc;
599 }
600
> 601 *per_cpu_ptr(uncore->info, cpu) = info;
602 }
603

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki