Message ID | 20211120165528.197359-1-kuba@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [bpf] cacheinfo: move get_cpu_cacheinfo_id() back out | expand |
On Sat, Nov 20, 2021 at 6:55 AM Jakub Kicinski <kuba@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@kernel.org> > --- > CC: fenghua.yu@intel.com > CC: reinette.chatre@intel.com > CC: tglx@linutronix.de > CC: mingo@redhat.com > CC: bp@alien8.de > CC: dave.hansen@linux.intel.com > CC: x86@kernel.org > CC: hpa@zytor.com > CC: paul.walmsley@sifive.com > CC: palmer@dabbelt.com > CC: aou@eecs.berkeley.edu > CC: peterz@infradead.org > CC: will@kernel.org > CC: linux-riscv@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 >
On Tue, 23 Nov 2021 07:45:41 -1000 Song Liu wrote: > > 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. No strong preference. Since this is very much not a bpf patch and should be safe my intuition is to ship it to Linus ASAP and avoid any potential conflicts with other -next trees. Also riscv people may appreciate it getting fixed sooner rather than later. If they trip up the same dependency later on in the cycle and we've already committed this patch to bpf-next they'd have to duplicate the patch in their tree.
Hello, On 23/11/2021 17:45, Song Liu wrote: > On Sat, Nov 20, 2021 at 6:55 AM Jakub Kicinski <kuba@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@kernel.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. Some background: this is part of the mpam tree that wires up resctrl for arm64. This patch floated to the top and got merged with some cleanup as it was independent of the wider resctrl changes. If the cpu.h include is the problem, I can't see what that is needed for. It almost certainly came in with a lockdep annotation that got replaced by a comment instead. Thanks, James >> 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 >>
On Tue, Nov 23, 2021 at 8:49 AM James Morse <james.morse@arm.com> wrote: > > Hello, > > On 23/11/2021 17:45, Song Liu wrote: > > On Sat, Nov 20, 2021 at 6:55 AM Jakub Kicinski <kuba@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@kernel.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. > > > Some background: this is part of the mpam tree that wires up resctrl for arm64. This patch > floated to the top and got merged with some cleanup as it was independent of the wider > resctrl changes. > > If the cpu.h include is the problem, I can't see what that is needed for. It almost > certainly came in with a lockdep annotation that got replaced by a comment instead. Thanks for the information. I can ack the patch for the patch itself. Acked-by: Song Liu <songliubraving@fb.com> But I am not sure whether we should ship it via bpf tree. It seems to me that the only reason we ship it via bpf tree is to get it to upstream ASAP? Alexei/Daniel/Andrii, what do you think about this? Thanks, Song
On Wed, Nov 24, 2021 at 1:14 AM Song Liu <song@kernel.org> wrote: > > On Tue, Nov 23, 2021 at 8:49 AM James Morse <james.morse@arm.com> wrote: > > > > Hello, > > > > On 23/11/2021 17:45, Song Liu wrote: > > > On Sat, Nov 20, 2021 at 6:55 AM Jakub Kicinski <kuba@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@kernel.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. > > > > > > Some background: this is part of the mpam tree that wires up resctrl for arm64. This patch > > floated to the top and got merged with some cleanup as it was independent of the wider > > resctrl changes. > > > > If the cpu.h include is the problem, I can't see what that is needed for. It almost > > certainly came in with a lockdep annotation that got replaced by a comment instead. > > Thanks for the information. > > I can ack the patch for the patch itself. > > Acked-by: Song Liu <songliubraving@fb.com> > > But I am not sure whether we should ship it via bpf tree. It seems to > me that the > only reason we ship it via bpf tree is to get it to upstream ASAP? > > Alexei/Daniel/Andrii, what do you think about this? I don't completely understand why it cannot go via -next along with other patches, but if Jakub needs it asap here is my Acked-by: Alexei Starovoitov <ast@kernel.org> and probably the fastest is for Jakub to take it via net tree directly.
Hi Everybody, On 11/25/2021 7:59 AM, Alexei Starovoitov wrote: > On Wed, Nov 24, 2021 at 1:14 AM Song Liu <song@kernel.org> wrote: >> >> On Tue, Nov 23, 2021 at 8:49 AM James Morse <james.morse@arm.com> wrote: >>> >>> Hello, >>> >>> On 23/11/2021 17:45, Song Liu wrote: >>>> On Sat, Nov 20, 2021 at 6:55 AM Jakub Kicinski <kuba@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@kernel.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. >>> >>> >>> Some background: this is part of the mpam tree that wires up resctrl for arm64. This patch >>> floated to the top and got merged with some cleanup as it was independent of the wider >>> resctrl changes. >>> >>> If the cpu.h include is the problem, I can't see what that is needed for. It almost >>> certainly came in with a lockdep annotation that got replaced by a comment instead. >> >> Thanks for the information. >> >> I can ack the patch for the patch itself. >> >> Acked-by: Song Liu <songliubraving@fb.com> >> >> But I am not sure whether we should ship it via bpf tree. It seems to >> me that the >> only reason we ship it via bpf tree is to get it to upstream ASAP? >> >> Alexei/Daniel/Andrii, what do you think about this? > > I don't completely understand why it cannot go via -next along > with other patches, but if Jakub needs it asap here is my > Acked-by: Alexei Starovoitov <ast@kernel.org> > and probably the fastest is for Jakub to take it via net tree directly. These responses seems to ignore the information provided by James. How about just the hunk below. It is not needed by the other parts removed and addresses the issue described in the changelog. --- 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> Reinette
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 */
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@kernel.org> --- CC: fenghua.yu@intel.com CC: reinette.chatre@intel.com CC: tglx@linutronix.de CC: mingo@redhat.com CC: bp@alien8.de CC: dave.hansen@linux.intel.com CC: x86@kernel.org CC: hpa@zytor.com CC: paul.walmsley@sifive.com CC: palmer@dabbelt.com CC: aou@eecs.berkeley.edu CC: peterz@infradead.org CC: will@kernel.org CC: linux-riscv@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? --- arch/x86/kernel/cpu/resctrl/core.c | 20 ++++++++++++++++++++ include/linux/cacheinfo.h | 21 --------------------- 2 files changed, 20 insertions(+), 21 deletions(-)