Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM mmap_lock
0004 
0005 #if !defined(_TRACE_MMAP_LOCK_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _TRACE_MMAP_LOCK_H
0007 
0008 #include <linux/tracepoint.h>
0009 #include <linux/types.h>
0010 
0011 struct mm_struct;
0012 
0013 extern int trace_mmap_lock_reg(void);
0014 extern void trace_mmap_lock_unreg(void);
0015 
0016 DECLARE_EVENT_CLASS(mmap_lock,
0017 
0018     TP_PROTO(struct mm_struct *mm, const char *memcg_path, bool write),
0019 
0020     TP_ARGS(mm, memcg_path, write),
0021 
0022     TP_STRUCT__entry(
0023         __field(struct mm_struct *, mm)
0024         __string(memcg_path, memcg_path)
0025         __field(bool, write)
0026     ),
0027 
0028     TP_fast_assign(
0029         __entry->mm = mm;
0030         __assign_str(memcg_path, memcg_path);
0031         __entry->write = write;
0032     ),
0033 
0034     TP_printk(
0035         "mm=%p memcg_path=%s write=%s",
0036         __entry->mm,
0037         __get_str(memcg_path),
0038         __entry->write ? "true" : "false"
0039     )
0040 );
0041 
0042 #define DEFINE_MMAP_LOCK_EVENT(name)                                    \
0043     DEFINE_EVENT_FN(mmap_lock, name,                                \
0044         TP_PROTO(struct mm_struct *mm, const char *memcg_path,  \
0045             bool write),                                    \
0046         TP_ARGS(mm, memcg_path, write),                         \
0047         trace_mmap_lock_reg, trace_mmap_lock_unreg)
0048 
0049 DEFINE_MMAP_LOCK_EVENT(mmap_lock_start_locking);
0050 DEFINE_MMAP_LOCK_EVENT(mmap_lock_released);
0051 
0052 TRACE_EVENT_FN(mmap_lock_acquire_returned,
0053 
0054     TP_PROTO(struct mm_struct *mm, const char *memcg_path, bool write,
0055         bool success),
0056 
0057     TP_ARGS(mm, memcg_path, write, success),
0058 
0059     TP_STRUCT__entry(
0060         __field(struct mm_struct *, mm)
0061         __string(memcg_path, memcg_path)
0062         __field(bool, write)
0063         __field(bool, success)
0064     ),
0065 
0066     TP_fast_assign(
0067         __entry->mm = mm;
0068         __assign_str(memcg_path, memcg_path);
0069         __entry->write = write;
0070         __entry->success = success;
0071     ),
0072 
0073     TP_printk(
0074         "mm=%p memcg_path=%s write=%s success=%s",
0075         __entry->mm,
0076         __get_str(memcg_path),
0077         __entry->write ? "true" : "false",
0078         __entry->success ? "true" : "false"
0079     ),
0080 
0081     trace_mmap_lock_reg, trace_mmap_lock_unreg
0082 );
0083 
0084 #endif /* _TRACE_MMAP_LOCK_H */
0085 
0086 /* This part must be outside protection */
0087 #include <trace/define_trace.h>