|
18 | 18 |
|
19 | 19 | struct xfile;
|
20 | 20 | struct xfarray;
|
| 21 | +struct xfarray_sortinfo; |
21 | 22 |
|
22 | 23 | /*
|
23 | 24 | * ftrace's __print_symbolic requires that all enum values be wrapped in the
|
@@ -846,6 +847,119 @@ TRACE_EVENT(xfarray_create,
|
846 | 847 | __entry->obj_size_log)
|
847 | 848 | );
|
848 | 849 |
|
| 850 | +TRACE_EVENT(xfarray_isort, |
| 851 | + TP_PROTO(struct xfarray_sortinfo *si, uint64_t lo, uint64_t hi), |
| 852 | + TP_ARGS(si, lo, hi), |
| 853 | + TP_STRUCT__entry( |
| 854 | + __field(unsigned long, ino) |
| 855 | + __field(unsigned long long, lo) |
| 856 | + __field(unsigned long long, hi) |
| 857 | + ), |
| 858 | + TP_fast_assign( |
| 859 | + __entry->ino = file_inode(si->array->xfile->file)->i_ino; |
| 860 | + __entry->lo = lo; |
| 861 | + __entry->hi = hi; |
| 862 | + ), |
| 863 | + TP_printk("xfino 0x%lx lo %llu hi %llu elts %llu", |
| 864 | + __entry->ino, |
| 865 | + __entry->lo, |
| 866 | + __entry->hi, |
| 867 | + __entry->hi - __entry->lo) |
| 868 | +); |
| 869 | + |
| 870 | +TRACE_EVENT(xfarray_qsort, |
| 871 | + TP_PROTO(struct xfarray_sortinfo *si, uint64_t lo, uint64_t hi), |
| 872 | + TP_ARGS(si, lo, hi), |
| 873 | + TP_STRUCT__entry( |
| 874 | + __field(unsigned long, ino) |
| 875 | + __field(unsigned long long, lo) |
| 876 | + __field(unsigned long long, hi) |
| 877 | + __field(int, stack_depth) |
| 878 | + __field(int, max_stack_depth) |
| 879 | + ), |
| 880 | + TP_fast_assign( |
| 881 | + __entry->ino = file_inode(si->array->xfile->file)->i_ino; |
| 882 | + __entry->lo = lo; |
| 883 | + __entry->hi = hi; |
| 884 | + __entry->stack_depth = si->stack_depth; |
| 885 | + __entry->max_stack_depth = si->max_stack_depth; |
| 886 | + ), |
| 887 | + TP_printk("xfino 0x%lx lo %llu hi %llu elts %llu stack %d/%d", |
| 888 | + __entry->ino, |
| 889 | + __entry->lo, |
| 890 | + __entry->hi, |
| 891 | + __entry->hi - __entry->lo, |
| 892 | + __entry->stack_depth, |
| 893 | + __entry->max_stack_depth) |
| 894 | +); |
| 895 | + |
| 896 | +TRACE_EVENT(xfarray_sort, |
| 897 | + TP_PROTO(struct xfarray_sortinfo *si, size_t bytes), |
| 898 | + TP_ARGS(si, bytes), |
| 899 | + TP_STRUCT__entry( |
| 900 | + __field(unsigned long, ino) |
| 901 | + __field(unsigned long long, nr) |
| 902 | + __field(size_t, obj_size) |
| 903 | + __field(size_t, bytes) |
| 904 | + __field(unsigned int, max_stack_depth) |
| 905 | + ), |
| 906 | + TP_fast_assign( |
| 907 | + __entry->nr = si->array->nr; |
| 908 | + __entry->obj_size = si->array->obj_size; |
| 909 | + __entry->ino = file_inode(si->array->xfile->file)->i_ino; |
| 910 | + __entry->bytes = bytes; |
| 911 | + __entry->max_stack_depth = si->max_stack_depth; |
| 912 | + ), |
| 913 | + TP_printk("xfino 0x%lx nr %llu objsz %zu stack %u bytes %zu", |
| 914 | + __entry->ino, |
| 915 | + __entry->nr, |
| 916 | + __entry->obj_size, |
| 917 | + __entry->max_stack_depth, |
| 918 | + __entry->bytes) |
| 919 | +); |
| 920 | + |
| 921 | +TRACE_EVENT(xfarray_sort_stats, |
| 922 | + TP_PROTO(struct xfarray_sortinfo *si, int error), |
| 923 | + TP_ARGS(si, error), |
| 924 | + TP_STRUCT__entry( |
| 925 | + __field(unsigned long, ino) |
| 926 | +#ifdef DEBUG |
| 927 | + __field(unsigned long long, loads) |
| 928 | + __field(unsigned long long, stores) |
| 929 | + __field(unsigned long long, compares) |
| 930 | +#endif |
| 931 | + __field(unsigned int, max_stack_depth) |
| 932 | + __field(unsigned int, max_stack_used) |
| 933 | + __field(int, error) |
| 934 | + ), |
| 935 | + TP_fast_assign( |
| 936 | + __entry->ino = file_inode(si->array->xfile->file)->i_ino; |
| 937 | +#ifdef DEBUG |
| 938 | + __entry->loads = si->loads; |
| 939 | + __entry->stores = si->stores; |
| 940 | + __entry->compares = si->compares; |
| 941 | +#endif |
| 942 | + __entry->max_stack_depth = si->max_stack_depth; |
| 943 | + __entry->max_stack_used = si->max_stack_used; |
| 944 | + __entry->error = error; |
| 945 | + ), |
| 946 | + TP_printk( |
| 947 | +#ifdef DEBUG |
| 948 | + "xfino 0x%lx loads %llu stores %llu compares %llu stack_depth %u/%u error %d", |
| 949 | +#else |
| 950 | + "xfino 0x%lx stack_depth %u/%u error %d", |
| 951 | +#endif |
| 952 | + __entry->ino, |
| 953 | +#ifdef DEBUG |
| 954 | + __entry->loads, |
| 955 | + __entry->stores, |
| 956 | + __entry->compares, |
| 957 | +#endif |
| 958 | + __entry->max_stack_used, |
| 959 | + __entry->max_stack_depth, |
| 960 | + __entry->error) |
| 961 | +); |
| 962 | + |
849 | 963 | /* repair tracepoints */
|
850 | 964 | #if IS_ENABLED(CONFIG_XFS_ONLINE_REPAIR)
|
851 | 965 |
|
|
0 commit comments