tree:
https://github.com/alibaba/cloud-kernel.git linux-next
head: 34e80779976780a7de3a79606ed73f634b1d2efc
commit: 9e7b35d6d84e2361d56a113cf40139fe83f4ba37 [11100/11102] alinux: sched: Introduce
per-cgroup iowait accounting
config: arm-allyesconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 9e7b35d6d84e2361d56a113cf40139fe83f4ba37
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/compiler_types.h:64,
from <command-line>:
kernel/sched/fair.c: In function 'update_nr_iowait_fair':
> kernel/sched/fair.c:10045:36: error: 'struct task_struct'
has no member named 'cpu'
10045 | clock =
__rq_clock_broken(cpu_rq(p->cpu));
| ^~
include/linux/compiler-gcc.h:58:26: note: in definition of macro 'RELOC_HIDE'
58 | (typeof(ptr)) (__ptr + (off)); \
| ^~~
include/linux/percpu-defs.h:238:2: note: in expansion of macro
'SHIFT_PERCPU_PTR'
238 | SHIFT_PERCPU_PTR((ptr), per_cpu_offset((cpu))); \
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:238:26: note: in expansion of macro
'per_cpu_offset'
238 | SHIFT_PERCPU_PTR((ptr), per_cpu_offset((cpu))); \
| ^~~~~~~~~~~~~~
include/linux/percpu-defs.h:271:29: note: in expansion of macro 'per_cpu_ptr'
271 | #define per_cpu(var, cpu) (*per_cpu_ptr(&(var), cpu))
| ^~~~~~~~~~~
kernel/sched/sched.h:968:24: note: in expansion of macro 'per_cpu'
968 | #define cpu_rq(cpu) (&per_cpu(runqueues, (cpu)))
| ^~~~~~~
kernel/sched/fair.c:10045:28: note: in expansion of macro 'cpu_rq'
10045 | clock = __rq_clock_broken(cpu_rq(p->cpu));
| ^~~~~~
vim +10045 kernel/sched/fair.c
10033
10034 #ifdef CONFIG_FAIR_GROUP_SCHED
10035 #ifdef CONFIG_SCHED_SLI
10036 static void update_nr_iowait_fair(struct task_struct *p, long inc)
10037 {
10038 unsigned long flags;
10039 struct sched_entity *se = p->se.parent;
10040 u64 clock;
10041
10042 if (!schedstat_enabled())
10043 return;
10044
10045 clock = __rq_clock_broken(cpu_rq(p->cpu));
10046
10047 for_each_sched_entity(se) {
10048 /*
10049 * Avoid locking rq->lock from try_to_wakeup hot path, in
10050 * the price of poor consistency among cgroup hierarchy,
10051 * which we can tolerate.
10052 * While accessing se->on_rq does need to hold rq->lock. We
10053 * already do, because when inc==1, the caller is __schedule
10054 * and task_move_group_fair
10055 */
10056 spin_lock_irqsave(&se->iowait_lock, flags);
10057 if (!se->on_rq && !schedstat_val(se->cg_nr_iowait) && inc
> 0)
10058 __schedstat_set(se->cg_iowait_start, clock);
10059 if (schedstat_val(se->cg_iowait_start) > 0 &&
10060 schedstat_val(se->cg_nr_iowait) + inc == 0) {
10061 __schedstat_add(se->cg_iowait_sum, clock -
10062 schedstat_val(se->cg_iowait_start));
10063 __schedstat_set(se->cg_iowait_start, 0);
10064 }
10065 __schedstat_add(se->cg_nr_iowait, inc);
10066 spin_unlock_irqrestore(&se->iowait_lock, flags);
10067 }
10068 }
10069 #else
10070 static void update_nr_iowait_fair(struct task_struct *p, long inc) {}
10071 #endif
10072
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org