diff options
author | Qu Wenruo <quwenruo@cn.fujitsu.com> | 2014-03-05 23:19:50 -0500 |
---|---|---|
committer | Josef Bacik <jbacik@fb.com> | 2014-03-10 15:17:21 -0400 |
commit | 52483bc26f0e95c91e8fd07f9def588bf89664f8 (patch) | |
tree | 49c742d358bafac2c5339715524a9419915cdaa0 /include/trace | |
parent | 6db8914f9763d3f0a7610b497d44f93a4c17e62e (diff) |
btrfs: Add ftrace for btrfs_workqueue
Add ftrace for btrfs_workqueue for further workqueue tunning.
This patch needs to applied after the workqueue replace patchset.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/events/btrfs.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/include/trace/events/btrfs.h b/include/trace/events/btrfs.h index 3176cdc32937..c346919254a9 100644 --- a/include/trace/events/btrfs.h +++ b/include/trace/events/btrfs.h | |||
@@ -21,6 +21,7 @@ struct btrfs_block_group_cache; | |||
21 | struct btrfs_free_cluster; | 21 | struct btrfs_free_cluster; |
22 | struct map_lookup; | 22 | struct map_lookup; |
23 | struct extent_buffer; | 23 | struct extent_buffer; |
24 | struct btrfs_work; | ||
24 | 25 | ||
25 | #define show_ref_type(type) \ | 26 | #define show_ref_type(type) \ |
26 | __print_symbolic(type, \ | 27 | __print_symbolic(type, \ |
@@ -982,6 +983,87 @@ TRACE_EVENT(free_extent_state, | |||
982 | (void *)__entry->ip) | 983 | (void *)__entry->ip) |
983 | ); | 984 | ); |
984 | 985 | ||
986 | DECLARE_EVENT_CLASS(btrfs__work, | ||
987 | |||
988 | TP_PROTO(struct btrfs_work *work), | ||
989 | |||
990 | TP_ARGS(work), | ||
991 | |||
992 | TP_STRUCT__entry( | ||
993 | __field( void *, work ) | ||
994 | __field( void *, wq ) | ||
995 | __field( void *, func ) | ||
996 | __field( void *, ordered_func ) | ||
997 | __field( void *, ordered_free ) | ||
998 | ), | ||
999 | |||
1000 | TP_fast_assign( | ||
1001 | __entry->work = work; | ||
1002 | __entry->wq = work->wq; | ||
1003 | __entry->func = work->func; | ||
1004 | __entry->ordered_func = work->ordered_func; | ||
1005 | __entry->ordered_free = work->ordered_free; | ||
1006 | ), | ||
1007 | |||
1008 | TP_printk("work=%p, wq=%p, func=%p, ordered_func=%p, ordered_free=%p", | ||
1009 | __entry->work, __entry->wq, __entry->func, | ||
1010 | __entry->ordered_func, __entry->ordered_free) | ||
1011 | ); | ||
1012 | |||
1013 | /* For situiations that the work is freed */ | ||
1014 | DECLARE_EVENT_CLASS(btrfs__work__done, | ||
1015 | |||
1016 | TP_PROTO(struct btrfs_work *work), | ||
1017 | |||
1018 | TP_ARGS(work), | ||
1019 | |||
1020 | TP_STRUCT__entry( | ||
1021 | __field( void *, work ) | ||
1022 | ), | ||
1023 | |||
1024 | TP_fast_assign( | ||
1025 | __entry->work = work; | ||
1026 | ), | ||
1027 | |||
1028 | TP_printk("work->%p", __entry->work) | ||
1029 | ); | ||
1030 | |||
1031 | DEFINE_EVENT(btrfs__work, btrfs_work_queued, | ||
1032 | |||
1033 | TP_PROTO(struct btrfs_work *work), | ||
1034 | |||
1035 | TP_ARGS(work) | ||
1036 | ); | ||
1037 | |||
1038 | DEFINE_EVENT(btrfs__work, btrfs_work_sched, | ||
1039 | |||
1040 | TP_PROTO(struct btrfs_work *work), | ||
1041 | |||
1042 | TP_ARGS(work) | ||
1043 | ); | ||
1044 | |||
1045 | DEFINE_EVENT(btrfs__work, btrfs_normal_work_done, | ||
1046 | |||
1047 | TP_PROTO(struct btrfs_work *work), | ||
1048 | |||
1049 | TP_ARGS(work) | ||
1050 | ); | ||
1051 | |||
1052 | DEFINE_EVENT(btrfs__work__done, btrfs_all_work_done, | ||
1053 | |||
1054 | TP_PROTO(struct btrfs_work *work), | ||
1055 | |||
1056 | TP_ARGS(work) | ||
1057 | ); | ||
1058 | |||
1059 | DEFINE_EVENT(btrfs__work, btrfs_ordered_sched, | ||
1060 | |||
1061 | TP_PROTO(struct btrfs_work *work), | ||
1062 | |||
1063 | TP_ARGS(work) | ||
1064 | ); | ||
1065 | |||
1066 | |||
985 | #endif /* _TRACE_BTRFS_H */ | 1067 | #endif /* _TRACE_BTRFS_H */ |
986 | 1068 | ||
987 | /* This part must be outside protection */ | 1069 | /* This part must be outside protection */ |