lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 11 Oct 2021 10:02:42 +0200 From: Vlastimil Babka <vbabka@...e.cz> To: Gang Li <ligang.bdlg@...edance.com>, rostedt@...dmis.org Cc: mingo@...hat.com, akpm@...ux-foundation.org, axelrasmussen@...gle.com, linux-kernel@...r.kernel.org, linux-mm@...ck.org Subject: Re: [PATCH v2 2/2] mm: mmap_lock: use DECLARE_EVENT_CLASS and DEFINE_EVENT_FN 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@...edance.com> Acked-by: Vlastimil Babka <vbabka@...e.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 */ >
Powered by blists - more mailing lists