[PATCH v2 1/2] perf: coresight_pmu: Add support for ARM CoreSight PMU driver

Besar Wicaksono bwicaksono at nvidia.com
Wed May 18 13:10:41 PDT 2022


The errors on the APMT* identifiers are due to the missing ACPI patch, which was
submitted on different series: https://lkml.org/lkml/fancy/2022/4/19/1395.
Sudeep, could you please suggest if I need to combine ACPI and driver patches
into a single patch series ?

I will fix the warning on 'level' usage on the next version.

Regards,
Besar

> -----Original Message-----
> From: kernel test robot <lkp at intel.com>
> Sent: Wednesday, May 18, 2022 2:16 AM
> To: Besar Wicaksono <bwicaksono at nvidia.com>; robin.murphy at arm.com;
> catalin.marinas at arm.com; will at kernel.org; mark.rutland at arm.com
> Cc: llvm at lists.linux.dev; kbuild-all at lists.01.org; linux-arm-
> kernel at lists.infradead.org; linux-kernel at vger.kernel.org; linux-
> tegra at vger.kernel.org; sudeep.holla at arm.com;
> thanu.rangarajan at arm.com; Michael.Williams at arm.com;
> suzuki.poulose at arm.com; Thierry Reding <treding at nvidia.com>; Jonathan
> Hunter <jonathanh at nvidia.com>; Vikram Sethi <vsethi at nvidia.com>; Besar
> Wicaksono <bwicaksono at nvidia.com>
> Subject: Re: [PATCH v2 1/2] perf: coresight_pmu: Add support for ARM
> CoreSight PMU driver
> 
> External email: Use caution opening links or attachments
> 
> 
> Hi Besar,
> 
> Thank you for the patch! Perhaps something to improve:
> 
> [auto build test WARNING on arm64/for-next/core]
> [also build test WARNING on soc/for-next linus/master v5.18-rc7 next-
> 20220517]
> [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]
> 
> url:    https://github.com/intel-lab-lkp/linux/commits/Besar-Wicaksono/perf-
> coresight_pmu-Add-support-for-ARM-CoreSight-PMU-driver/20220516-
> 013131
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-
> next/core
> config: arm64-allyesconfig (https://download.01.org/0day-
> ci/archive/20220518/202205181534.wuyBFt9d-lkp at intel.com/config)
> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project
> 853fa8ee225edf2d0de94b0dcbd31bea916e825e)
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-
> tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # install arm64 cross compiling tool for clang build
>         # apt-get install binutils-aarch64-linux-gnu
>         # https://github.com/intel-lab-
> lkp/linux/commit/79f30980a7a91e6bbe7430206e4e46fa8134cfa9
>         git remote add linux-review https://github.com/intel-lab-lkp/linux
>         git fetch --no-tags linux-review Besar-Wicaksono/perf-coresight_pmu-
> Add-support-for-ARM-CoreSight-PMU-driver/20220516-013131
>         git checkout 79f30980a7a91e6bbe7430206e4e46fa8134cfa9
>         # save the config file
>         mkdir build_dir && cp config build_dir/.config
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross
> W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash
> drivers/media/platform/qcom/venus/ drivers/perf/coresight_pmu/
> drivers/rtc/
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp at intel.com>
> 
> All warnings (new ones prefixed by >>):
> 
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:165:49: error:
> incomplete definition of type 'struct acpi_apmt_node'
>            return CHECK_APMT_FLAG(coresight_pmu->apmt_node->flags,
> ATOMIC, SUPP);
>                                   ~~~~~~~~~~~~~~~~~~~~~~~~^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:129:4: note: expanded
> from macro 'CHECK_APMT_FLAG'
>            ((flags & (ACPI_APMT_FLAGS_ ## f)) == (ACPI_APMT_FLAGS_ ## f ##
> _ ## v))
>              ^~~~~
>    drivers/perf/coresight_pmu/arm_coresight_pmu.h:116:9: note: forward
> declaration of 'struct acpi_apmt_node'
>            struct acpi_apmt_node *apmt_node;
>                   ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:165:9: error: use of
> undeclared identifier 'ACPI_APMT_FLAGS_ATOMIC'
>            return CHECK_APMT_FLAG(coresight_pmu->apmt_node->flags,
> ATOMIC, SUPP);
>                   ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:129:13: note: expanded
> from macro 'CHECK_APMT_FLAG'
>            ((flags & (ACPI_APMT_FLAGS_ ## f)) == (ACPI_APMT_FLAGS_ ## f ##
> _ ## v))
>                       ^
>    <scratch space>:61:1: note: expanded from here
>    ACPI_APMT_FLAGS_ATOMIC
>    ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:165:9: error: use of
> undeclared identifier 'ACPI_APMT_FLAGS_ATOMIC_SUPP'
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:129:41: note: expanded
> from macro 'CHECK_APMT_FLAG'
>            ((flags & (ACPI_APMT_FLAGS_ ## f)) == (ACPI_APMT_FLAGS_ ## f ##
> _ ## v))
>                                                   ^
>    <scratch space>:64:1: note: expanded from here
>    ACPI_APMT_FLAGS_ATOMIC_SUPP
>    ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:369:13: error:
> incomplete definition of type 'struct acpi_apmt_node'
>                    (apmt_node->impl_id) ? apmt_node->impl_id :
>                     ~~~~~~~~~^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.h:116:9: note: forward
> declaration of 'struct acpi_apmt_node'
>            struct acpi_apmt_node *apmt_node;
>                   ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:369:35: error:
> incomplete definition of type 'struct acpi_apmt_node'
>                    (apmt_node->impl_id) ? apmt_node->impl_id :
>                                           ~~~~~~~~~^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.h:116:9: note: forward
> declaration of 'struct acpi_apmt_node'
>            struct acpi_apmt_node *apmt_node;
>                   ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:894:58: error:
> incomplete definition of type 'struct acpi_apmt_node'
>                    devm_kasprintf(dev, GFP_KERNEL, PMUNAME "%u", apmt_node-
> >id);
>                                                                  ~~~~~~~~~^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.h:116:9: note: forward
> declaration of 'struct acpi_apmt_node'
>            struct acpi_apmt_node *apmt_node;
>                   ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:920:31: error:
> incomplete definition of type 'struct acpi_apmt_node'
>            if (CHECK_APMT_FLAG(apmt_node->flags, DUAL_PAGE, SUPP)) {
>                                ~~~~~~~~~^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:129:4: note: expanded
> from macro 'CHECK_APMT_FLAG'
>            ((flags & (ACPI_APMT_FLAGS_ ## f)) == (ACPI_APMT_FLAGS_ ## f ##
> _ ## v))
>              ^~~~~
>    drivers/perf/coresight_pmu/arm_coresight_pmu.h:116:9: note: forward
> declaration of 'struct acpi_apmt_node'
>            struct acpi_apmt_node *apmt_node;
>                   ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:920:6: error: use of
> undeclared identifier 'ACPI_APMT_FLAGS_DUAL_PAGE'
>            if (CHECK_APMT_FLAG(apmt_node->flags, DUAL_PAGE, SUPP)) {
>                ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:129:13: note: expanded
> from macro 'CHECK_APMT_FLAG'
>            ((flags & (ACPI_APMT_FLAGS_ ## f)) == (ACPI_APMT_FLAGS_ ## f ##
> _ ## v))
>                       ^
>    <scratch space>:60:1: note: expanded from here
>    ACPI_APMT_FLAGS_DUAL_PAGE
>    ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:920:6: error: use of
> undeclared identifier 'ACPI_APMT_FLAGS_DUAL_PAGE_SUPP'
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:129:41: note: expanded
> from macro 'CHECK_APMT_FLAG'
>            ((flags & (ACPI_APMT_FLAGS_ ## f)) == (ACPI_APMT_FLAGS_ ## f ##
> _ ## v))
>                                                   ^
>    <scratch space>:63:1: note: expanded from here
>    ACPI_APMT_FLAGS_DUAL_PAGE_SUPP
>    ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:1028:15: error:
> incomplete definition of type 'struct acpi_apmt_node'
>            if (apmt_node->ovflw_irq == 0)
>                ~~~~~~~~~^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.h:116:9: note: forward
> declaration of 'struct acpi_apmt_node'
>            struct acpi_apmt_node *apmt_node;
>                   ^
> >> drivers/perf/coresight_pmu/arm_coresight_pmu.c:1053:6: warning:
> variable 'level' set but not used [-Wunused-but-set-variable]
>            int level = 0;
>                ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:1079:27: error:
> incomplete definition of type 'struct acpi_apmt_node'
>            affinity_flag = apmt_node->flags & ACPI_APMT_FLAGS_AFFINITY;
>                            ~~~~~~~~~^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.h:116:9: note: forward
> declaration of 'struct acpi_apmt_node'
>            struct acpi_apmt_node *apmt_node;
>                   ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:1079:37: error: use of
> undeclared identifier 'ACPI_APMT_FLAGS_AFFINITY'
>            affinity_flag = apmt_node->flags & ACPI_APMT_FLAGS_AFFINITY;
>                                               ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:1081:23: error: use of
> undeclared identifier 'ACPI_APMT_FLAGS_AFFINITY_PROC'
>            if (affinity_flag == ACPI_APMT_FLAGS_AFFINITY_PROC) {
>                                 ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:1083:17: error:
> incomplete definition of type 'struct acpi_apmt_node'
>                            if (apmt_node->proc_affinity ==
>                                ~~~~~~~~~^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.h:116:9: note: forward
> declaration of 'struct acpi_apmt_node'
>            struct acpi_apmt_node *apmt_node;
>                   ^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.c:1093:23: error:
> incomplete definition of type 'struct acpi_apmt_node'
>                                        cpu, apmt_node->proc_affinity))
>                                             ~~~~~~~~~^
>    drivers/perf/coresight_pmu/arm_coresight_pmu.h:116:9: note: forward
> declaration of 'struct acpi_apmt_node'
>            struct acpi_apmt_node *apmt_node;
>                   ^
>    1 warning and 15 errors generated.
> 
> 
> vim +/level +1053 drivers/perf/coresight_pmu/arm_coresight_pmu.c
> 
>   1047
>   1048  static inline int coresight_pmu_find_cpu_container(int cpu, u32
> container_uid)
>   1049  {
>   1050          u32 acpi_uid;
>   1051          struct device *cpu_dev = get_cpu_device(cpu);
>   1052          struct acpi_device *acpi_dev = ACPI_COMPANION(cpu_dev);
> > 1053          int level = 0;
>   1054
>   1055          if (!cpu_dev)
>   1056                  return -ENODEV;
>   1057
>   1058          while (acpi_dev) {
>   1059                  if (!strcmp(acpi_device_hid(acpi_dev),
>   1060                              ACPI_PROCESSOR_CONTAINER_HID) &&
>   1061                      !kstrtouint(acpi_device_uid(acpi_dev), 0, &acpi_uid) &&
>   1062                      acpi_uid == container_uid)
>   1063                          return 0;
>   1064
>   1065                  acpi_dev = acpi_dev->parent;
>   1066                  level++;
>   1067          }
>   1068
>   1069          return -ENODEV;
>   1070  }
>   1071
> 
> --
> 0-DAY CI Kernel Test Service
> https://01.org/lkp



More information about the linux-arm-kernel mailing list