Message ID | 20211009071243.70286-1-ligang.bdlg@bytedance.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm: mmap_lock: some improvements | expand |
On Sat, 9 Oct 2021 15:12:43 +0800 Gang Li <ligang.bdlg@bytedance.com> wrote: > By using DECLARE_EVENT_CLASS and TRACE_EVENT_FN, we can save a lot > of space from duplicate code. Thanks for doing this. Looking at the events, they can certainly be merged into one. Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> -- Steve > > Signed-off-by: Gang Li <ligang.bdlg@bytedance.com>
On 10/9/21 09:12, Gang Li wrote: > By using DECLARE_EVENT_CLASS and TRACE_EVENT_FN, we can save a lot > of space from duplicate code. > > Signed-off-by: Gang Li <ligang.bdlg@bytedance.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> > @@ -36,11 +36,19 @@ TRACE_EVENT_FN(mmap_lock_start_locking, > __entry->mm, > __get_str(memcg_path), > __entry->write ? "true" : "false" > - ), > - > - trace_mmap_lock_reg, trace_mmap_lock_unreg > + ) > ); > > +#define DEFINE_MMAP_LOCK_EVENT(name) \ > + DEFINE_EVENT_FN(mmap_lock, name, \ > + TP_PROTO(struct mm_struct *mm, const char *memcg_path, \ > + bool write), \ > + TP_ARGS(mm, memcg_path, write), \ > + trace_mmap_lock_reg, trace_mmap_lock_unreg) A question (for Steven). I've several times wondered why DEFINE_EVENT has to pass TP_PROTO/TP_ARGS even if they are often the same. Is it not possible to have a variant that doesn't need that, and thus also doesn't need such extra wrapping as above? > + > +DEFINE_MMAP_LOCK_EVENT(mmap_lock_start_locking); > +DEFINE_MMAP_LOCK_EVENT(mmap_lock_released); > + > TRACE_EVENT_FN(mmap_lock_acquire_returned, > > TP_PROTO(struct mm_struct *mm, const char *memcg_path, bool write, > @@ -73,34 +81,6 @@ TRACE_EVENT_FN(mmap_lock_acquire_returned, > trace_mmap_lock_reg, trace_mmap_lock_unreg > ); > > -TRACE_EVENT_FN(mmap_lock_released, > - > - TP_PROTO(struct mm_struct *mm, const char *memcg_path, bool write), > - > - TP_ARGS(mm, memcg_path, write), > - > - TP_STRUCT__entry( > - __field(struct mm_struct *, mm) > - __string(memcg_path, memcg_path) > - __field(bool, write) > - ), > - > - TP_fast_assign( > - __entry->mm = mm; > - __assign_str(memcg_path, memcg_path); > - __entry->write = write; > - ), > - > - TP_printk( > - "mm=%p memcg_path=%s write=%s", > - __entry->mm, > - __get_str(memcg_path), > - __entry->write ? "true" : "false" > - ), > - > - trace_mmap_lock_reg, trace_mmap_lock_unreg > -); > - > #endif /* _TRACE_MMAP_LOCK_H */ > > /* This part must be outside protection */ >
diff --git a/include/trace/events/mmap_lock.h b/include/trace/events/mmap_lock.h index 5f980c92e3e9..14db8044c1ff 100644 --- a/include/trace/events/mmap_lock.h +++ b/include/trace/events/mmap_lock.h @@ -13,7 +13,7 @@ struct mm_struct; extern int trace_mmap_lock_reg(void); extern void trace_mmap_lock_unreg(void); -TRACE_EVENT_FN(mmap_lock_start_locking, +DECLARE_EVENT_CLASS(mmap_lock, TP_PROTO(struct mm_struct *mm, const char *memcg_path, bool write), @@ -36,11 +36,19 @@ TRACE_EVENT_FN(mmap_lock_start_locking, __entry->mm, __get_str(memcg_path), __entry->write ? "true" : "false" - ), - - trace_mmap_lock_reg, trace_mmap_lock_unreg + ) ); +#define DEFINE_MMAP_LOCK_EVENT(name) \ + DEFINE_EVENT_FN(mmap_lock, name, \ + TP_PROTO(struct mm_struct *mm, const char *memcg_path, \ + bool write), \ + TP_ARGS(mm, memcg_path, write), \ + trace_mmap_lock_reg, trace_mmap_lock_unreg) + +DEFINE_MMAP_LOCK_EVENT(mmap_lock_start_locking); +DEFINE_MMAP_LOCK_EVENT(mmap_lock_released); + TRACE_EVENT_FN(mmap_lock_acquire_returned, TP_PROTO(struct mm_struct *mm, const char *memcg_path, bool write, @@ -73,34 +81,6 @@ TRACE_EVENT_FN(mmap_lock_acquire_returned, trace_mmap_lock_reg, trace_mmap_lock_unreg ); -TRACE_EVENT_FN(mmap_lock_released, - - TP_PROTO(struct mm_struct *mm, const char *memcg_path, bool write), - - TP_ARGS(mm, memcg_path, write), - - TP_STRUCT__entry( - __field(struct mm_struct *, mm) - __string(memcg_path, memcg_path) - __field(bool, write) - ), - - TP_fast_assign( - __entry->mm = mm; - __assign_str(memcg_path, memcg_path); - __entry->write = write; - ), - - TP_printk( - "mm=%p memcg_path=%s write=%s", - __entry->mm, - __get_str(memcg_path), - __entry->write ? "true" : "false" - ), - - trace_mmap_lock_reg, trace_mmap_lock_unreg -); - #endif /* _TRACE_MMAP_LOCK_H */ /* This part must be outside protection */
By using DECLARE_EVENT_CLASS and TRACE_EVENT_FN, we can save a lot of space from duplicate code. Signed-off-by: Gang Li <ligang.bdlg@bytedance.com> --- include/trace/events/mmap_lock.h | 44 +++++++++----------------------- 1 file changed, 12 insertions(+), 32 deletions(-)