afs: Automatically generate trace tag enums
authorDavid Howells <dhowells@redhat.com>
Thu, 23 Feb 2023 15:24:24 +0000 (15:24 +0000)
committerDavid Howells <dhowells@redhat.com>
Sun, 24 Dec 2023 11:36:00 +0000 (11:36 +0000)
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

include/trace/events/afs.h

index cfcd6452c15664f895432987fdf5d78af7061c2b..597677acc6b17680b5a4bbb0a7eb79b43fddcd50 100644 (file)
 #ifndef __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY
 #define __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY
 
-enum afs_call_trace {
-       afs_call_trace_alloc,
-       afs_call_trace_free,
-       afs_call_trace_get,
-       afs_call_trace_put,
-       afs_call_trace_wake,
-       afs_call_trace_work,
-};
-
-enum afs_server_trace {
-       afs_server_trace_alloc,
-       afs_server_trace_callback,
-       afs_server_trace_destroy,
-       afs_server_trace_free,
-       afs_server_trace_gc,
-       afs_server_trace_get_by_addr,
-       afs_server_trace_get_by_uuid,
-       afs_server_trace_get_caps,
-       afs_server_trace_get_install,
-       afs_server_trace_get_new_cbi,
-       afs_server_trace_get_probe,
-       afs_server_trace_give_up_cb,
-       afs_server_trace_purging,
-       afs_server_trace_put_call,
-       afs_server_trace_put_cbi,
-       afs_server_trace_put_find_rsq,
-       afs_server_trace_put_probe,
-       afs_server_trace_put_slist,
-       afs_server_trace_put_slist_isort,
-       afs_server_trace_put_uuid_rsq,
-       afs_server_trace_update,
-};
-
-
-enum afs_volume_trace {
-       afs_volume_trace_alloc,
-       afs_volume_trace_free,
-       afs_volume_trace_get_alloc_sbi,
-       afs_volume_trace_get_cell_insert,
-       afs_volume_trace_get_new_op,
-       afs_volume_trace_get_query_alias,
-       afs_volume_trace_put_cell_dup,
-       afs_volume_trace_put_cell_root,
-       afs_volume_trace_put_destroy_sbi,
-       afs_volume_trace_put_free_fc,
-       afs_volume_trace_put_put_op,
-       afs_volume_trace_put_query_alias,
-       afs_volume_trace_put_validate_fc,
-       afs_volume_trace_remove,
-};
-
-enum afs_cell_trace {
-       afs_cell_trace_alloc,
-       afs_cell_trace_free,
-       afs_cell_trace_get_queue_dns,
-       afs_cell_trace_get_queue_manage,
-       afs_cell_trace_get_queue_new,
-       afs_cell_trace_get_vol,
-       afs_cell_trace_insert,
-       afs_cell_trace_manage,
-       afs_cell_trace_put_candidate,
-       afs_cell_trace_put_destroy,
-       afs_cell_trace_put_queue_fail,
-       afs_cell_trace_put_queue_work,
-       afs_cell_trace_put_vol,
-       afs_cell_trace_see_source,
-       afs_cell_trace_see_ws,
-       afs_cell_trace_unuse_alias,
-       afs_cell_trace_unuse_check_alias,
-       afs_cell_trace_unuse_delete,
-       afs_cell_trace_unuse_fc,
-       afs_cell_trace_unuse_lookup,
-       afs_cell_trace_unuse_mntpt,
-       afs_cell_trace_unuse_no_pin,
-       afs_cell_trace_unuse_parse,
-       afs_cell_trace_unuse_pin,
-       afs_cell_trace_unuse_probe,
-       afs_cell_trace_unuse_sbi,
-       afs_cell_trace_unuse_ws,
-       afs_cell_trace_use_alias,
-       afs_cell_trace_use_check_alias,
-       afs_cell_trace_use_fc,
-       afs_cell_trace_use_fc_alias,
-       afs_cell_trace_use_lookup,
-       afs_cell_trace_use_mntpt,
-       afs_cell_trace_use_pin,
-       afs_cell_trace_use_probe,
-       afs_cell_trace_use_sbi,
-       afs_cell_trace_wait,
-};
-
 enum afs_fs_operation {
        afs_FS_FetchData                = 130,  /* AFS Fetch file data */
        afs_FS_FetchACL                 = 131,  /* AFS Fetch file ACL */
@@ -202,121 +111,6 @@ enum yfs_cm_operation {
        yfs_CB_CallBack                 = 64204,
 };
 
-enum afs_edit_dir_op {
-       afs_edit_dir_create,
-       afs_edit_dir_create_error,
-       afs_edit_dir_create_inval,
-       afs_edit_dir_create_nospc,
-       afs_edit_dir_delete,
-       afs_edit_dir_delete_error,
-       afs_edit_dir_delete_inval,
-       afs_edit_dir_delete_noent,
-};
-
-enum afs_edit_dir_reason {
-       afs_edit_dir_for_create,
-       afs_edit_dir_for_link,
-       afs_edit_dir_for_mkdir,
-       afs_edit_dir_for_rename_0,
-       afs_edit_dir_for_rename_1,
-       afs_edit_dir_for_rename_2,
-       afs_edit_dir_for_rmdir,
-       afs_edit_dir_for_silly_0,
-       afs_edit_dir_for_silly_1,
-       afs_edit_dir_for_symlink,
-       afs_edit_dir_for_unlink,
-};
-
-enum afs_eproto_cause {
-       afs_eproto_bad_status,
-       afs_eproto_cb_count,
-       afs_eproto_cb_fid_count,
-       afs_eproto_cellname_len,
-       afs_eproto_file_type,
-       afs_eproto_ibulkst_cb_count,
-       afs_eproto_ibulkst_count,
-       afs_eproto_motd_len,
-       afs_eproto_offline_msg_len,
-       afs_eproto_volname_len,
-       afs_eproto_yvl_fsendpt4_len,
-       afs_eproto_yvl_fsendpt6_len,
-       afs_eproto_yvl_fsendpt_num,
-       afs_eproto_yvl_fsendpt_type,
-       afs_eproto_yvl_vlendpt4_len,
-       afs_eproto_yvl_vlendpt6_len,
-       afs_eproto_yvl_vlendpt_type,
-};
-
-enum afs_io_error {
-       afs_io_error_cm_reply,
-       afs_io_error_extract,
-       afs_io_error_fs_probe_fail,
-       afs_io_error_vl_lookup_fail,
-       afs_io_error_vl_probe_fail,
-};
-
-enum afs_file_error {
-       afs_file_error_dir_bad_magic,
-       afs_file_error_dir_big,
-       afs_file_error_dir_missing_page,
-       afs_file_error_dir_name_too_long,
-       afs_file_error_dir_over_end,
-       afs_file_error_dir_small,
-       afs_file_error_dir_unmarked_ext,
-       afs_file_error_mntpt,
-       afs_file_error_writeback_fail,
-};
-
-enum afs_flock_event {
-       afs_flock_acquired,
-       afs_flock_callback_break,
-       afs_flock_defer_unlock,
-       afs_flock_extend_fail,
-       afs_flock_fail_other,
-       afs_flock_fail_perm,
-       afs_flock_no_lockers,
-       afs_flock_release_fail,
-       afs_flock_silly_delete,
-       afs_flock_timestamp,
-       afs_flock_try_to_lock,
-       afs_flock_vfs_lock,
-       afs_flock_vfs_locking,
-       afs_flock_waited,
-       afs_flock_waiting,
-       afs_flock_work_extending,
-       afs_flock_work_retry,
-       afs_flock_work_unlocking,
-       afs_flock_would_block,
-};
-
-enum afs_flock_operation {
-       afs_flock_op_copy_lock,
-       afs_flock_op_flock,
-       afs_flock_op_grant,
-       afs_flock_op_lock,
-       afs_flock_op_release_lock,
-       afs_flock_op_return_ok,
-       afs_flock_op_return_eagain,
-       afs_flock_op_return_edeadlk,
-       afs_flock_op_return_error,
-       afs_flock_op_set_lock,
-       afs_flock_op_unlock,
-       afs_flock_op_wake,
-};
-
-enum afs_cb_break_reason {
-       afs_cb_break_no_break,
-       afs_cb_break_no_promise,
-       afs_cb_break_for_callback,
-       afs_cb_break_for_deleted,
-       afs_cb_break_for_lapsed,
-       afs_cb_break_for_s_reinit,
-       afs_cb_break_for_unlink,
-       afs_cb_break_for_v_break,
-       afs_cb_break_for_volume_callback,
-       afs_cb_break_for_zap,
-};
-
 #endif /* end __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY */
 
 /*
@@ -391,6 +185,7 @@ enum afs_cb_break_reason {
        EM(afs_cell_trace_unuse_fc,             "UNU fc    ") \
        EM(afs_cell_trace_unuse_lookup,         "UNU lookup") \
        EM(afs_cell_trace_unuse_mntpt,          "UNU mntpt ") \
+       EM(afs_cell_trace_unuse_no_pin,         "UNU no-pin") \
        EM(afs_cell_trace_unuse_parse,          "UNU parse ") \
        EM(afs_cell_trace_unuse_pin,            "UNU pin   ") \
        EM(afs_cell_trace_unuse_probe,          "UNU probe ") \
@@ -614,6 +409,32 @@ enum afs_cb_break_reason {
        EM(afs_cb_break_for_volume_callback,    "break-v-cb")           \
        E_(afs_cb_break_for_zap,                "break-zap")
 
+/*
+ * Generate enums for tracing information.
+ */
+#ifndef __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY
+#define __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY
+
+#undef EM
+#undef E_
+#define EM(a, b) a,
+#define E_(a, b) a
+
+enum afs_call_trace            { afs_call_traces } __mode(byte);
+enum afs_cb_break_reason       { afs_cb_break_reasons } __mode(byte);
+enum afs_cell_trace            { afs_cell_traces } __mode(byte);
+enum afs_edit_dir_op           { afs_edit_dir_ops } __mode(byte);
+enum afs_edit_dir_reason       { afs_edit_dir_reasons } __mode(byte);
+enum afs_eproto_cause          { afs_eproto_causes } __mode(byte);
+enum afs_file_error            { afs_file_errors } __mode(byte);
+enum afs_flock_event           { afs_flock_events } __mode(byte);
+enum afs_flock_operation       { afs_flock_operations } __mode(byte);
+enum afs_io_error              { afs_io_errors } __mode(byte);
+enum afs_server_trace          { afs_server_traces } __mode(byte);
+enum afs_volume_trace          { afs_volume_traces } __mode(byte);
+
+#endif /* end __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY */
+
 /*
  * Export enum symbols via userspace.
  */