Re: [PATCH 02/16] dept: Implement Dept(Dependency Tracker)

kernel test robot
2022-02-17T19:47:41Z

Hi Byungchul,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on tip/sched/core]
[also build test WARNING on hnaz-mm/master linux/master linus/master v5.17-rc4]
[cannot apply to tip/locking/core next-20220217]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Byungchul-Park/DEPT-Dependency-Tracker/20220217-190040
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 3624ba7b5e2acc02b01301ea5fd3534971eb9896
config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20220217/202202172345.rVBMAj8W-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 11.2.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
# https://github.com/0day-ci/linux/commit/4d0434b0b917f4374a09f3b75cbcadf148cfa711
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Byungchul-Park/DEPT-Dependency-Tracker/20220217-190040
git checkout 4d0434b0b917f4374a09f3b75cbcadf148cfa711
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=sh SHELL=/bin/bash kernel/dependency/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> kernel/dependency/dept.c:2105:6: warning: no previous prototype for '__dept_wait' [-Wmissing-prototypes]
2105 | void __dept_wait(struct dept_map *m, unsigned long w_f, unsigned long ip,
| ^~~~~~~~~~~
In file included from include/asm-generic/bug.h:22,
from arch/sh/include/asm/bug.h:112,
from include/linux/bug.h:5,
from include/linux/thread_info.h:13,
from include/asm-generic/current.h:5,
from ./arch/sh/include/generated/asm/current.h:1,
from include/linux/sched.h:12,
from kernel/dependency/dept.c:86:
kernel/dependency/dept_hash.h: In function 'dept_init':
>> include/linux/kern_levels.h:5:25: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'long unsigned int' [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:418:25: note: in definition of macro 'printk_index_wrap'
418 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:519:9: note: in expansion of macro 'printk'
519 | printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:14:25: note: in expansion of macro 'KERN_SOH'
14 | #define KERN_INFO KERN_SOH "6" /* informational */
| ^~~~~~~~
include/linux/printk.h:519:16: note: in expansion of macro 'KERN_INFO'
519 | printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~
kernel/dependency/dept.c:2579:9: note: in expansion of macro 'pr_info'
2579 | pr_info("... hash list head used by %s: %zu KB\n", \
| ^~~~~~~
kernel/dependency/dept_hash.h:9:1: note: in expansion of macro 'HASH'
9 | HASH(dep, 12)
| ^~~~
>> include/linux/kern_levels.h:5:25: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'long unsigned int' [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:418:25: note: in definition of macro 'printk_index_wrap'
418 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:519:9: note: in expansion of macro 'printk'
519 | printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:14:25: note: in expansion of macro 'KERN_SOH'
14 | #define KERN_INFO KERN_SOH "6" /* informational */
| ^~~~~~~~
include/linux/printk.h:519:16: note: in expansion of macro 'KERN_INFO'
519 | printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~
kernel/dependency/dept.c:2579:9: note: in expansion of macro 'pr_info'
2579 | pr_info("... hash list head used by %s: %zu KB\n", \
| ^~~~~~~
kernel/dependency/dept_hash.h:10:1: note: in expansion of macro 'HASH'
10 | HASH(class, 12)
| ^~~~

vim +/__dept_wait +2105 kernel/dependency/dept.c

2104
> 2105 void __dept_wait(struct dept_map *m, unsigned long w_f, unsigned long ip,
2106 const char *w_fn, int ne)
2107 {
2108 int e;
2109
2110 /*
2111 * Be as conservative as possible. In case of mulitple waits for
2112 * a single dept_map, we are going to keep only the last wait's
2113 * wgen for simplicity - keeping all wgens seems overengineering.
2114 *
2115 * Of course, it might cause missing some dependencies that
2116 * would rarely, probabily never, happen but it helps avoid
2117 * false positive report.
2118 */
2119 for_each_set_bit(e, &w_f, DEPT_MAX_SUBCLASSES_EVT) {
2120 struct dept_class *c;
2121 struct dept_key *k;
2122
2123 k = m->keys ?: &m->keys_local;
2124 c = check_new_class(&m->keys_local, k,
2125 map_sub(m, e), m->name);
2126 if (!c)
2127 continue;
2128
2129 add_wait(c, ip, w_fn, ne);
2130 }
2131 }
2132

---
0-DAY CI Kernel Test Service, Intel Corporation