Messages in this thread | | | Date | Thu, 5 Mar 2020 02:08:52 +0800 | From | kbuild test robot <> | Subject | [rcu:dev.2020.02.29a 43/43] kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2020.02.29a head: 61f7110d6b78f4c84ea5d5480185740840889af7 commit: 61f7110d6b78f4c84ea5d5480185740840889af7 [43/43] rcu-tasks: Add an RCU-tasks rude variant config: riscv-randconfig-a001-20200304 (attached as .config) compiler: riscv32-linux-gcc (GCC) 7.5.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 61f7110d6b78f4c84ea5d5480185740840889af7 # save the attached .config to linux build tree GCC_VERSION=7.5.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/kernel.h:11:0, from kernel/rcu/update.c:21: kernel/rcu/tasks.h: In function 'check_holdout_task': kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:213:7: error: 'struct task_struct' has no member named 'rcu_tasks_nvcsw' t->rcu_tasks_nvcsw != READ_ONCE(t->nvcsw) || ^ include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ kernel/rcu/tasks.h:216:28: error: 'struct task_struct' has no member named 'rcu_tasks_idle_cpu' !is_idle_task(t) && t->rcu_tasks_idle_cpu >= 0)) { ^ include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:213:7: error: 'struct task_struct' has no member named 'rcu_tasks_nvcsw' t->rcu_tasks_nvcsw != READ_ONCE(t->nvcsw) || ^ include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ kernel/rcu/tasks.h:216:28: error: 'struct task_struct' has no member named 'rcu_tasks_idle_cpu' !is_idle_task(t) && t->rcu_tasks_idle_cpu >= 0)) { ^ include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value' (cond) ? \ ^~~~ include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~~~~~~~~~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value' (cond) ? \ ^~~~ include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~~~~~~~~~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value' (cond) ? \ ^~~~ include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~~~~~~~~~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value' (cond) ? \ ^~~~ include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~~~~~~~~~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:212:18: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' if (!READ_ONCE(t->rcu_tasks_holdout) || ^ include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value' (cond) ? \ ^~~~ include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~~~~~~~~~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ include/linux/compiler.h:293:22: note: in expansion of macro '__READ_ONCE' #define READ_ONCE(x) __READ_ONCE(x, 1) ^~~~~~~~~~~ kernel/rcu/tasks.h:212:7: note: in expansion of macro 'READ_ONCE' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~~~~~~~~ kernel/rcu/tasks.h:213:7: error: 'struct task_struct' has no member named 'rcu_tasks_nvcsw' t->rcu_tasks_nvcsw != READ_ONCE(t->nvcsw) || ^ include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value' (cond) ? \ ^~~~ include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~~~~~~~~~~~ >> kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ kernel/rcu/tasks.h:216:28: error: 'struct task_struct' has no member named 'rcu_tasks_idle_cpu' !is_idle_task(t) && t->rcu_tasks_idle_cpu >= 0)) { ^ include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value' (cond) ? \ ^~~~ include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~~~~~~~~~~~ kernel/rcu/tasks.h:212:2: note: in expansion of macro 'if' if (!READ_ONCE(t->rcu_tasks_holdout) || ^~ In file included from include/linux/kernel.h:11:0, from kernel/rcu/update.c:21: kernel/rcu/tasks.h:217:15: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' WRITE_ONCE(t->rcu_tasks_holdout, false); ^ include/linux/compiler.h:310:17: note: in definition of macro 'WRITE_ONCE' union { typeof(x) __val; char __c[1]; } __u = \ ^ kernel/rcu/tasks.h:217:15: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' WRITE_ONCE(t->rcu_tasks_holdout, false); ^ include/linux/compiler.h:311:30: note: in definition of macro 'WRITE_ONCE' { .__val = (__force typeof(x)) (val) }; \ ^ kernel/rcu/tasks.h:217:15: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' WRITE_ONCE(t->rcu_tasks_holdout, false); ^ include/linux/compiler.h:312:22: note: in definition of macro 'WRITE_ONCE' __write_once_size(&(x), __u.__c, sizeof(x)); \ ^ kernel/rcu/tasks.h:217:15: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' WRITE_ONCE(t->rcu_tasks_holdout, false); ^ include/linux/compiler.h:312:42: note: in definition of macro 'WRITE_ONCE' __write_once_size(&(x), __u.__c, sizeof(x)); \ ^ In file included from kernel/rcu/update.c:562:0: kernel/rcu/tasks.h:218:19: error: 'struct task_struct' has no member named 'rcu_tasks_holdout_list' list_del_init(&t->rcu_tasks_holdout_list); ^~ In file included from include/linux/kernel.h:15:0, from kernel/rcu/update.c:21: kernel/rcu/tasks.h:233:5: error: 'struct task_struct' has no member named 'rcu_tasks_nvcsw' t->rcu_tasks_nvcsw, t->nvcsw, t->rcu_tasks_holdout, ^ include/linux/printk.h:300:35: note: in definition of macro 'pr_alert' printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~ kernel/rcu/tasks.h:233:35: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' t->rcu_tasks_nvcsw, t->nvcsw, t->rcu_tasks_holdout, ^ include/linux/printk.h:300:35: note: in definition of macro 'pr_alert' printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~ kernel/rcu/tasks.h:234:5: error: 'struct task_struct' has no member named 'rcu_tasks_idle_cpu' t->rcu_tasks_idle_cpu, cpu); ^ include/linux/printk.h:300:35: note: in definition of macro 'pr_alert' printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~ In file included from kernel/rcu/update.c:562:0: kernel/rcu/tasks.h: At top level: kernel/rcu/tasks.h:239:38: warning: 'struct rcu_tasks' declared inside parameter list will not be visible outside of this definition or declaration static void rcu_tasks_wait_gp(struct rcu_tasks *rtp) ^~~~~~~~~ kernel/rcu/tasks.h: In function 'rcu_tasks_wait_gp': kernel/rcu/tasks.h:271:5: error: 'struct task_struct' has no member named 'rcu_tasks_nvcsw' t->rcu_tasks_nvcsw = READ_ONCE(t->nvcsw); ^~ In file included from include/linux/kernel.h:11:0, from kernel/rcu/update.c:21: kernel/rcu/tasks.h:272:16: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' WRITE_ONCE(t->rcu_tasks_holdout, true); ^ include/linux/compiler.h:310:17: note: in definition of macro 'WRITE_ONCE' union { typeof(x) __val; char __c[1]; } __u = \ ^ kernel/rcu/tasks.h:272:16: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' WRITE_ONCE(t->rcu_tasks_holdout, true); ^ include/linux/compiler.h:311:30: note: in definition of macro 'WRITE_ONCE' { .__val = (__force typeof(x)) (val) }; \ ^ kernel/rcu/tasks.h:272:16: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' WRITE_ONCE(t->rcu_tasks_holdout, true); ^ include/linux/compiler.h:312:22: note: in definition of macro 'WRITE_ONCE' __write_once_size(&(x), __u.__c, sizeof(x)); \ ^ kernel/rcu/tasks.h:272:16: error: 'struct task_struct' has no member named 'rcu_tasks_holdout' WRITE_ONCE(t->rcu_tasks_holdout, true); ^ include/linux/compiler.h:312:42: note: in definition of macro 'WRITE_ONCE' __write_once_size(&(x), __u.__c, sizeof(x)); \ ^ In file included from kernel/rcu/update.c:562:0:
vim +/if +212 kernel/rcu/tasks.h
6b80543d90000c Paul E. McKenney 2020-03-02 205 6b80543d90000c Paul E. McKenney 2020-03-02 206 /* See if tasks are still holding out, complain if so. */ 6b80543d90000c Paul E. McKenney 2020-03-02 207 static void check_holdout_task(struct task_struct *t, 6b80543d90000c Paul E. McKenney 2020-03-02 208 bool needreport, bool *firstreport) 6b80543d90000c Paul E. McKenney 2020-03-02 209 { 6b80543d90000c Paul E. McKenney 2020-03-02 210 int cpu; 6b80543d90000c Paul E. McKenney 2020-03-02 211 6b80543d90000c Paul E. McKenney 2020-03-02 @212 if (!READ_ONCE(t->rcu_tasks_holdout) || 6b80543d90000c Paul E. McKenney 2020-03-02 213 t->rcu_tasks_nvcsw != READ_ONCE(t->nvcsw) || 6b80543d90000c Paul E. McKenney 2020-03-02 214 !READ_ONCE(t->on_rq) || 6b80543d90000c Paul E. McKenney 2020-03-02 215 (IS_ENABLED(CONFIG_NO_HZ_FULL) && 6b80543d90000c Paul E. McKenney 2020-03-02 216 !is_idle_task(t) && t->rcu_tasks_idle_cpu >= 0)) { 6b80543d90000c Paul E. McKenney 2020-03-02 217 WRITE_ONCE(t->rcu_tasks_holdout, false); 6b80543d90000c Paul E. McKenney 2020-03-02 218 list_del_init(&t->rcu_tasks_holdout_list); 6b80543d90000c Paul E. McKenney 2020-03-02 219 put_task_struct(t); 6b80543d90000c Paul E. McKenney 2020-03-02 220 return; 6b80543d90000c Paul E. McKenney 2020-03-02 221 } 6b80543d90000c Paul E. McKenney 2020-03-02 222 rcu_request_urgent_qs_task(t); 6b80543d90000c Paul E. McKenney 2020-03-02 223 if (!needreport) 6b80543d90000c Paul E. McKenney 2020-03-02 224 return; 6b80543d90000c Paul E. McKenney 2020-03-02 225 if (*firstreport) { 6b80543d90000c Paul E. McKenney 2020-03-02 226 pr_err("INFO: rcu_tasks detected stalls on tasks:\n"); 6b80543d90000c Paul E. McKenney 2020-03-02 227 *firstreport = false; 6b80543d90000c Paul E. McKenney 2020-03-02 228 } 6b80543d90000c Paul E. McKenney 2020-03-02 229 cpu = task_cpu(t); 6b80543d90000c Paul E. McKenney 2020-03-02 230 pr_alert("%p: %c%c nvcsw: %lu/%lu holdout: %d idle_cpu: %d/%d\n", 6b80543d90000c Paul E. McKenney 2020-03-02 231 t, ".I"[is_idle_task(t)], 6b80543d90000c Paul E. McKenney 2020-03-02 232 "N."[cpu < 0 || !tick_nohz_full_cpu(cpu)], 6b80543d90000c Paul E. McKenney 2020-03-02 233 t->rcu_tasks_nvcsw, t->nvcsw, t->rcu_tasks_holdout, 6b80543d90000c Paul E. McKenney 2020-03-02 234 t->rcu_tasks_idle_cpu, cpu); 6b80543d90000c Paul E. McKenney 2020-03-02 235 sched_show_task(t); 6b80543d90000c Paul E. McKenney 2020-03-02 236 } 6b80543d90000c Paul E. McKenney 2020-03-02 237
:::::: The code at line 212 was first introduced by commit :::::: 6b80543d90000c684123b05f075ac1433d99fa85 tasks-rcu: Move Tasks RCU to its own file
:::::: TO: Paul E. McKenney <paulmck@kernel.org> :::::: CC: Paul E. McKenney <paulmck@kernel.org>
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] | |