[cgroup:review-iocost-v2 8/10] 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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [Monitors]

  Powered by Linux