Message ID | 20241016064021.2773618-3-avadhut.naik@amd.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Steven Rostedt |
Headers | show |
Series | MCE wrapper and support for new SMCA syndrome MSRs | expand |
> From: Avadhut Naik <avadhut.naik@amd.com> > [...] > diff --git a/include/trace/stages/stage3_trace_output.h > b/include/trace/stages/stage3_trace_output.h > index c1fb1355d309..8e3215093e1f 100644 > --- a/include/trace/stages/stage3_trace_output.h > +++ b/include/trace/stages/stage3_trace_output.h > @@ -119,6 +119,14 @@ > trace_print_array_seq(p, array, count, el_size); \ > }) > > +#undef __print_dynamic_array > +#define __print_dynamic_array(array, el_size) \ > + ({ \ > + __print_array(__get_dynamic_array(array), \ > + __get_dynamic_array_len(array) / el_size, \ > + el_size); \ > + }) > + When running the check below: ${LINUX}/scripts/checkpatch.pl --strict <this patch> it complains: CHECK: Macro argument 'el_size' may be better as '(el_size)' to avoid precedence issues #36: FILE: include/trace/stages/stage3_trace_output.h:123: +#define __print_dynamic_array(array, el_size) \ + ({ \ + __print_array(__get_dynamic_array(array), \ + __get_dynamic_array_len(array) / el_size, \ + el_size); \ + }) -Qiuxu > [...]
On Thu, 17 Oct 2024 06:58:30 +0000 "Zhuo, Qiuxu" <qiuxu.zhuo@intel.com> wrote: > When running the check below: > > ${LINUX}/scripts/checkpatch.pl --strict <this patch> > > it complains: > > CHECK: Macro argument 'el_size' may be better as '(el_size)' to avoid precedence issues > #36: FILE: include/trace/stages/stage3_trace_output.h:123: > +#define __print_dynamic_array(array, el_size) \ > + ({ \ > + __print_array(__get_dynamic_array(array), \ > + __get_dynamic_array_len(array) / el_size, \ > + el_size); \ > + }) For once I actually agree with checkpatch in an include/trace file. I can send another version for you. -- Steve
> From: Steven Rostedt <rostedt@goodmis.org> > [...] > For once I actually agree with checkpatch in an include/trace file. > > I can send another version for you. > Thanks, Steven. This way, Avadhut can include it in his next version. -Qiuxu
diff --git a/include/trace/stages/stage3_trace_output.h b/include/trace/stages/stage3_trace_output.h index c1fb1355d309..8e3215093e1f 100644 --- a/include/trace/stages/stage3_trace_output.h +++ b/include/trace/stages/stage3_trace_output.h @@ -119,6 +119,14 @@ trace_print_array_seq(p, array, count, el_size); \ }) +#undef __print_dynamic_array +#define __print_dynamic_array(array, el_size) \ + ({ \ + __print_array(__get_dynamic_array(array), \ + __get_dynamic_array_len(array) / el_size, \ + el_size); \ + }) + #undef __print_hex_dump #define __print_hex_dump(prefix_str, prefix_type, \ rowsize, groupsize, buf, len, ascii) \ diff --git a/include/trace/stages/stage7_class_define.h b/include/trace/stages/stage7_class_define.h index bcb960d16fc0..fcd564a590f4 100644 --- a/include/trace/stages/stage7_class_define.h +++ b/include/trace/stages/stage7_class_define.h @@ -22,6 +22,7 @@ #undef __get_rel_cpumask #undef __get_rel_sockaddr #undef __print_array +#undef __print_dynamic_array #undef __print_hex_dump #undef __get_buf diff --git a/samples/trace_events/trace-events-sample.h b/samples/trace_events/trace-events-sample.h index 55f9a3da92d5..999f78d380ae 100644 --- a/samples/trace_events/trace-events-sample.h +++ b/samples/trace_events/trace-events-sample.h @@ -319,7 +319,7 @@ TRACE_EVENT(foo_bar, __assign_cpumask(cpum, cpumask_bits(mask)); ), - TP_printk("foo %s %d %s %s %s %s %s (%s) (%s) %s", __entry->foo, __entry->bar, + TP_printk("foo %s %d %s %s %s %s %s %s (%s) (%s) %s", __entry->foo, __entry->bar, /* * Notice here the use of some helper functions. This includes: @@ -363,6 +363,11 @@ TRACE_EVENT(foo_bar, __print_array(__get_dynamic_array(list), __get_dynamic_array_len(list) / sizeof(int), sizeof(int)), + +/* A shortcut is to use __print_dynamic_array for dynamic arrays */ + + __print_dynamic_array(list, sizeof(int)), + __get_str(str), __get_str(lstr), __get_bitmask(cpus), __get_cpumask(cpum), __get_str(vstr))