tree:
https://github.com/zen-kernel/zen-kernel 5.7/muqss
head: 83fdcd9083978f28fe1f43bcc3af3a1ee87691e9
commit: cd3b420bc9cd575a1eaf051463cfb1204599e8d9 [1/17] MultiQueue Skiplist Scheduler
v0.202
config: powerpc-randconfig-r036-20200712 (attached as .config)
compiler: clang version 11.0.0 (
https://github.com/llvm/llvm-project
02946de3802d3bc65bc9f2eb9b8d4969b5a7add8)
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 powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
git checkout cd3b420bc9cd575a1eaf051463cfb1204599e8d9
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
> kernel/sched/MuQSS.c:637:6: warning: no previous prototype for
function 'resched_task' [-Wmissing-prototypes]
void resched_task(struct
task_struct *p)
^
kernel/sched/MuQSS.c:637:1: note: declare 'static' if the function is not
intended to be used outside of this translation unit
void resched_task(struct task_struct *p)
^
static
> kernel/sched/MuQSS.c:2932:15: warning: no previous prototype for
function 'nr_active' [-Wmissing-prototypes]
unsigned long
nr_active(void)
^
kernel/sched/MuQSS.c:2932:1: note: declare 'static' if the function is not
intended to be used outside of this translation unit
unsigned long nr_active(void)
^
static
> kernel/sched/MuQSS.c:6000:6: warning: no previous prototype for
function 'resched_cpu' [-Wmissing-prototypes]
void resched_cpu(int cpu)
^
kernel/sched/MuQSS.c:6000:1: note: declare 'static' if the function is not
intended to be used outside of this translation unit
void resched_cpu(int cpu)
^
static
> kernel/sched/MuQSS.c:7464:6: warning: no previous prototype for
function 'init_idle_bootup_task' [-Wmissing-prototypes]
void
init_idle_bootup_task(struct task_struct *idle)
^
kernel/sched/MuQSS.c:7464:1: note: declare 'static' if the function is not
intended to be used outside of this translation unit
void init_idle_bootup_task(struct task_struct *idle)
^
static
> kernel/sched/MuQSS.c:7488:20: warning: no previous prototype for
function 'sched_create_group' [-Wmissing-prototypes]
struct task_group
*sched_create_group(struct task_group *parent)
^
kernel/sched/MuQSS.c:7488:1: note: declare 'static' if the function is not
intended to be used outside of this translation unit
struct task_group *sched_create_group(struct task_group *parent)
^
static
> kernel/sched/MuQSS.c:7499:6: warning: no previous prototype for
function 'sched_online_group' [-Wmissing-prototypes]
void
sched_online_group(struct task_group *tg, struct task_group *parent)
^
kernel/sched/MuQSS.c:7499:1: note: declare 'static' if the function is not
intended to be used outside of this translation unit
void sched_online_group(struct task_group *tg, struct task_group *parent)
^
static
> kernel/sched/MuQSS.c:7510:6: warning: no previous prototype for
function 'sched_destroy_group' [-Wmissing-prototypes]
void
sched_destroy_group(struct task_group *tg)
^
kernel/sched/MuQSS.c:7510:1: note: declare 'static' if the function is not
intended to be used outside of this translation unit
void sched_destroy_group(struct task_group *tg)
^
static
> kernel/sched/MuQSS.c:7516:6: warning: no previous prototype for
function 'sched_offline_group' [-Wmissing-prototypes]
void
sched_offline_group(struct task_group *tg)
^
kernel/sched/MuQSS.c:7516:1: note: declare 'static' if the function is not
intended to be used outside of this translation unit
void sched_offline_group(struct task_group *tg)
^
static
> kernel/sched/MuQSS.c:7607:20: warning: initializer overrides
prior initialization of this subobject [-Winitializer-overrides]
.legacy_cftypes = cpu_legacy_files,
^~~~~~~~~~~~~~~~
kernel/sched/MuQSS.c:7606:20: note: previous initialization is here
.legacy_cftypes = cpu_files,
^~~~~~~~~
kernel/sched/MuQSS.c:427:20: warning: unused function 'lock_all_rqs'
[-Wunused-function]
static inline void lock_all_rqs(void)
^
kernel/sched/MuQSS.c:439:20: warning: unused function 'unlock_all_rqs'
[-Wunused-function]
static inline void unlock_all_rqs(void)
^
kernel/sched/MuQSS.c:452:20: warning: unused function 'trylock_rq'
[-Wunused-function]
static inline bool trylock_rq(struct rq *this_rq, struct rq *rq)
^
kernel/sched/MuQSS.c:462:20: warning: unused function 'unlock_rq'
[-Wunused-function]
static inline void unlock_rq(struct rq *rq)
^
kernel/sched/MuQSS.c:1215:26: warning: unused function 'rq_order'
[-Wunused-function]
static inline struct rq *rq_order(struct rq *rq, int cpu)
^
kernel/sched/MuQSS.c:1220:20: warning: unused function 'smt_schedule'
[-Wunused-function]
static inline bool smt_schedule(struct task_struct *p, struct rq *rq)
^
kernel/sched/MuQSS.c:1908:19: warning: unused function 'select_best_cpu'
[-Wunused-function]
static inline int select_best_cpu(struct task_struct *p)
^
kernel/sched/MuQSS.c:3537:20: warning: unused function 'sched_start_tick'
[-Wunused-function]
static inline void sched_start_tick(struct rq *rq, int cpu) {}
^
kernel/sched/MuQSS.c:3538:20: warning: unused function 'sched_tick_start'
[-Wunused-function]
static inline void sched_tick_start(int cpu) { }
^
kernel/sched/MuQSS.c:3539:20: warning: unused function 'sched_tick_stop'
[-Wunused-function]
static inline void sched_tick_stop(int cpu) { }
^
19 warnings generated.
--
> kernel/sched/membarrier.c:39:17: error: use of undeclared
identifier 'runqueues'
this_cpu_write(runqueues.membarrier_state,
^
> kernel/sched/membarrier.c:39:17: error: use of undeclared
identifier 'runqueues'
>
kernel/sched/membarrier.c:39:17: error: use of undeclared identifier 'runqueues'
> kernel/sched/membarrier.c:39:17: error: use of undeclared
identifier 'runqueues'
>> kernel/sched/membarrier.c:39:2: error:
indirection requires pointer operand ('void' invalid)
this_cpu_write(runqueues.membarrier_state,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:508:34: note: expanded from macro 'this_cpu_write'
#define this_cpu_write(pcp, val) __pcpu_size_call(this_cpu_write_, pcp, val)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:377:11: note: expanded from macro
'__pcpu_size_call'
case 1: stem##1(variable, __VA_ARGS__);break; \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<scratch space>:103:1: note: expanded from here
this_cpu_write_1
^
include/asm-generic/percpu.h:333:36: note: expanded from macro
'this_cpu_write_1'
#define this_cpu_write_1(pcp, val) this_cpu_generic_to_op(pcp, val, =)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:148:2: note: expanded from macro
'this_cpu_generic_to_op'
raw_cpu_generic_to_op(pcp, val, op); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:72:2: note: expanded from macro
'raw_cpu_generic_to_op'
*raw_cpu_ptr(&(pcp)) op val; \
^~~~~~~~~~~~~~~~~~~~
> kernel/sched/membarrier.c:39:17: error: use of undeclared
identifier 'runqueues'
this_cpu_write(runqueues.membarrier_state,
^
> kernel/sched/membarrier.c:39:17: error: use of undeclared
identifier 'runqueues'
>> kernel/sched/membarrier.c:39:2: error:
indirection requires pointer operand ('void' invalid)
this_cpu_write(runqueues.membarrier_state,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:508:34: note: expanded from macro 'this_cpu_write'
#define this_cpu_write(pcp, val) __pcpu_size_call(this_cpu_write_, pcp, val)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:378:11: note: expanded from macro
'__pcpu_size_call'
case 2: stem##2(variable, __VA_ARGS__);break; \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<scratch space>:104:1: note: expanded from here
this_cpu_write_2
^
include/asm-generic/percpu.h:336:36: note: expanded from macro
'this_cpu_write_2'
#define this_cpu_write_2(pcp, val) this_cpu_generic_to_op(pcp, val, =)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:148:2: note: expanded from macro
'this_cpu_generic_to_op'
raw_cpu_generic_to_op(pcp, val, op); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:72:2: note: expanded from macro
'raw_cpu_generic_to_op'
*raw_cpu_ptr(&(pcp)) op val; \
^~~~~~~~~~~~~~~~~~~~
> kernel/sched/membarrier.c:39:17: error: use of undeclared
identifier 'runqueues'
this_cpu_write(runqueues.membarrier_state,
^
> kernel/sched/membarrier.c:39:17: error: use of undeclared
identifier 'runqueues'
>> kernel/sched/membarrier.c:39:2: error:
indirection requires pointer operand ('void' invalid)
this_cpu_write(runqueues.membarrier_state,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:508:34: note: expanded from macro 'this_cpu_write'
#define this_cpu_write(pcp, val) __pcpu_size_call(this_cpu_write_, pcp, val)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:379:11: note: expanded from macro
'__pcpu_size_call'
case 4: stem##4(variable, __VA_ARGS__);break; \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<scratch space>:105:1: note: expanded from here
this_cpu_write_4
^
include/asm-generic/percpu.h:339:36: note: expanded from macro
'this_cpu_write_4'
#define this_cpu_write_4(pcp, val) this_cpu_generic_to_op(pcp, val, =)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:148:2: note: expanded from macro
'this_cpu_generic_to_op'
raw_cpu_generic_to_op(pcp, val, op); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:72:2: note: expanded from macro
'raw_cpu_generic_to_op'
*raw_cpu_ptr(&(pcp)) op val; \
^~~~~~~~~~~~~~~~~~~~
> kernel/sched/membarrier.c:39:17: error: use of undeclared
identifier 'runqueues'
this_cpu_write(runqueues.membarrier_state,
^
> kernel/sched/membarrier.c:39:17: error: use of undeclared
identifier 'runqueues'
>> kernel/sched/membarrier.c:39:2: error:
indirection requires pointer operand ('void' invalid)
this_cpu_write(runqueues.membarrier_state,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:508:34: note: expanded from macro 'this_cpu_write'
#define this_cpu_write(pcp, val) __pcpu_size_call(this_cpu_write_, pcp, val)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: expanded from macro
'__pcpu_size_call'
case 8: stem##8(variable, __VA_ARGS__);break; \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<scratch space>:106:1: note: expanded from here
this_cpu_write_8
^
include/asm-generic/percpu.h:342:36: note: expanded from macro
'this_cpu_write_8'
#define this_cpu_write_8(pcp, val) this_cpu_generic_to_op(pcp, val, =)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:148:2: note: expanded from macro
'this_cpu_generic_to_op'
raw_cpu_generic_to_op(pcp, val, op); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:72:2: note: expanded from macro
'raw_cpu_generic_to_op'
*raw_cpu_ptr(&(pcp)) op val; \
^~~~~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:63:17: error: use of undeclared identifier
'runqueues'
this_cpu_write(runqueues.membarrier_state, 0);
^
kernel/sched/membarrier.c:63:17: error: use of undeclared identifier
'runqueues'
kernel/sched/membarrier.c:63:17: error: use of undeclared identifier
'runqueues'
kernel/sched/membarrier.c:63:17: error: use of undeclared identifier
'runqueues'
kernel/sched/membarrier.c:63:2: error: indirection requires pointer operand
('void' invalid)
this_cpu_write(runqueues.membarrier_state, 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:508:34: note: expanded from macro 'this_cpu_write'
#define this_cpu_write(pcp, val) __pcpu_size_call(this_cpu_write_, pcp, val)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:377:11: note: expanded from macro
'__pcpu_size_call'
case 1: stem##1(variable, __VA_ARGS__);break; \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<scratch space>:107:1: note: expanded from here
this_cpu_write_1
^
include/asm-generic/percpu.h:333:36: note: expanded from macro
'this_cpu_write_1'
#define this_cpu_write_1(pcp, val) this_cpu_generic_to_op(pcp, val, =)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:148:2: note: expanded from macro
'this_cpu_generic_to_op'
raw_cpu_generic_to_op(pcp, val, op); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:72:2: note: expanded from macro
'raw_cpu_generic_to_op'
*raw_cpu_ptr(&(pcp)) op val; \
^~~~~~~~~~~~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
vim +/resched_task +637 kernel/sched/MuQSS.c
629
630 /*
631 * resched_task - mark a task 'to be rescheduled now'.
632 *
633 * On UP this means the setting of the need_resched flag, on SMP it
634 * might also involve a cross-CPU call to trigger the scheduler on
635 * the target CPU.
636 */
637 void resched_task(struct task_struct *p)
638 {
639 int cpu;
640 #ifdef CONFIG_LOCKDEP
641 /* Kernel threads call this when creating workqueues while still
642 * inactive from __kthread_bind_mask, holding only the pi_lock */
643 if (!(p->flags & PF_KTHREAD)) {
644 struct rq *rq = task_rq(p);
645
646 lockdep_assert_held(rq->lock);
647 }
648 #endif
649 if (test_tsk_need_resched(p))
650 return;
651
652 cpu = task_cpu(p);
653 if (cpu == smp_processor_id()) {
654 set_tsk_need_resched(p);
655 set_preempt_need_resched();
656 return;
657 }
658
659 if (set_nr_and_not_polling(p))
660 smp_sched_reschedule(cpu);
661 else
662 trace_sched_wake_idle_without_ipi(cpu);
663 }
664
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org