[PATCH bpf] cacheinfo: move get_cpu_cacheinfo_id() back out

Song Liu song at kernel.org
Tue Nov 23 09:45:41 PST 2021


On Sat, Nov 20, 2021 at 6:55 AM Jakub Kicinski <kuba at kernel.org> wrote:
>
> This commit more or less reverts commit 709c4362725a ("cacheinfo:
> Move resctrl's get_cache_id() to the cacheinfo header file").
>
> There are no users of the static inline helper outside of resctrl/core.c
> and cpu.h is a pretty heavy include, it pulls in device.h etc. This
> trips up architectures like riscv which want to access cacheinfo
> in low level headers like elf.h.
>
> Link: https://lore.kernel.org/all/20211120035253.72074-1-kuba@kernel.org/
> Signed-off-by: Jakub Kicinski <kuba at kernel.org>
> ---
> CC: fenghua.yu at intel.com
> CC: reinette.chatre at intel.com
> CC: tglx at linutronix.de
> CC: mingo at redhat.com
> CC: bp at alien8.de
> CC: dave.hansen at linux.intel.com
> CC: x86 at kernel.org
> CC: hpa at zytor.com
> CC: paul.walmsley at sifive.com
> CC: palmer at dabbelt.com
> CC: aou at eecs.berkeley.edu
> CC: peterz at infradead.org
> CC: will at kernel.org
> CC: linux-riscv at lists.infradead.org
>
> x86 resctrl folks, does this look okay?
>
> I'd like to do some bpf header cleanups in -next which this is blocking.
> How would you like to handle that? This change looks entirely harmless,
> can I get an ack and take this via bpf/netdev to Linus ASAP so it
> propagates to all trees?

Does this patch target the bpf tree, or the bpf-next tree? If we want to unblock
bpf header cleanup in -next, we can simply include it in a set for bpf-next.

Thanks,
Song


> ---
>  arch/x86/kernel/cpu/resctrl/core.c | 20 ++++++++++++++++++++
>  include/linux/cacheinfo.h          | 21 ---------------------
>  2 files changed, 20 insertions(+), 21 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
> index bb1c3f5f60c8..3c0b2c34be23 100644
> --- a/arch/x86/kernel/cpu/resctrl/core.c
> +++ b/arch/x86/kernel/cpu/resctrl/core.c
> @@ -284,6 +284,26 @@ static void rdt_get_cdp_l2_config(void)
>         rdt_get_cdp_config(RDT_RESOURCE_L2);
>  }
>
> +/*
> + * Get the id of the cache associated with @cpu at level @level.
> + * cpuhp lock must be held.
> + */
> +static int get_cpu_cacheinfo_id(int cpu, int level)
> +{
> +       struct cpu_cacheinfo *ci = get_cpu_cacheinfo(cpu);
> +       int i;
> +
> +       for (i = 0; i < ci->num_leaves; i++) {
> +               if (ci->info_list[i].level == level) {
> +                       if (ci->info_list[i].attributes & CACHE_ID)
> +                               return ci->info_list[i].id;
> +                       return -1;
> +               }
> +       }
> +
> +       return -1;
> +}
> +
>  static void
>  mba_wrmsr_amd(struct rdt_domain *d, struct msr_param *m, struct rdt_resource *r)
>  {
> diff --git a/include/linux/cacheinfo.h b/include/linux/cacheinfo.h
> index 2f909ed084c6..c8c71eea237d 100644
> --- a/include/linux/cacheinfo.h
> +++ b/include/linux/cacheinfo.h
> @@ -3,7 +3,6 @@
>  #define _LINUX_CACHEINFO_H
>
>  #include <linux/bitops.h>
> -#include <linux/cpu.h>
>  #include <linux/cpumask.h>
>  #include <linux/smp.h>
>
> @@ -102,24 +101,4 @@ int acpi_find_last_cache_level(unsigned int cpu);
>
>  const struct attribute_group *cache_get_priv_group(struct cacheinfo *this_leaf);
>
> -/*
> - * Get the id of the cache associated with @cpu at level @level.
> - * cpuhp lock must be held.
> - */
> -static inline int get_cpu_cacheinfo_id(int cpu, int level)
> -{
> -       struct cpu_cacheinfo *ci = get_cpu_cacheinfo(cpu);
> -       int i;
> -
> -       for (i = 0; i < ci->num_leaves; i++) {
> -               if (ci->info_list[i].level == level) {
> -                       if (ci->info_list[i].attributes & CACHE_ID)
> -                               return ci->info_list[i].id;
> -                       return -1;
> -               }
> -       }
> -
> -       return -1;
> -}
> -
>  #endif /* _LINUX_CACHEINFO_H */
> --
> 2.31.1
>



More information about the linux-riscv mailing list