tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/tj/cgroup.git review-iocost-v2 head: fc9d45986b413e641f7aceb70bfc0ba8c07c4109 commit: 269c3e37b53ee3e3856dd4e91aa19678d2230679 [8/10] blkcg: implement blk-iocost config: sh-allmodconfig (attached as .config) compiler: sh4-linux-gcc (GCC) 7.4.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 269c3e37b53ee3e3856dd4e91aa19678d2230679 # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=sh If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): In file included from include/trace/events/iocost.h:8:0, from <command-line>:0: >> include/trace/events/iocost.h:12:57: warning: 'struct ioc_now' declared inside parameter list will not be visible outside of this definition or declaration TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^ include/linux/tracepoint.h:233:34: note: in definition of macro '__DECLARE_TRACE' static inline void trace_##name(proto) \ ^~~~~ include/linux/tracepoint.h:396:24: note: in expansion of macro 'PARAMS' __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ ^~~~~~ include/linux/tracepoint.h:532:2: note: in expansion of macro 'DECLARE_TRACE' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~~~~~~~~ include/linux/tracepoint.h:532:22: note: in expansion of macro 'PARAMS' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~ >> include/trace/events/iocost.h:10:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(iocost_iocg_activate, ^~~~~~~~~~~ >> include/trace/events/iocost.h:12:2: note: in expansion of macro 'TP_PROTO' TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^~~~~~~~ >> include/trace/events/iocost.h:12:18: warning: 'struct ioc_gq' declared inside parameter list will not be visible outside of this definition or declaration TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^ include/linux/tracepoint.h:233:34: note: in definition of macro '__DECLARE_TRACE' static inline void trace_##name(proto) \ ^~~~~ include/linux/tracepoint.h:396:24: note: in expansion of macro 'PARAMS' __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ ^~~~~~ include/linux/tracepoint.h:532:2: note: in expansion of macro 'DECLARE_TRACE' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~~~~~~~~ include/linux/tracepoint.h:532:22: note: in expansion of macro 'PARAMS' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~ >> include/trace/events/iocost.h:10:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(iocost_iocg_activate, ^~~~~~~~~~~ >> include/trace/events/iocost.h:12:2: note: in expansion of macro 'TP_PROTO' TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^~~~~~~~ >> include/trace/events/iocost.h:12:57: warning: 'struct ioc_now' declared inside parameter list will not be visible outside of this definition or declaration TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^ include/linux/tracepoint.h:207:44: note: in definition of macro '__DECLARE_TRACE_RCU' static inline void trace_##name##_rcuidle(proto) \ ^~~~~ include/linux/tracepoint.h:246:28: note: in expansion of macro 'PARAMS' __DECLARE_TRACE_RCU(name, PARAMS(proto), PARAMS(args), \ ^~~~~~ include/linux/tracepoint.h:396:2: note: in expansion of macro '__DECLARE_TRACE' __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ ^~~~~~~~~~~~~~~ include/linux/tracepoint.h:396:24: note: in expansion of macro 'PARAMS' __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ ^~~~~~ include/linux/tracepoint.h:532:2: note: in expansion of macro 'DECLARE_TRACE' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~~~~~~~~ include/linux/tracepoint.h:532:22: note: in expansion of macro 'PARAMS' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~ >> include/trace/events/iocost.h:10:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(iocost_iocg_activate, ^~~~~~~~~~~ >> include/trace/events/iocost.h:12:2: note: in expansion of macro 'TP_PROTO' TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^~~~~~~~ >> include/trace/events/iocost.h:12:18: warning: 'struct ioc_gq' declared inside parameter list will not be visible outside of this definition or declaration TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^ include/linux/tracepoint.h:207:44: note: in definition of macro '__DECLARE_TRACE_RCU' static inline void trace_##name##_rcuidle(proto) \ ^~~~~ include/linux/tracepoint.h:246:28: note: in expansion of macro 'PARAMS' __DECLARE_TRACE_RCU(name, PARAMS(proto), PARAMS(args), \ ^~~~~~ include/linux/tracepoint.h:396:2: note: in expansion of macro '__DECLARE_TRACE' __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ ^~~~~~~~~~~~~~~ include/linux/tracepoint.h:396:24: note: in expansion of macro 'PARAMS' __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ ^~~~~~ include/linux/tracepoint.h:532:2: note: in expansion of macro 'DECLARE_TRACE' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~~~~~~~~ include/linux/tracepoint.h:532:22: note: in expansion of macro 'PARAMS' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~ >> include/trace/events/iocost.h:10:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(iocost_iocg_activate, ^~~~~~~~~~~ >> include/trace/events/iocost.h:12:2: note: in expansion of macro 'TP_PROTO' TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^~~~~~~~ >> include/trace/events/iocost.h:12:57: warning: 'struct ioc_now' declared inside parameter list will not be visible outside of this definition or declaration TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^ include/linux/tracepoint.h:249:38: note: in definition of macro '__DECLARE_TRACE' register_trace_##name(void (*probe)(data_proto), void *data) \ ^~~~~~~~~~ include/linux/tracepoint.h:398:4: note: in expansion of macro 'PARAMS' PARAMS(void *__data, proto), \ ^~~~~~ include/linux/tracepoint.h:532:2: note: in expansion of macro 'DECLARE_TRACE' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~~~~~~~~ include/linux/tracepoint.h:532:22: note: in expansion of macro 'PARAMS' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~ >> include/trace/events/iocost.h:10:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(iocost_iocg_activate, ^~~~~~~~~~~ >> include/trace/events/iocost.h:12:2: note: in expansion of macro 'TP_PROTO' TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^~~~~~~~ >> include/trace/events/iocost.h:12:18: warning: 'struct ioc_gq' declared inside parameter list will not be visible outside of this definition or declaration TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^ include/linux/tracepoint.h:249:38: note: in definition of macro '__DECLARE_TRACE' register_trace_##name(void (*probe)(data_proto), void *data) \ ^~~~~~~~~~ include/linux/tracepoint.h:398:4: note: in expansion of macro 'PARAMS' PARAMS(void *__data, proto), \ ^~~~~~ include/linux/tracepoint.h:532:2: note: in expansion of macro 'DECLARE_TRACE' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~~~~~~~~ include/linux/tracepoint.h:532:22: note: in expansion of macro 'PARAMS' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~ >> include/trace/events/iocost.h:10:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(iocost_iocg_activate, ^~~~~~~~~~~ >> include/trace/events/iocost.h:12:2: note: in expansion of macro 'TP_PROTO' TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^~~~~~~~ >> include/trace/events/iocost.h:12:57: warning: 'struct ioc_now' declared inside parameter list will not be visible outside of this definition or declaration TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, ^ include/linux/tracepoint.h:255:43: note: in definition of macro '__DECLARE_TRACE' register_trace_prio_##name(void (*probe)(data_proto), void *data,\ ^~~~~~~~~~ include/linux/tracepoint.h:398:4: note: in expansion of macro 'PARAMS' PARAMS(void *__data, proto), \ ^~~~~~ include/linux/tracepoint.h:532:2: note: in expansion of macro 'DECLARE_TRACE' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~~~~~~~~ include/linux/tracepoint.h:532:22: note: in expansion of macro 'PARAMS' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^~~~~~ >> include/trace/events/iocost.h:10:1: note: in expansion of macro 'TRACE_EVENT' TRACE_EVENT(iocost_iocg_activate, ^~~~~~~~~~~ vim +12 include/trace/events/iocost.h 7 > 8 #include <linux/tracepoint.h> 9 > 10 TRACE_EVENT(iocost_iocg_activate, 11 > 12 TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, 13 u64 last_period, u64 cur_period, u64 vtime), 14 15 TP_ARGS(iocg, path, now, last_period, cur_period, vtime), 16 17 TP_STRUCT__entry ( 18 __string(devname, ioc_name(iocg->ioc)) 19 __string(cgroup, path) 20 __field(u64, now) 21 __field(u64, vnow) 22 __field(u64, vrate) 23 __field(u64, last_period) 24 __field(u64, cur_period) 25 __field(u64, last_vtime) 26 __field(u64, vtime) 27 __field(u32, weight) 28 __field(u32, inuse) 29 __field(u64, hweight_active) 30 __field(u64, hweight_inuse) 31 ), 32 33 TP_fast_assign( 34 __assign_str(devname, ioc_name(iocg->ioc)); 35 __assign_str(cgroup, path); 36 __entry->now = now->now; 37 __entry->vnow = now->vnow; 38 __entry->vrate = now->vrate; 39 __entry->last_period = last_period; 40 __entry->cur_period = cur_period; 41 __entry->last_vtime = iocg->last_vtime; 42 __entry->vtime = vtime; 43 __entry->weight = iocg->weight; 44 __entry->inuse = iocg->inuse; 45 __entry->hweight_active = iocg->hweight_active; 46 __entry->hweight_inuse = iocg->hweight_inuse; 47 ), 48 49 TP_printk("[%s:%s] now=%llu:%llu vrate=%llu " 50 "period=%llu->%llu vtime=%llu->%llu " 51 "weight=%u/%u hweight=%llu/%llu", 52 __get_str(devname), __get_str(cgroup), 53 __entry->now, __entry->vnow, __entry->vrate, 54 __entry->last_period, __entry->cur_period, 55 __entry->last_vtime, __entry->vtime, 56 __entry->inuse, __entry->weight, 57 __entry->hweight_inuse, __entry->hweight_active 58 ) 59 ); 60 61 DECLARE_EVENT_CLASS(iocg_inuse_update, 62 63 TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, 64 u32 old_inuse, u32 new_inuse, 65 u64 old_hw_inuse, u64 new_hw_inuse), 66 67 TP_ARGS(iocg, path, now, old_inuse, new_inuse, 68 old_hw_inuse, new_hw_inuse), 69 70 TP_STRUCT__entry ( 71 __string(devname, ioc_name(iocg->ioc)) 72 __string(cgroup, path) 73 __field(u64, now) 74 __field(u32, old_inuse) 75 __field(u32, new_inuse) 76 __field(u64, old_hweight_inuse) 77 __field(u64, new_hweight_inuse) 78 ), 79 80 TP_fast_assign( 81 __assign_str(devname, ioc_name(iocg->ioc)); 82 __assign_str(cgroup, path); 83 __entry->now = now->now; 84 __entry->old_inuse = old_inuse; 85 __entry->new_inuse = new_inuse; 86 __entry->old_hweight_inuse = old_hw_inuse; 87 __entry->new_hweight_inuse = new_hw_inuse; 88 ), 89 90 TP_printk("[%s:%s] now=%llu inuse=%u->%u hw_inuse=%llu->%llu", 91 __get_str(devname), __get_str(cgroup), __entry->now, 92 __entry->old_inuse, __entry->new_inuse, 93 __entry->old_hweight_inuse, __entry->new_hweight_inuse 94 ) 95 ); 96 > 97 DEFINE_EVENT(iocg_inuse_update, iocost_inuse_takeback, 98 99 TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, 100 u32 old_inuse, u32 new_inuse, 101 u64 old_hw_inuse, u64 new_hw_inuse), 102 103 TP_ARGS(iocg, path, now, old_inuse, new_inuse, 104 old_hw_inuse, new_hw_inuse) 105 ); 106 107 DEFINE_EVENT(iocg_inuse_update, iocost_inuse_giveaway, 108 109 TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, 110 u32 old_inuse, u32 new_inuse, 111 u64 old_hw_inuse, u64 new_hw_inuse), 112 113 TP_ARGS(iocg, path, now, old_inuse, new_inuse, 114 old_hw_inuse, new_hw_inuse) 115 ); 116 > 117 DEFINE_EVENT(iocg_inuse_update, iocost_inuse_reset, 118 119 TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now, 120 u32 old_inuse, u32 new_inuse, 121 u64 old_hw_inuse, u64 new_hw_inuse), 122 123 TP_ARGS(iocg, path, now, old_inuse, new_inuse, 124 old_hw_inuse, new_hw_inuse) 125 ); 126 127 TRACE_EVENT(iocost_ioc_vrate_adj, 128 > 129 TP_PROTO(struct ioc *ioc, u64 new_vrate, u32 (*missed_ppm)[2], 130 u32 rq_wait_pct, int nr_lagging, int nr_shortages, 131 int nr_surpluses), 132 133 TP_ARGS(ioc, new_vrate, missed_ppm, rq_wait_pct, nr_lagging, nr_shortages, 134 nr_surpluses), 135 136 TP_STRUCT__entry ( 137 __string(devname, ioc_name(ioc)) 138 __field(u64, old_vrate) 139 __field(u64, new_vrate) 140 __field(int, busy_level) 141 __field(u32, read_missed_ppm) 142 __field(u32, write_missed_ppm) 143 __field(u32, rq_wait_pct) 144 __field(int, nr_lagging) 145 __field(int, nr_shortages) 146 __field(int, nr_surpluses) 147 ), 148 149 TP_fast_assign( 150 __assign_str(devname, ioc_name(ioc)); 151 __entry->old_vrate = atomic64_read(&ioc->vtime_rate);; 152 __entry->new_vrate = new_vrate; 153 __entry->busy_level = ioc->busy_level; 154 __entry->read_missed_ppm = (*missed_ppm)[READ]; 155 __entry->write_missed_ppm = (*missed_ppm)[WRITE]; 156 __entry->rq_wait_pct = rq_wait_pct; 157 __entry->nr_lagging = nr_lagging; 158 __entry->nr_shortages = nr_shortages; 159 __entry->nr_surpluses = nr_surpluses; 160 ), 161 162 TP_printk("[%s] vrate=%llu->%llu busy=%d missed_ppm=%u:%u rq_wait_pct=%u lagging=%d shortages=%d surpluses=%d", 163 __get_str(devname), __entry->old_vrate, __entry->new_vrate, 164 __entry->busy_level, 165 __entry->read_missed_ppm, __entry->write_missed_ppm, 166 __entry->rq_wait_pct, __entry->nr_lagging, __entry->nr_shortages, 167 __entry->nr_surpluses 168 ) 169 ); 170 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip