Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

afs: Automatically generate trace tag enums

Automatically generate trace tag enums from the symbol -> string mapping
tables rather than having the enums as well, thereby reducing duplicated
data.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: linux-afs@lists.infradead.org
cc: linux-fsdevel@vger.kernel.org

+27 -206
+27 -206
include/trace/events/afs.h
··· 18 18 #ifndef __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY 19 19 #define __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY 20 20 21 - enum afs_call_trace { 22 - afs_call_trace_alloc, 23 - afs_call_trace_free, 24 - afs_call_trace_get, 25 - afs_call_trace_put, 26 - afs_call_trace_wake, 27 - afs_call_trace_work, 28 - }; 29 - 30 - enum afs_server_trace { 31 - afs_server_trace_alloc, 32 - afs_server_trace_callback, 33 - afs_server_trace_destroy, 34 - afs_server_trace_free, 35 - afs_server_trace_gc, 36 - afs_server_trace_get_by_addr, 37 - afs_server_trace_get_by_uuid, 38 - afs_server_trace_get_caps, 39 - afs_server_trace_get_install, 40 - afs_server_trace_get_new_cbi, 41 - afs_server_trace_get_probe, 42 - afs_server_trace_give_up_cb, 43 - afs_server_trace_purging, 44 - afs_server_trace_put_call, 45 - afs_server_trace_put_cbi, 46 - afs_server_trace_put_find_rsq, 47 - afs_server_trace_put_probe, 48 - afs_server_trace_put_slist, 49 - afs_server_trace_put_slist_isort, 50 - afs_server_trace_put_uuid_rsq, 51 - afs_server_trace_update, 52 - }; 53 - 54 - 55 - enum afs_volume_trace { 56 - afs_volume_trace_alloc, 57 - afs_volume_trace_free, 58 - afs_volume_trace_get_alloc_sbi, 59 - afs_volume_trace_get_cell_insert, 60 - afs_volume_trace_get_new_op, 61 - afs_volume_trace_get_query_alias, 62 - afs_volume_trace_put_cell_dup, 63 - afs_volume_trace_put_cell_root, 64 - afs_volume_trace_put_destroy_sbi, 65 - afs_volume_trace_put_free_fc, 66 - afs_volume_trace_put_put_op, 67 - afs_volume_trace_put_query_alias, 68 - afs_volume_trace_put_validate_fc, 69 - afs_volume_trace_remove, 70 - }; 71 - 72 - enum afs_cell_trace { 73 - afs_cell_trace_alloc, 74 - afs_cell_trace_free, 75 - afs_cell_trace_get_queue_dns, 76 - afs_cell_trace_get_queue_manage, 77 - afs_cell_trace_get_queue_new, 78 - afs_cell_trace_get_vol, 79 - afs_cell_trace_insert, 80 - afs_cell_trace_manage, 81 - afs_cell_trace_put_candidate, 82 - afs_cell_trace_put_destroy, 83 - afs_cell_trace_put_queue_fail, 84 - afs_cell_trace_put_queue_work, 85 - afs_cell_trace_put_vol, 86 - afs_cell_trace_see_source, 87 - afs_cell_trace_see_ws, 88 - afs_cell_trace_unuse_alias, 89 - afs_cell_trace_unuse_check_alias, 90 - afs_cell_trace_unuse_delete, 91 - afs_cell_trace_unuse_fc, 92 - afs_cell_trace_unuse_lookup, 93 - afs_cell_trace_unuse_mntpt, 94 - afs_cell_trace_unuse_no_pin, 95 - afs_cell_trace_unuse_parse, 96 - afs_cell_trace_unuse_pin, 97 - afs_cell_trace_unuse_probe, 98 - afs_cell_trace_unuse_sbi, 99 - afs_cell_trace_unuse_ws, 100 - afs_cell_trace_use_alias, 101 - afs_cell_trace_use_check_alias, 102 - afs_cell_trace_use_fc, 103 - afs_cell_trace_use_fc_alias, 104 - afs_cell_trace_use_lookup, 105 - afs_cell_trace_use_mntpt, 106 - afs_cell_trace_use_pin, 107 - afs_cell_trace_use_probe, 108 - afs_cell_trace_use_sbi, 109 - afs_cell_trace_wait, 110 - }; 111 - 112 21 enum afs_fs_operation { 113 22 afs_FS_FetchData = 130, /* AFS Fetch file data */ 114 23 afs_FS_FetchACL = 131, /* AFS Fetch file ACL */ ··· 111 202 yfs_CB_CallBack = 64204, 112 203 }; 113 204 114 - enum afs_edit_dir_op { 115 - afs_edit_dir_create, 116 - afs_edit_dir_create_error, 117 - afs_edit_dir_create_inval, 118 - afs_edit_dir_create_nospc, 119 - afs_edit_dir_delete, 120 - afs_edit_dir_delete_error, 121 - afs_edit_dir_delete_inval, 122 - afs_edit_dir_delete_noent, 123 - }; 124 - 125 - enum afs_edit_dir_reason { 126 - afs_edit_dir_for_create, 127 - afs_edit_dir_for_link, 128 - afs_edit_dir_for_mkdir, 129 - afs_edit_dir_for_rename_0, 130 - afs_edit_dir_for_rename_1, 131 - afs_edit_dir_for_rename_2, 132 - afs_edit_dir_for_rmdir, 133 - afs_edit_dir_for_silly_0, 134 - afs_edit_dir_for_silly_1, 135 - afs_edit_dir_for_symlink, 136 - afs_edit_dir_for_unlink, 137 - }; 138 - 139 - enum afs_eproto_cause { 140 - afs_eproto_bad_status, 141 - afs_eproto_cb_count, 142 - afs_eproto_cb_fid_count, 143 - afs_eproto_cellname_len, 144 - afs_eproto_file_type, 145 - afs_eproto_ibulkst_cb_count, 146 - afs_eproto_ibulkst_count, 147 - afs_eproto_motd_len, 148 - afs_eproto_offline_msg_len, 149 - afs_eproto_volname_len, 150 - afs_eproto_yvl_fsendpt4_len, 151 - afs_eproto_yvl_fsendpt6_len, 152 - afs_eproto_yvl_fsendpt_num, 153 - afs_eproto_yvl_fsendpt_type, 154 - afs_eproto_yvl_vlendpt4_len, 155 - afs_eproto_yvl_vlendpt6_len, 156 - afs_eproto_yvl_vlendpt_type, 157 - }; 158 - 159 - enum afs_io_error { 160 - afs_io_error_cm_reply, 161 - afs_io_error_extract, 162 - afs_io_error_fs_probe_fail, 163 - afs_io_error_vl_lookup_fail, 164 - afs_io_error_vl_probe_fail, 165 - }; 166 - 167 - enum afs_file_error { 168 - afs_file_error_dir_bad_magic, 169 - afs_file_error_dir_big, 170 - afs_file_error_dir_missing_page, 171 - afs_file_error_dir_name_too_long, 172 - afs_file_error_dir_over_end, 173 - afs_file_error_dir_small, 174 - afs_file_error_dir_unmarked_ext, 175 - afs_file_error_mntpt, 176 - afs_file_error_writeback_fail, 177 - }; 178 - 179 - enum afs_flock_event { 180 - afs_flock_acquired, 181 - afs_flock_callback_break, 182 - afs_flock_defer_unlock, 183 - afs_flock_extend_fail, 184 - afs_flock_fail_other, 185 - afs_flock_fail_perm, 186 - afs_flock_no_lockers, 187 - afs_flock_release_fail, 188 - afs_flock_silly_delete, 189 - afs_flock_timestamp, 190 - afs_flock_try_to_lock, 191 - afs_flock_vfs_lock, 192 - afs_flock_vfs_locking, 193 - afs_flock_waited, 194 - afs_flock_waiting, 195 - afs_flock_work_extending, 196 - afs_flock_work_retry, 197 - afs_flock_work_unlocking, 198 - afs_flock_would_block, 199 - }; 200 - 201 - enum afs_flock_operation { 202 - afs_flock_op_copy_lock, 203 - afs_flock_op_flock, 204 - afs_flock_op_grant, 205 - afs_flock_op_lock, 206 - afs_flock_op_release_lock, 207 - afs_flock_op_return_ok, 208 - afs_flock_op_return_eagain, 209 - afs_flock_op_return_edeadlk, 210 - afs_flock_op_return_error, 211 - afs_flock_op_set_lock, 212 - afs_flock_op_unlock, 213 - afs_flock_op_wake, 214 - }; 215 - 216 - enum afs_cb_break_reason { 217 - afs_cb_break_no_break, 218 - afs_cb_break_no_promise, 219 - afs_cb_break_for_callback, 220 - afs_cb_break_for_deleted, 221 - afs_cb_break_for_lapsed, 222 - afs_cb_break_for_s_reinit, 223 - afs_cb_break_for_unlink, 224 - afs_cb_break_for_v_break, 225 - afs_cb_break_for_volume_callback, 226 - afs_cb_break_for_zap, 227 - }; 228 - 229 205 #endif /* end __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY */ 230 206 231 207 /* ··· 185 391 EM(afs_cell_trace_unuse_fc, "UNU fc ") \ 186 392 EM(afs_cell_trace_unuse_lookup, "UNU lookup") \ 187 393 EM(afs_cell_trace_unuse_mntpt, "UNU mntpt ") \ 394 + EM(afs_cell_trace_unuse_no_pin, "UNU no-pin") \ 188 395 EM(afs_cell_trace_unuse_parse, "UNU parse ") \ 189 396 EM(afs_cell_trace_unuse_pin, "UNU pin ") \ 190 397 EM(afs_cell_trace_unuse_probe, "UNU probe ") \ ··· 408 613 EM(afs_cb_break_for_v_break, "break-v") \ 409 614 EM(afs_cb_break_for_volume_callback, "break-v-cb") \ 410 615 E_(afs_cb_break_for_zap, "break-zap") 616 + 617 + /* 618 + * Generate enums for tracing information. 619 + */ 620 + #ifndef __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY 621 + #define __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY 622 + 623 + #undef EM 624 + #undef E_ 625 + #define EM(a, b) a, 626 + #define E_(a, b) a 627 + 628 + enum afs_call_trace { afs_call_traces } __mode(byte); 629 + enum afs_cb_break_reason { afs_cb_break_reasons } __mode(byte); 630 + enum afs_cell_trace { afs_cell_traces } __mode(byte); 631 + enum afs_edit_dir_op { afs_edit_dir_ops } __mode(byte); 632 + enum afs_edit_dir_reason { afs_edit_dir_reasons } __mode(byte); 633 + enum afs_eproto_cause { afs_eproto_causes } __mode(byte); 634 + enum afs_file_error { afs_file_errors } __mode(byte); 635 + enum afs_flock_event { afs_flock_events } __mode(byte); 636 + enum afs_flock_operation { afs_flock_operations } __mode(byte); 637 + enum afs_io_error { afs_io_errors } __mode(byte); 638 + enum afs_server_trace { afs_server_traces } __mode(byte); 639 + enum afs_volume_trace { afs_volume_traces } __mode(byte); 640 + 641 + #endif /* end __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY */ 411 642 412 643 /* 413 644 * Export enum symbols via userspace.