Hi Tom, [FYI, it's a private test report for your RFC patch.] [auto build test ERROR on net/master] [also build test ERROR on ipvs/master net-next/master linus/master v5.8-rc2 next-20200624] [cannot apply to cgroup/for-next] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Tom-Herbert/ptq-Per-Thread-Queues/20200625-012135 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 0275875530f692c725c6f993aced2eca2d6ac50c config: arc-defconfig (attached as .config) compiler: arc-elf-gcc (GCC) 9.3.0 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 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All error/warnings (new ones prefixed by >>): In file included from net/core/ptq.c:12: >> include/net/ptq.h:23:29: error: field 'css' has incomplete type 23 | struct cgroup_subsys_state css; | ^~~ net/core/ptq.c: In function 'reassign_queues_all': >> net/core/ptq.c:298:23: error: storage size of 'it' isn't known 298 | struct css_task_iter it; | ^~ >> net/core/ptq.c:314:2: error: implicit declaration of function 'css_task_iter_start'; did you mean 'sg_miter_start'? [-Werror=implicit-function-declaration] 314 | css_task_iter_start(&pss->css, 0, &it); | ^~~~~~~~~~~~~~~~~~~ | sg_miter_start >> net/core/ptq.c:315:17: error: implicit declaration of function 'css_task_iter_next'; did you mean 'class_dev_iter_next'? [-Werror=implicit-function-declaration] 315 | while ((task = css_task_iter_next(&it))) | ^~~~~~~~~~~~~~~~~~ | class_dev_iter_next >> net/core/ptq.c:317:2: error: implicit declaration of function 'css_task_iter_end' [-Werror=implicit-function-declaration] 317 | css_task_iter_end(&it); | ^~~~~~~~~~~~~~~~~ net/core/ptq.c:298:23: warning: unused variable 'it' [-Wunused-variable] 298 | struct css_task_iter it; | ^~ net/core/ptq.c: In function 'cgrp_css_online': >> net/core/ptq.c:337:46: error: dereferencing pointer to incomplete type 'struct cgroup_subsys_state' 337 | struct cgroup_subsys_state *parent_css = css->parent; | ^~ net/core/ptq.c: At top level: >> net/core/ptq.c:356:64: warning: 'struct cftype' declared inside parameter list will not be visible outside of this definition or declaration 356 | static u64 read_ptqidx(struct cgroup_subsys_state *css, struct cftype *cft) | ^~~~~~ >> net/core/ptq.c:362:34: warning: 'struct cgroup_taskset' declared inside parameter list will not be visible outside of this definition or declaration 362 | static int ptq_can_attach(struct cgroup_taskset *tset) | ^~~~~~~~~~~~~~ net/core/ptq.c: In function 'ptq_can_attach': >> net/core/ptq.c:373:2: error: implicit declaration of function 'cgroup_taskset_for_each'; did you mean 'cgroup_task_frozen'? [-Werror=implicit-function-declaration] 373 | cgroup_taskset_for_each(task, dst_css, tset) { | ^~~~~~~~~~~~~~~~~~~~~~~ | cgroup_task_frozen >> net/core/ptq.c:373:46: error: expected ';' before '{' token 373 | cgroup_taskset_for_each(task, dst_css, tset) { | ^~ | ; net/core/ptq.c:364:40: warning: unused variable 'src_css' [-Wunused-variable] 364 | struct cgroup_subsys_state *dst_css, *src_css; | ^~~~~~~ net/core/ptq.c: At top level: net/core/ptq.c:384:31: warning: 'struct cgroup_taskset' declared inside parameter list will not be visible outside of this definition or declaration 384 | static void ptq_attach(struct cgroup_taskset *tset) | ^~~~~~~~~~~~~~ net/core/ptq.c: In function 'ptq_attach': >> net/core/ptq.c:393:42: error: expected ';' before 'assign_queues' 393 | cgroup_taskset_for_each(task, css, tset) | ^ | ; 394 | assign_queues(css_to_ptq_css(css), task); | ~~~~~~~~~~~~~ net/core/ptq.c: At top level: net/core/ptq.c:400:38: warning: 'struct cgroup_taskset' declared inside parameter list will not be visible outside of this definition or declaration 400 | static void ptq_cancel_attach(struct cgroup_taskset *tset) | ^~~~~~~~~~~~~~ net/core/ptq.c: In function 'ptq_cancel_attach': net/core/ptq.c:411:46: error: expected ';' before '{' token 411 | cgroup_taskset_for_each(task, dst_css, tset) { | ^~ | ; net/core/ptq.c:402:40: warning: unused variable 'src_css' [-Wunused-variable] 402 | struct cgroup_subsys_state *dst_css, *src_css; | ^~~~~~~ net/core/ptq.c: In function 'ptq_fork': >> net/core/ptq.c:424:3: error: implicit declaration of function 'task_css'; did you mean 'task_cpu'? [-Werror=implicit-function-declaration] 424 | task_css(task, net_queues_cgrp_id); | ^~~~~~~~ | task_cpu >> net/core/ptq.c:424:18: error: 'net_queues_cgrp_id' undeclared (first use in this function); did you mean 'net_queue_pair'? 424 | task_css(task, net_queues_cgrp_id); | ^~~~~~~~~~~~~~~~~~ | net_queue_pair net/core/ptq.c:424:18: note: each undeclared identifier is reported only once for each function it appears in net/core/ptq.c: In function 'ptq_exit': net/core/ptq.c:435:18: error: 'net_queues_cgrp_id' undeclared (first use in this function); did you mean 'net_queue_pair'? 435 | task_css(task, net_queues_cgrp_id); | ^~~~~~~~~~~~~~~~~~ | net_queue_pair net/core/ptq.c: In function 'write_tx_queues': >> net/core/ptq.c:557:39: error: implicit declaration of function 'of_css' [-Werror=implicit-function-declaration] 557 | struct ptq_css *pss = css_to_ptq_css(of_css(of)); | ^~~~~~ >> net/core/ptq.c:557:39: warning: passing argument 1 of 'css_to_ptq_css' makes pointer from integer without a cast [-Wint-conversion] 557 | struct ptq_css *pss = css_to_ptq_css(of_css(of)); | ^~~~~~~~~~ | | | int In file included from net/core/ptq.c:12: include/net/ptq.h:34:74: note: expected 'struct cgroup_subsys_state *' but argument is of type 'int' 34 | static inline struct ptq_css *css_to_ptq_css(struct cgroup_subsys_state *css) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ In file included from include/linux/rculist.h:11, from include/linux/netdevice.h:33, from net/core/ptq.c:8: net/core/ptq.c: In function 'read_tx_queues': >> net/core/ptq.c:573:59: error: implicit declaration of function 'seq_css' [-Werror=implicit-function-declaration] 573 | ret = show_queue_desc(sf, rcu_dereference(css_to_ptq_css(seq_css(sf))-> | ^~~~~~~ include/linux/rcupdate.h:352:10: note: in definition of macro '__rcu_dereference_check' 352 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \ | ^ >> include/linux/rcupdate.h:549:28: note: in expansion of macro 'rcu_dereference_check' 549 | #define rcu_dereference(p) rcu_dereference_check(p, 0) | ^~~~~~~~~~~~~~~~~~~~~ >> net/core/ptq.c:573:28: note: in expansion of macro 'rcu_dereference' 573 | ret = show_queue_desc(sf, rcu_dereference(css_to_ptq_css(seq_css(sf))-> | ^~~~~~~~~~~~~~~ net/core/ptq.c:573:59: warning: passing argument 1 of 'css_to_ptq_css' makes pointer from integer without a cast [-Wint-conversion] 573 | ret = show_queue_desc(sf, rcu_dereference(css_to_ptq_css(seq_css(sf))-> | ^~~~~~~~~~~ | | | int include/linux/rcupdate.h:352:10: note: in definition of macro '__rcu_dereference_check' 352 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \ | ^ >> include/linux/rcupdate.h:549:28: note: in expansion of macro 'rcu_dereference_check' 549 | #define rcu_dereference(p) rcu_dereference_check(p, 0) | ^~~~~~~~~~~~~~~~~~~~~ >> net/core/ptq.c:573:28: note: in expansion of macro 'rcu_dereference' 573 | ret = show_queue_desc(sf, rcu_dereference(css_to_ptq_css(seq_css(sf))-> | ^~~~~~~~~~~~~~~ In file included from net/core/ptq.c:12: include/net/ptq.h:34:74: note: expected 'struct cgroup_subsys_state *' but argument is of type 'int' 34 | static inline struct ptq_css *css_to_ptq_css(struct cgroup_subsys_state *css) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ In file included from include/linux/rculist.h:11, from include/linux/netdevice.h:33, from net/core/ptq.c:8: net/core/ptq.c:573:59: warning: passing argument 1 of 'css_to_ptq_css' makes pointer from integer without a cast [-Wint-conversion] 573 | ret = show_queue_desc(sf, rcu_dereference(css_to_ptq_css(seq_css(sf))-> | ^~~~~~~~~~~ | | | int include/linux/rcupdate.h:352:36: note: in definition of macro '__rcu_dereference_check' 352 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \ | ^ include/linux/rcupdate.h:549:28: note: in expansion of macro 'rcu_dereference_check' 549 | #define rcu_dereference(p) rcu_dereference_check(p, 0) | ^~~~~~~~~~~~~~~~~~~~~ net/core/ptq.c:573:28: note: in expansion of macro 'rcu_dereference' 573 | ret = show_queue_desc(sf, rcu_dereference(css_to_ptq_css(seq_css(sf))-> | ^~~~~~~~~~~~~~~ In file included from net/core/ptq.c:12: include/net/ptq.h:34:74: note: expected 'struct cgroup_subsys_state *' but argument is of type 'int' 34 | static inline struct ptq_css *css_to_ptq_css(struct cgroup_subsys_state *css) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ In file included from include/linux/build_bug.h:5, from include/linux/bits.h:23, from include/linux/bitops.h:5, from include/linux/bitmap.h:8, from net/core/ptq.c:6: net/core/ptq.c:573:59: warning: passing argument 1 of 'css_to_ptq_css' makes pointer from integer without a cast [-Wint-conversion] 573 | ret = show_queue_desc(sf, rcu_dereference(css_to_ptq_css(seq_css(sf))-> | ^~~~~~~~~~~ | | | int include/linux/compiler.h:372:9: note: in definition of macro '__compiletime_assert' 372 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler.h:392:2: note: in expansion of macro '_compiletime_assert' 392 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:405:2: note: in expansion of macro 'compiletime_assert' 405 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/linux/compiler.h:405:21: note: in expansion of macro '__native_word' 405 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/linux/compiler.h:291:2: note: in expansion of macro 'compiletime_assert_rwonce_type' 291 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/rcupdate.h:352:48: note: in expansion of macro 'READ_ONCE' 352 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \ | ^~~~~~~~~ include/linux/rcupdate.h:491:2: note: in expansion of macro '__rcu_dereference_check' 491 | __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu) | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rcupdate.h:549:28: note: in expansion of macro 'rcu_dereference_check' 549 | #define rcu_dereference(p) rcu_dereference_check(p, 0) | ^~~~~~~~~~~~~~~~~~~~~ net/core/ptq.c:573:28: note: in expansion of macro 'rcu_dereference' 573 | ret = show_queue_desc(sf, rcu_dereference(css_to_ptq_css(seq_css(sf))-> | ^~~~~~~~~~~~~~~ In file included from net/core/ptq.c:12: include/net/ptq.h:34:74: note: expected 'struct cgroup_subsys_state *' but argument is of type 'int' 34 | static inline struct ptq_css *css_to_ptq_css(struct cgroup_subsys_state *css) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ In file included from include/linux/build_bug.h:5, from include/linux/bits.h:23, from include/linux/bitops.h:5, from include/linux/bitmap.h:8, from net/core/ptq.c:6: net/core/ptq.c:573:59: warning: passing argument 1 of 'css_to_ptq_css' makes pointer from integer without a cast [-Wint-conversion] 573 | ret = show_queue_desc(sf, rcu_dereference(css_to_ptq_css(seq_css(sf))-> | ^~~~~~~~~~~ | | | int include/linux/compiler.h:372:9: note: in definition of macro '__compiletime_assert' 372 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler.h:392:2: note: in expansion of macro '_compiletime_assert' 392 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:405:2: note: in expansion of macro 'compiletime_assert' 405 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/linux/compiler.h:405:21: note: in expansion of macro '__native_word' 405 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/linux/compiler.h:291:2: note: in expansion of macro 'compiletime_assert_rwonce_type' 291 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/rcupdate.h:352:48: note: in expansion of macro 'READ_ONCE' 352 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \ | ^~~~~~~~~ include/linux/rcupdate.h:491:2: note: in expansion of macro '__rcu_dereference_check' 491 | __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu) | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/rcupdate.h:549:28: note: in expansion of macro 'rcu_dereference_check' vim +/css +23 include/net/ptq.h 21 22 struct ptq_css { > 23 struct cgroup_subsys_state css; 24 25 struct ptq_cgroup_queue_desc __rcu *txqs; 26 struct ptq_cgroup_queue_desc __rcu *rxqs; 27 28 unsigned short flags; 29 #define PTQ_F_RX_ASSIGN BIT(0) 30 #define PTQ_F_TX_ASSIGN BIT(1) 31 #define PTQ_F_SYMMETRIC BIT(2) 32 }; 33 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org