2024-05-20 16:31:57

by kernel test robot

[permalink] [raw]
Subject: include/asm-generic/percpu.h:31:40: error: implicit declaration of function 'raw_smp_processor_id'

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: eb6a9339efeb6f3d2b5c86fdf2382cdc293eca2c
commit: 24e44cc22aa3112082f2ee23137d048c73ca96d5 mm: percpu: enable per-cpu allocation tagging
date: 4 weeks ago
config: mips-randconfig-r133-20240520 (https://download.01.org/0day-ci/archive/20240521/[email protected]/config)
compiler: mips-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20240521/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

In file included from include/linux/compiler_types.h:151,
from <command-line>:
include/linux/alloc_tag.h: In function '__alloc_tag_ref_set':
>> include/asm-generic/percpu.h:31:40: error: implicit declaration of function 'raw_smp_processor_id' [-Werror=implicit-function-declaration]
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler-gcc.h:35:33: note: in definition of macro 'RELOC_HIDE'
35 | (typeof(ptr)) (__ptr + (off)); \
| ^~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); \
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:72:10: note: in expansion of macro 'raw_cpu_ptr'
72 | *raw_cpu_ptr(&(pcp)) op val; \
| ^~~~~~~~~~~
include/asm-generic/percpu.h:156:9: note: in expansion of macro 'raw_cpu_generic_to_op'
156 | raw_cpu_generic_to_op(pcp, val, op); \
| ^~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:401:41: note: in expansion of macro 'this_cpu_generic_to_op'
401 | #define this_cpu_add_1(pcp, val) this_cpu_generic_to_op(pcp, val, +=)
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:365:25: note: in expansion of macro 'this_cpu_add_1'
365 | case 1: stem##1(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:491:41: note: in expansion of macro '__pcpu_size_call'
491 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:501:41: note: in expansion of macro 'this_cpu_add'
501 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/linux/alloc_tag.h:117:9: note: in expansion of macro 'this_cpu_inc'
117 | this_cpu_inc(tag->counters->calls);
| ^~~~~~~~~~~~
In file included from include/linux/smp.h:119,
from include/linux/percpu.h:8,
from include/linux/context_tracking_state.h:5,
from include/linux/hardirq.h:5,
from include/linux/interrupt.h:11,
from include/drm/drm_util.h:35,
from drivers/gpu/drm/xe/xe_device.h:12,
from drivers/gpu/drm/xe/xe_bb.c:10:
arch/mips/include/asm/smp.h: At top level:
>> arch/mips/include/asm/smp.h:26:19: error: static declaration of 'raw_smp_processor_id' follows non-static declaration
26 | static inline int raw_smp_processor_id(void)
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: previous implicit declaration of 'raw_smp_processor_id' with type 'int()'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler-gcc.h:35:33: note: in definition of macro 'RELOC_HIDE'
35 | (typeof(ptr)) (__ptr + (off)); \
| ^~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); \
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:72:10: note: in expansion of macro 'raw_cpu_ptr'
72 | *raw_cpu_ptr(&(pcp)) op val; \
| ^~~~~~~~~~~
include/asm-generic/percpu.h:156:9: note: in expansion of macro 'raw_cpu_generic_to_op'
156 | raw_cpu_generic_to_op(pcp, val, op); \
| ^~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:401:41: note: in expansion of macro 'this_cpu_generic_to_op'
401 | #define this_cpu_add_1(pcp, val) this_cpu_generic_to_op(pcp, val, +=)
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:365:25: note: in expansion of macro 'this_cpu_add_1'
365 | case 1: stem##1(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:491:41: note: in expansion of macro '__pcpu_size_call'
491 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:501:41: note: in expansion of macro 'this_cpu_add'
501 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/linux/alloc_tag.h:117:9: note: in expansion of macro 'this_cpu_inc'
117 | this_cpu_inc(tag->counters->calls);
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +/raw_smp_processor_id +31 include/asm-generic/percpu.h

acdac87202a408 [email protected] 2008-01-30 23
acdac87202a408 [email protected] 2008-01-30 24 /*
acdac87202a408 [email protected] 2008-01-30 25 * Determine the offset for the currently active processor.
acdac87202a408 [email protected] 2008-01-30 26 * An arch may define __my_cpu_offset to provide a more effective
acdac87202a408 [email protected] 2008-01-30 27 * means of obtaining the offset to the per cpu variables of the
acdac87202a408 [email protected] 2008-01-30 28 * current processor.
acdac87202a408 [email protected] 2008-01-30 29 */
acdac87202a408 [email protected] 2008-01-30 30 #ifndef __my_cpu_offset
acdac87202a408 [email protected] 2008-01-30 @31 #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
1e8352784abaed Hugh Dickins 2008-02-23 32 #endif
1e8352784abaed Hugh Dickins 2008-02-23 33 #ifdef CONFIG_DEBUG_PREEMPT
acdac87202a408 [email protected] 2008-01-30 34 #define my_cpu_offset per_cpu_offset(smp_processor_id())
acdac87202a408 [email protected] 2008-01-30 35 #else
acdac87202a408 [email protected] 2008-01-30 36 #define my_cpu_offset __my_cpu_offset
acdac87202a408 [email protected] 2008-01-30 37 #endif
acdac87202a408 [email protected] 2008-01-30 38

:::::: The code at line 31 was first introduced by commit
:::::: acdac87202a408133ee8f7985076de9d2e0dc5ab percpu: make the asm-generic/percpu.h more "generic"

:::::: TO: [email protected] <[email protected]>
:::::: CC: Ingo Molnar <[email protected]>

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


2024-05-24 15:59:32

by Kent Overstreet

[permalink] [raw]
Subject: Re: include/asm-generic/percpu.h:31:40: error: implicit declaration of function 'raw_smp_processor_id'

On Tue, May 21, 2024 at 12:31:18AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: eb6a9339efeb6f3d2b5c86fdf2382cdc293eca2c
> commit: 24e44cc22aa3112082f2ee23137d048c73ca96d5 mm: percpu: enable per-cpu allocation tagging
> date: 4 weeks ago
> config: mips-randconfig-r133-20240520 (https://download.01.org/0day-ci/archive/20240521/[email protected]/config)
> compiler: mips-linux-gcc (GCC) 13.2.0
> reproduce: (https://download.01.org/0day-ci/archive/20240521/[email protected]/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 <[email protected]>
> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

I have a fix I'm testing for this but it's going to need a lot of
randconfig build testing on all archs.

Philip, could 0day help out with that? I don't know how you schedule
which branches for which testing, and previously the memory allocation
profiling didn't get enough build testing before Andrew merged it.

Running my own build testing now, of course...

https://evilpiepirate.org/git/bcachefs.git fix_missing_include

2024-05-25 08:09:00

by Philip Li

[permalink] [raw]
Subject: Re: include/asm-generic/percpu.h:31:40: error: implicit declaration of function 'raw_smp_processor_id'

On Fri, May 24, 2024 at 11:58:30AM -0400, Kent Overstreet wrote:
> On Tue, May 21, 2024 at 12:31:18AM +0800, kernel test robot wrote:
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head: eb6a9339efeb6f3d2b5c86fdf2382cdc293eca2c
> > commit: 24e44cc22aa3112082f2ee23137d048c73ca96d5 mm: percpu: enable per-cpu allocation tagging
> > date: 4 weeks ago
> > config: mips-randconfig-r133-20240520 (https://download.01.org/0day-ci/archive/20240521/[email protected]/config)
> > compiler: mips-linux-gcc (GCC) 13.2.0
> > reproduce: (https://download.01.org/0day-ci/archive/20240521/[email protected]/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 <[email protected]>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
>
> I have a fix I'm testing for this but it's going to need a lot of
> randconfig build testing on all archs.
>
> Philip, could 0day help out with that? I don't know how you schedule

Got it, we will cover this branch with randconfig build tests.

> which branches for which testing, and previously the memory allocation
> profiling didn't get enough build testing before Andrew merged it.

Sorry about this, we really need extend the test number to generate
more randconfigs.

>
> Running my own build testing now, of course...
>
> https://evilpiepirate.org/git/bcachefs.git fix_missing_include

2024-05-25 08:32:17

by Kent Overstreet

[permalink] [raw]
Subject: Re: include/asm-generic/percpu.h:31:40: error: implicit declaration of function 'raw_smp_processor_id'

On Sat, May 25, 2024 at 04:08:28PM +0800, Philip Li wrote:
> On Fri, May 24, 2024 at 11:58:30AM -0400, Kent Overstreet wrote:
> > On Tue, May 21, 2024 at 12:31:18AM +0800, kernel test robot wrote:
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > head: eb6a9339efeb6f3d2b5c86fdf2382cdc293eca2c
> > > commit: 24e44cc22aa3112082f2ee23137d048c73ca96d5 mm: percpu: enable per-cpu allocation tagging
> > > date: 4 weeks ago
> > > config: mips-randconfig-r133-20240520 (https://download.01.org/0day-ci/archive/20240521/[email protected]/config)
> > > compiler: mips-linux-gcc (GCC) 13.2.0
> > > reproduce: (https://download.01.org/0day-ci/archive/20240521/[email protected]/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 <[email protected]>
> > > | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> >
> > I have a fix I'm testing for this but it's going to need a lot of
> > randconfig build testing on all archs.
> >
> > Philip, could 0day help out with that? I don't know how you schedule
>
> Got it, we will cover this branch with randconfig build tests.
>
> > which branches for which testing, and previously the memory allocation
> > profiling didn't get enough build testing before Andrew merged it.
>
> Sorry about this, we really need extend the test number to generate
> more randconfigs.

It was getting caught by 0day in Andrew's tree, I think it may have just
been a timing thing. This is (one of the reasons) why I'm hoping to get
you a dashboard (and maybe get some test infrastructure consolidation
going, too) - right now I just have no way of knowing how long the
randconfig tests take or when they're finished.