162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * fs/hmdfs/hmdfs_trace.h 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (c) 2020-2021 Huawei Device Co., Ltd. 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#undef TRACE_SYSTEM 962306a36Sopenharmony_ci#define TRACE_SYSTEM hmdfs 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#if !defined(__HMDFS_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ) 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#define __HMDFS_TRACE_H__ 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#include <linux/tracepoint.h> 1662306a36Sopenharmony_ci#include "comm/protocol.h" 1762306a36Sopenharmony_ci#include "hmdfs_dentryfile.h" 1862306a36Sopenharmony_ci#include "hmdfs_client.h" 1962306a36Sopenharmony_ci#include "hmdfs_device_view.h" 2062306a36Sopenharmony_ci#include "hmdfs_merge_view.h" 2162306a36Sopenharmony_ci#include "client_writeback.h" 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciTRACE_EVENT(hmdfs_permission, 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci TP_PROTO(unsigned long ino), 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci TP_ARGS(ino), 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci TP_STRUCT__entry(__field(unsigned long, ino)), 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci TP_fast_assign(__entry->ino = ino;), 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci TP_printk("permission check for ino %lu failed", __entry->ino)); 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci/* communication */ 3662306a36Sopenharmony_ciTRACE_EVENT(hmdfs_recv_mesg_callback, 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci TP_PROTO(struct hmdfs_head_cmd *cmd), 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci TP_ARGS(cmd), 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci TP_STRUCT__entry( 4362306a36Sopenharmony_ci __field(__u32, msg_id) 4462306a36Sopenharmony_ci __field(__u32, magic) 4562306a36Sopenharmony_ci __field(__u16, command) 4662306a36Sopenharmony_ci __field(__u16, cmd_flag) 4762306a36Sopenharmony_ci __field(__u32, data_len) 4862306a36Sopenharmony_ci __field(__u32, ret_code) 4962306a36Sopenharmony_ci ), 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci TP_fast_assign( 5262306a36Sopenharmony_ci __entry->msg_id = le32_to_cpu(cmd->msg_id); 5362306a36Sopenharmony_ci __entry->magic = cmd->magic; 5462306a36Sopenharmony_ci __entry->command = cmd->operations.command; 5562306a36Sopenharmony_ci __entry->cmd_flag = cmd->operations.cmd_flag; 5662306a36Sopenharmony_ci __entry->data_len = cmd->data_len; 5762306a36Sopenharmony_ci __entry->ret_code = cmd->ret_code; 5862306a36Sopenharmony_ci ), 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci TP_printk("msg_id:%u magic:%u command:%hu, cmd_flag:%hu, data_len:%u, ret_code:%u", 6162306a36Sopenharmony_ci __entry->msg_id, __entry->magic, __entry->command, 6262306a36Sopenharmony_ci __entry->cmd_flag, __entry->data_len, __entry->ret_code) 6362306a36Sopenharmony_ci); 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ciTRACE_EVENT(hmdfs_tcp_send_message, 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci TP_PROTO(struct hmdfs_head_cmd *cmd), 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci TP_ARGS(cmd), 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci TP_STRUCT__entry( 7262306a36Sopenharmony_ci __field(__u32, msg_id) 7362306a36Sopenharmony_ci __field(__u32, magic) 7462306a36Sopenharmony_ci __field(__u16, command) 7562306a36Sopenharmony_ci __field(__u16, cmd_flag) 7662306a36Sopenharmony_ci __field(__u32, data_len) 7762306a36Sopenharmony_ci __field(__u32, ret_code) 7862306a36Sopenharmony_ci ), 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci TP_fast_assign( 8162306a36Sopenharmony_ci __entry->msg_id = le32_to_cpu(cmd->msg_id); 8262306a36Sopenharmony_ci __entry->magic = cmd->magic; 8362306a36Sopenharmony_ci __entry->command = cmd->operations.command; 8462306a36Sopenharmony_ci __entry->cmd_flag = cmd->operations.cmd_flag; 8562306a36Sopenharmony_ci __entry->data_len = cmd->data_len; 8662306a36Sopenharmony_ci __entry->ret_code = cmd->ret_code; 8762306a36Sopenharmony_ci ), 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci TP_printk("msg_id:%u magic:%u command:%hu, cmd_flag:%hu, data_len:%u, ret_code:%u", 9062306a36Sopenharmony_ci __entry->msg_id, __entry->magic, __entry->command, 9162306a36Sopenharmony_ci __entry->cmd_flag, __entry->data_len, __entry->ret_code) 9262306a36Sopenharmony_ci); 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci/* file system interface */ 9562306a36Sopenharmony_ciDECLARE_EVENT_CLASS(hmdfs_iterate_op_end, 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci TP_PROTO(struct dentry *__d, loff_t start_pos, loff_t end_pos, int err), 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci TP_ARGS(__d, start_pos, end_pos, err), 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci TP_STRUCT__entry( 10262306a36Sopenharmony_ci __string(name_str, __d->d_name.name) 10362306a36Sopenharmony_ci __field(loff_t, start) 10462306a36Sopenharmony_ci __field(loff_t, end) 10562306a36Sopenharmony_ci __field(int, err) 10662306a36Sopenharmony_ci ), 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci TP_fast_assign( 10962306a36Sopenharmony_ci __assign_str(name_str, __d->d_name.name); 11062306a36Sopenharmony_ci __entry->start = start_pos; 11162306a36Sopenharmony_ci __entry->end = end_pos; 11262306a36Sopenharmony_ci __entry->err = err; 11362306a36Sopenharmony_ci ), 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci TP_printk("dentry[%s] start_pos:%llx, end_pos:%llx, err:%d", 11662306a36Sopenharmony_ci __get_str(name_str), __entry->start, 11762306a36Sopenharmony_ci __entry->end, __entry->err) 11862306a36Sopenharmony_ci); 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci#define define_hmdfs_iterate_op_end_event(event_name) \ 12162306a36Sopenharmony_ci DEFINE_EVENT(hmdfs_iterate_op_end, event_name, \ 12262306a36Sopenharmony_ci TP_PROTO(struct dentry *__d, loff_t start_pos, \ 12362306a36Sopenharmony_ci loff_t end_pos, int err), \ 12462306a36Sopenharmony_ci TP_ARGS(__d, start_pos, end_pos, err)) 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_cidefine_hmdfs_iterate_op_end_event(hmdfs_iterate_local); 12762306a36Sopenharmony_cidefine_hmdfs_iterate_op_end_event(hmdfs_iterate_remote); 12862306a36Sopenharmony_cidefine_hmdfs_iterate_op_end_event(hmdfs_iterate_merge); 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ciTRACE_EVENT(hmdfs_lookup, 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci TP_PROTO(struct inode *dir, struct dentry *dentry, unsigned int flags), 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci TP_ARGS(dir, dentry, flags), 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci TP_STRUCT__entry( 13862306a36Sopenharmony_ci __field(ino_t, ino) 13962306a36Sopenharmony_ci __string(name_str, dentry->d_name.name) 14062306a36Sopenharmony_ci __field(unsigned int, flags) 14162306a36Sopenharmony_ci ), 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci TP_fast_assign( 14462306a36Sopenharmony_ci __entry->ino = dir->i_ino; 14562306a36Sopenharmony_ci __assign_str(name_str, dentry->d_name.name); 14662306a36Sopenharmony_ci __entry->flags = flags; 14762306a36Sopenharmony_ci ), 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci TP_printk("parent_ino = %lu, name:%s, flags:%u", 15062306a36Sopenharmony_ci __entry->ino, __get_str(name_str), __entry->flags) 15162306a36Sopenharmony_ci); 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ciDECLARE_EVENT_CLASS(hmdfs_lookup_op_end, 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci TP_PROTO(struct inode *dir, struct dentry *dentry, int err), 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_ci TP_ARGS(dir, dentry, err), 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci TP_STRUCT__entry( 16062306a36Sopenharmony_ci __field(ino_t, ino) 16162306a36Sopenharmony_ci __string(name_str, dentry->d_name.name) 16262306a36Sopenharmony_ci __field(int, err) 16362306a36Sopenharmony_ci ), 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci TP_fast_assign( 16662306a36Sopenharmony_ci __entry->ino = dir->i_ino; 16762306a36Sopenharmony_ci __assign_str(name_str, dentry->d_name.name); 16862306a36Sopenharmony_ci __entry->err = err; 16962306a36Sopenharmony_ci ), 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci TP_printk("parent_ino = %lu, name:%s, err:%d", 17262306a36Sopenharmony_ci __entry->ino, __get_str(name_str), __entry->err) 17362306a36Sopenharmony_ci); 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci#define define_hmdfs_lookup_op_end_event(event_name) \ 17662306a36Sopenharmony_ci DEFINE_EVENT(hmdfs_lookup_op_end, event_name, \ 17762306a36Sopenharmony_ci TP_PROTO(struct inode *dir, struct dentry *dentry, \ 17862306a36Sopenharmony_ci int err), \ 17962306a36Sopenharmony_ci TP_ARGS(dir, dentry, err)) 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ci 18262306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_root_lookup); 18362306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_root_lookup_end); 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_device_lookup); 18662306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_device_lookup_end); 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_lookup_local); 18962306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_lookup_local_end); 19062306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_mkdir_local); 19162306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_rmdir_local); 19262306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_create_local); 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_lookup_remote); 19562306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_lookup_remote_end); 19662306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_mkdir_remote); 19762306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_rmdir_remote); 19862306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_create_remote); 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_lookup_merge); 20162306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_lookup_merge_end); 20262306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_mkdir_merge); 20362306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_rmdir_merge); 20462306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_create_merge); 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_get_link_local); 20762306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_lookup_share); 20862306a36Sopenharmony_cidefine_hmdfs_lookup_op_end_event(hmdfs_lookup_share_end); 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ciTRACE_EVENT(hmdfs_show_comrade, 21162306a36Sopenharmony_ci 21262306a36Sopenharmony_ci TP_PROTO(struct dentry *d, struct dentry *lo_d, uint64_t devid), 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci TP_ARGS(d, lo_d, devid), 21562306a36Sopenharmony_ci 21662306a36Sopenharmony_ci TP_STRUCT__entry( 21762306a36Sopenharmony_ci __string(name, d->d_name.name) 21862306a36Sopenharmony_ci __string(lo_name, lo_d->d_name.name) 21962306a36Sopenharmony_ci __field(uint64_t, devid) 22062306a36Sopenharmony_ci ), 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ci TP_fast_assign( 22362306a36Sopenharmony_ci __assign_str(name, d->d_name.name) 22462306a36Sopenharmony_ci __assign_str(lo_name, lo_d->d_name.name) 22562306a36Sopenharmony_ci __entry->devid = devid; 22662306a36Sopenharmony_ci ), 22762306a36Sopenharmony_ci 22862306a36Sopenharmony_ci TP_printk("parent_name:%s -> lo_d_name:%s, lo_d_devid:%llu", 22962306a36Sopenharmony_ci __get_str(name), __get_str(lo_name), __entry->devid) 23062306a36Sopenharmony_ci); 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ciDECLARE_EVENT_CLASS(hmdfs_rename_op_end, 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ci TP_PROTO(struct inode *olddir, struct dentry *olddentry, 23562306a36Sopenharmony_ci struct inode *newdir, struct dentry *newdentry, 23662306a36Sopenharmony_ci unsigned int flags), 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci TP_ARGS(olddir, olddentry, newdir, newdentry, flags), 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ci TP_STRUCT__entry( 24162306a36Sopenharmony_ci __field(ino_t, oldino) 24262306a36Sopenharmony_ci __string(oldname_str, olddentry->d_name.name) 24362306a36Sopenharmony_ci __field(ino_t, newino) 24462306a36Sopenharmony_ci __string(newname_str, newdentry->d_name.name) 24562306a36Sopenharmony_ci __field(unsigned int, flags) 24662306a36Sopenharmony_ci ), 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ci TP_fast_assign( 24962306a36Sopenharmony_ci __entry->oldino = olddir->i_ino; 25062306a36Sopenharmony_ci __assign_str(oldname_str, olddentry->d_name.name); 25162306a36Sopenharmony_ci __entry->newino = newdir->i_ino; 25262306a36Sopenharmony_ci __assign_str(newname_str, newdentry->d_name.name); 25362306a36Sopenharmony_ci __entry->flags = flags; 25462306a36Sopenharmony_ci ), 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ci TP_printk("old_pino = %lu, oldname:%s; new_pino = %lu, newname:%s, flags:%u", 25762306a36Sopenharmony_ci __entry->oldino, __get_str(oldname_str), 25862306a36Sopenharmony_ci __entry->newino, __get_str(newname_str), __entry->flags) 25962306a36Sopenharmony_ci); 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ci#define define_hmdfs_rename_op_end_event(event_name) \ 26262306a36Sopenharmony_ci DEFINE_EVENT(hmdfs_rename_op_end, event_name, \ 26362306a36Sopenharmony_ci TP_PROTO(struct inode *olddir, struct dentry *olddentry, \ 26462306a36Sopenharmony_ci struct inode *newdir, struct dentry *newdentry, \ 26562306a36Sopenharmony_ci unsigned int flags), \ 26662306a36Sopenharmony_ci TP_ARGS(olddir, olddentry, newdir, newdentry, flags)) 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_cidefine_hmdfs_rename_op_end_event(hmdfs_rename_local); 26962306a36Sopenharmony_cidefine_hmdfs_rename_op_end_event(hmdfs_rename_remote); 27062306a36Sopenharmony_cidefine_hmdfs_rename_op_end_event(hmdfs_rename_merge); 27162306a36Sopenharmony_ci 27262306a36Sopenharmony_ciTRACE_EVENT(hmdfs_statfs, 27362306a36Sopenharmony_ci 27462306a36Sopenharmony_ci TP_PROTO(struct dentry *d, uint8_t type), 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ci TP_ARGS(d, type), 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci TP_STRUCT__entry( 27962306a36Sopenharmony_ci __string(name, d->d_name.name) 28062306a36Sopenharmony_ci __field(uint8_t, type) 28162306a36Sopenharmony_ci ), 28262306a36Sopenharmony_ci 28362306a36Sopenharmony_ci TP_fast_assign( 28462306a36Sopenharmony_ci __assign_str(name, d->d_name.name) 28562306a36Sopenharmony_ci __entry->type = type; 28662306a36Sopenharmony_ci ), 28762306a36Sopenharmony_ci 28862306a36Sopenharmony_ci TP_printk("dentry_name:%s, lo_d_devid:%u", 28962306a36Sopenharmony_ci __get_str(name), __entry->type) 29062306a36Sopenharmony_ci); 29162306a36Sopenharmony_ci 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ciTRACE_EVENT(hmdfs_balance_dirty_pages_ratelimited, 29562306a36Sopenharmony_ci 29662306a36Sopenharmony_ci TP_PROTO(struct hmdfs_sb_info *sbi, 29762306a36Sopenharmony_ci struct hmdfs_writeback *hwb, 29862306a36Sopenharmony_ci int bdp_ratelimits), 29962306a36Sopenharmony_ci 30062306a36Sopenharmony_ci TP_ARGS(sbi, hwb, bdp_ratelimits), 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ci TP_STRUCT__entry( 30362306a36Sopenharmony_ci __array(char, dst, 128) 30462306a36Sopenharmony_ci __field(int, nr_dirtied) 30562306a36Sopenharmony_ci __field(int, nr_dirtied_pause) 30662306a36Sopenharmony_ci __field(int, dirty_exceeded) 30762306a36Sopenharmony_ci __field(long long, bdp_ratelimits) 30862306a36Sopenharmony_ci __field(long, ratelimit_pages) 30962306a36Sopenharmony_ci ), 31062306a36Sopenharmony_ci 31162306a36Sopenharmony_ci TP_fast_assign( 31262306a36Sopenharmony_ci strlcpy(__entry->dst, sbi->local_dst, 128); 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ci __entry->nr_dirtied = current->nr_dirtied; 31562306a36Sopenharmony_ci __entry->nr_dirtied_pause = current->nr_dirtied_pause; 31662306a36Sopenharmony_ci __entry->dirty_exceeded = hwb->dirty_exceeded; 31762306a36Sopenharmony_ci __entry->bdp_ratelimits = bdp_ratelimits; 31862306a36Sopenharmony_ci __entry->ratelimit_pages = hwb->ratelimit_pages; 31962306a36Sopenharmony_ci ), 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ci TP_printk("hmdfs dst:%s nr_dirtied=%d nr_dirtied_pause=%d dirty_exceeded=%d bdp_ratelimits=%lld ratelimit_pages=%ld", 32262306a36Sopenharmony_ci __entry->dst, __entry->nr_dirtied, __entry->nr_dirtied_pause, 32362306a36Sopenharmony_ci __entry->dirty_exceeded, __entry->bdp_ratelimits, 32462306a36Sopenharmony_ci __entry->ratelimit_pages) 32562306a36Sopenharmony_ci); 32662306a36Sopenharmony_ci 32762306a36Sopenharmony_ciTRACE_EVENT(hmdfs_balance_dirty_pages, 32862306a36Sopenharmony_ci 32962306a36Sopenharmony_ci TP_PROTO(struct hmdfs_sb_info *sbi, 33062306a36Sopenharmony_ci struct bdi_writeback *wb, 33162306a36Sopenharmony_ci struct hmdfs_dirty_throttle_control *hdtc, 33262306a36Sopenharmony_ci unsigned long pause, 33362306a36Sopenharmony_ci unsigned long start_time), 33462306a36Sopenharmony_ci 33562306a36Sopenharmony_ci TP_ARGS(sbi, wb, hdtc, pause, start_time), 33662306a36Sopenharmony_ci 33762306a36Sopenharmony_ci TP_STRUCT__entry( 33862306a36Sopenharmony_ci __array(char, dst, 128) 33962306a36Sopenharmony_ci __field(unsigned long, write_bw) 34062306a36Sopenharmony_ci __field(unsigned long, avg_write_bw) 34162306a36Sopenharmony_ci __field(unsigned long, file_bg_thresh) 34262306a36Sopenharmony_ci __field(unsigned long, fs_bg_thresh) 34362306a36Sopenharmony_ci __field(unsigned long, file_thresh) 34462306a36Sopenharmony_ci __field(unsigned long, fs_thresh) 34562306a36Sopenharmony_ci __field(unsigned long, file_nr_dirty) 34662306a36Sopenharmony_ci __field(unsigned long, fs_nr_dirty) 34762306a36Sopenharmony_ci __field(unsigned long, file_nr_rec) 34862306a36Sopenharmony_ci __field(unsigned long, fs_nr_rec) 34962306a36Sopenharmony_ci __field(unsigned long, pause) 35062306a36Sopenharmony_ci __field(unsigned long, paused) 35162306a36Sopenharmony_ci ), 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ci TP_fast_assign( 35462306a36Sopenharmony_ci strlcpy(__entry->dst, sbi->local_dst, 128); 35562306a36Sopenharmony_ci 35662306a36Sopenharmony_ci __entry->write_bw = wb->write_bandwidth; 35762306a36Sopenharmony_ci __entry->avg_write_bw = wb->avg_write_bandwidth; 35862306a36Sopenharmony_ci __entry->file_bg_thresh = hdtc->file_bg_thresh; 35962306a36Sopenharmony_ci __entry->fs_bg_thresh = hdtc->fs_bg_thresh; 36062306a36Sopenharmony_ci __entry->file_thresh = hdtc->file_thresh; 36162306a36Sopenharmony_ci __entry->fs_thresh = hdtc->fs_thresh; 36262306a36Sopenharmony_ci __entry->file_nr_dirty = hdtc->file_nr_dirty; 36362306a36Sopenharmony_ci __entry->fs_nr_dirty = hdtc->fs_nr_dirty; 36462306a36Sopenharmony_ci __entry->file_nr_rec = hdtc->file_nr_reclaimable; 36562306a36Sopenharmony_ci __entry->fs_nr_rec = hdtc->fs_nr_reclaimable; 36662306a36Sopenharmony_ci __entry->pause = pause * 1000 / HZ; 36762306a36Sopenharmony_ci __entry->paused = (jiffies - start_time) * 36862306a36Sopenharmony_ci 1000 / HZ; 36962306a36Sopenharmony_ci ), 37062306a36Sopenharmony_ci 37162306a36Sopenharmony_ci TP_printk("hmdfs dst:%s write_bw=%lu, awrite_bw=%lu, bg_thresh=%lu,%lu thresh=%lu,%lu dirty=%lu,%lu reclaimable=%lu,%lu pause=%lu paused=%lu", 37262306a36Sopenharmony_ci __entry->dst, __entry->write_bw, __entry->avg_write_bw, 37362306a36Sopenharmony_ci __entry->file_bg_thresh, __entry->fs_bg_thresh, 37462306a36Sopenharmony_ci __entry->file_thresh, __entry->fs_thresh, 37562306a36Sopenharmony_ci __entry->file_nr_dirty, __entry->fs_nr_dirty, 37662306a36Sopenharmony_ci __entry->file_nr_rec, __entry->fs_nr_rec, 37762306a36Sopenharmony_ci __entry->pause, __entry->paused 37862306a36Sopenharmony_ci ) 37962306a36Sopenharmony_ci); 38062306a36Sopenharmony_ci 38162306a36Sopenharmony_ciTRACE_EVENT(hmdfs_start_srv_wb, 38262306a36Sopenharmony_ci 38362306a36Sopenharmony_ci TP_PROTO(struct hmdfs_sb_info *sbi, int dirty_pages, 38462306a36Sopenharmony_ci unsigned int dirty_thresh_pg), 38562306a36Sopenharmony_ci 38662306a36Sopenharmony_ci TP_ARGS(sbi, dirty_pages, dirty_thresh_pg), 38762306a36Sopenharmony_ci 38862306a36Sopenharmony_ci TP_STRUCT__entry( 38962306a36Sopenharmony_ci __array(char, src, 128) 39062306a36Sopenharmony_ci __field(int, dirty_pages) 39162306a36Sopenharmony_ci __field(unsigned int, dirty_thresh_pg) 39262306a36Sopenharmony_ci ), 39362306a36Sopenharmony_ci 39462306a36Sopenharmony_ci TP_fast_assign( 39562306a36Sopenharmony_ci strlcpy(__entry->src, sbi->local_src, 128); 39662306a36Sopenharmony_ci __entry->dirty_pages = dirty_pages; 39762306a36Sopenharmony_ci __entry->dirty_thresh_pg = dirty_thresh_pg; 39862306a36Sopenharmony_ci ), 39962306a36Sopenharmony_ci 40062306a36Sopenharmony_ci TP_printk("hmdfs src: %s, start writeback dirty pages. writeback %d pages dirty_thresh is %d pages", 40162306a36Sopenharmony_ci __entry->src, __entry->dirty_pages, __entry->dirty_thresh_pg) 40262306a36Sopenharmony_ci); 40362306a36Sopenharmony_ci 40462306a36Sopenharmony_ciTRACE_EVENT(hmdfs_fsync_enter_remote, 40562306a36Sopenharmony_ci 40662306a36Sopenharmony_ci TP_PROTO(struct hmdfs_sb_info *sbi, unsigned long long device_id, 40762306a36Sopenharmony_ci unsigned long long remote_ino, int datasync), 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_ci TP_ARGS(sbi, device_id, remote_ino, datasync), 41062306a36Sopenharmony_ci 41162306a36Sopenharmony_ci TP_STRUCT__entry( 41262306a36Sopenharmony_ci __array(char, src, 128) 41362306a36Sopenharmony_ci __field(uint64_t, device_id) 41462306a36Sopenharmony_ci __field(uint64_t, remote_ino) 41562306a36Sopenharmony_ci __field(int, datasync) 41662306a36Sopenharmony_ci ), 41762306a36Sopenharmony_ci 41862306a36Sopenharmony_ci TP_fast_assign( 41962306a36Sopenharmony_ci strlcpy(__entry->src, sbi->local_src, 128); 42062306a36Sopenharmony_ci __entry->device_id = device_id; 42162306a36Sopenharmony_ci __entry->remote_ino = remote_ino; 42262306a36Sopenharmony_ci __entry->datasync = datasync; 42362306a36Sopenharmony_ci ), 42462306a36Sopenharmony_ci 42562306a36Sopenharmony_ci TP_printk("hmdfs: src %s, start remote fsync file(remote dev_id=%llu,ino=%llu), datasync=%d", 42662306a36Sopenharmony_ci __entry->src, __entry->device_id, 42762306a36Sopenharmony_ci __entry->remote_ino, __entry->datasync) 42862306a36Sopenharmony_ci); 42962306a36Sopenharmony_ci 43062306a36Sopenharmony_ciTRACE_EVENT(hmdfs_fsync_exit_remote, 43162306a36Sopenharmony_ci 43262306a36Sopenharmony_ci TP_PROTO(struct hmdfs_sb_info *sbi, unsigned long long device_id, 43362306a36Sopenharmony_ci unsigned long long remote_ino, unsigned int timeout, int err), 43462306a36Sopenharmony_ci 43562306a36Sopenharmony_ci TP_ARGS(sbi, device_id, remote_ino, timeout, err), 43662306a36Sopenharmony_ci 43762306a36Sopenharmony_ci TP_STRUCT__entry( 43862306a36Sopenharmony_ci __array(char, src, 128) 43962306a36Sopenharmony_ci __field(uint64_t, device_id) 44062306a36Sopenharmony_ci __field(uint64_t, remote_ino) 44162306a36Sopenharmony_ci __field(uint32_t, timeout) 44262306a36Sopenharmony_ci __field(int, err) 44362306a36Sopenharmony_ci ), 44462306a36Sopenharmony_ci 44562306a36Sopenharmony_ci TP_fast_assign( 44662306a36Sopenharmony_ci strlcpy(__entry->src, sbi->local_src, 128); 44762306a36Sopenharmony_ci __entry->device_id = device_id; 44862306a36Sopenharmony_ci __entry->remote_ino = remote_ino; 44962306a36Sopenharmony_ci __entry->timeout = timeout; 45062306a36Sopenharmony_ci __entry->err = err; 45162306a36Sopenharmony_ci ), 45262306a36Sopenharmony_ci 45362306a36Sopenharmony_ci TP_printk("hmdfs: src %s, finish remote fsync file(remote dev_id=%llu,ino=%llu), timeout=%u, err=%d", 45462306a36Sopenharmony_ci __entry->src, __entry->device_id, __entry->remote_ino, 45562306a36Sopenharmony_ci __entry->timeout, __entry->err) 45662306a36Sopenharmony_ci); 45762306a36Sopenharmony_ci 45862306a36Sopenharmony_ciTRACE_EVENT(hmdfs_syncfs_enter, 45962306a36Sopenharmony_ci 46062306a36Sopenharmony_ci TP_PROTO(struct hmdfs_sb_info *sbi), 46162306a36Sopenharmony_ci 46262306a36Sopenharmony_ci TP_ARGS(sbi), 46362306a36Sopenharmony_ci 46462306a36Sopenharmony_ci TP_STRUCT__entry( 46562306a36Sopenharmony_ci __array(char, src, 128) 46662306a36Sopenharmony_ci ), 46762306a36Sopenharmony_ci 46862306a36Sopenharmony_ci TP_fast_assign( 46962306a36Sopenharmony_ci strlcpy(__entry->src, sbi->local_src, 128); 47062306a36Sopenharmony_ci ), 47162306a36Sopenharmony_ci 47262306a36Sopenharmony_ci TP_printk("hmdfs: src %s, start syncfs", __entry->src) 47362306a36Sopenharmony_ci); 47462306a36Sopenharmony_ci 47562306a36Sopenharmony_ciTRACE_EVENT(hmdfs_syncfs_exit, 47662306a36Sopenharmony_ci 47762306a36Sopenharmony_ci TP_PROTO(struct hmdfs_sb_info *sbi, int remain_count, 47862306a36Sopenharmony_ci unsigned int timeout, int err), 47962306a36Sopenharmony_ci 48062306a36Sopenharmony_ci TP_ARGS(sbi, remain_count, timeout, err), 48162306a36Sopenharmony_ci 48262306a36Sopenharmony_ci TP_STRUCT__entry( 48362306a36Sopenharmony_ci __array(char, src, 128) 48462306a36Sopenharmony_ci __field(int, remain_count) 48562306a36Sopenharmony_ci __field(uint32_t, timeout) 48662306a36Sopenharmony_ci __field(int, err) 48762306a36Sopenharmony_ci ), 48862306a36Sopenharmony_ci 48962306a36Sopenharmony_ci TP_fast_assign( 49062306a36Sopenharmony_ci strlcpy(__entry->src, sbi->local_src, 128); 49162306a36Sopenharmony_ci __entry->remain_count = remain_count; 49262306a36Sopenharmony_ci __entry->timeout = timeout; 49362306a36Sopenharmony_ci __entry->err = err; 49462306a36Sopenharmony_ci ), 49562306a36Sopenharmony_ci 49662306a36Sopenharmony_ci TP_printk("hmdfs: src %s, finish syncfs(timeout=%u), remain %d remote devices to response, err=%d", 49762306a36Sopenharmony_ci __entry->src, __entry->timeout, 49862306a36Sopenharmony_ci __entry->remain_count, __entry->err) 49962306a36Sopenharmony_ci); 50062306a36Sopenharmony_ci 50162306a36Sopenharmony_ciTRACE_EVENT(hmdfs_server_release, 50262306a36Sopenharmony_ci 50362306a36Sopenharmony_ci TP_PROTO(struct hmdfs_peer *con, uint32_t file_id, 50462306a36Sopenharmony_ci uint64_t file_ver, int err), 50562306a36Sopenharmony_ci 50662306a36Sopenharmony_ci TP_ARGS(con, file_id, file_ver, err), 50762306a36Sopenharmony_ci 50862306a36Sopenharmony_ci TP_STRUCT__entry( 50962306a36Sopenharmony_ci __array(char, src, 128) 51062306a36Sopenharmony_ci __field(uint32_t, file_id) 51162306a36Sopenharmony_ci __field(uint64_t, file_ver) 51262306a36Sopenharmony_ci __field(uint64_t, device_id) 51362306a36Sopenharmony_ci __field(int, err) 51462306a36Sopenharmony_ci ), 51562306a36Sopenharmony_ci 51662306a36Sopenharmony_ci TP_fast_assign( 51762306a36Sopenharmony_ci strlcpy(__entry->src, con->sbi->local_src, 128); 51862306a36Sopenharmony_ci __entry->file_id = file_id; 51962306a36Sopenharmony_ci __entry->file_ver = file_ver; 52062306a36Sopenharmony_ci __entry->device_id = con->device_id; 52162306a36Sopenharmony_ci __entry->err = err; 52262306a36Sopenharmony_ci ), 52362306a36Sopenharmony_ci 52462306a36Sopenharmony_ci TP_printk("hmdfs: src %s, server release file, fid=%u, fid_ver=%llu, remote_dev=%llu, err=%d", 52562306a36Sopenharmony_ci __entry->src, __entry->file_id, __entry->file_ver, 52662306a36Sopenharmony_ci __entry->device_id, __entry->err) 52762306a36Sopenharmony_ci); 52862306a36Sopenharmony_ci 52962306a36Sopenharmony_ciTRACE_EVENT(hmdfs_readpages_cloud, 53062306a36Sopenharmony_ci 53162306a36Sopenharmony_ci TP_PROTO(unsigned int nr_pages, int err), 53262306a36Sopenharmony_ci 53362306a36Sopenharmony_ci TP_ARGS(nr_pages, err), 53462306a36Sopenharmony_ci 53562306a36Sopenharmony_ci TP_STRUCT__entry( 53662306a36Sopenharmony_ci __field(unsigned int, nr_pages) 53762306a36Sopenharmony_ci __field(int, err) 53862306a36Sopenharmony_ci ), 53962306a36Sopenharmony_ci 54062306a36Sopenharmony_ci TP_fast_assign( 54162306a36Sopenharmony_ci __entry->nr_pages = nr_pages; 54262306a36Sopenharmony_ci __entry->err = err; 54362306a36Sopenharmony_ci ), 54462306a36Sopenharmony_ci 54562306a36Sopenharmony_ci TP_printk("nr_pages:%u, lo_d_devid:%d", 54662306a36Sopenharmony_ci __entry->nr_pages, __entry->err) 54762306a36Sopenharmony_ci); 54862306a36Sopenharmony_ci 54962306a36Sopenharmony_ciTRACE_EVENT(hmdfs_do_readpages_cloud_begin, 55062306a36Sopenharmony_ci 55162306a36Sopenharmony_ci TP_PROTO(int cnt, loff_t pos), 55262306a36Sopenharmony_ci 55362306a36Sopenharmony_ci TP_ARGS(cnt, pos), 55462306a36Sopenharmony_ci 55562306a36Sopenharmony_ci TP_STRUCT__entry( 55662306a36Sopenharmony_ci __field(int, cnt) 55762306a36Sopenharmony_ci __field(loff_t, pos) 55862306a36Sopenharmony_ci ), 55962306a36Sopenharmony_ci 56062306a36Sopenharmony_ci TP_fast_assign( 56162306a36Sopenharmony_ci __entry->cnt = cnt; 56262306a36Sopenharmony_ci __entry->pos = pos; 56362306a36Sopenharmony_ci ), 56462306a36Sopenharmony_ci 56562306a36Sopenharmony_ci TP_printk("cnt:%d, pos:%llx", 56662306a36Sopenharmony_ci __entry->cnt, __entry->pos) 56762306a36Sopenharmony_ci); 56862306a36Sopenharmony_ci 56962306a36Sopenharmony_ciTRACE_EVENT(hmdfs_do_readpages_cloud_end, 57062306a36Sopenharmony_ci 57162306a36Sopenharmony_ci TP_PROTO(int cnt, loff_t pos, int ret), 57262306a36Sopenharmony_ci 57362306a36Sopenharmony_ci TP_ARGS(cnt, pos, ret), 57462306a36Sopenharmony_ci 57562306a36Sopenharmony_ci TP_STRUCT__entry( 57662306a36Sopenharmony_ci __field(int, cnt) 57762306a36Sopenharmony_ci __field(loff_t, pos) 57862306a36Sopenharmony_ci __field(int, ret) 57962306a36Sopenharmony_ci ), 58062306a36Sopenharmony_ci 58162306a36Sopenharmony_ci TP_fast_assign( 58262306a36Sopenharmony_ci __entry->cnt = cnt; 58362306a36Sopenharmony_ci __entry->pos = pos; 58462306a36Sopenharmony_ci __entry->ret = ret; 58562306a36Sopenharmony_ci ), 58662306a36Sopenharmony_ci 58762306a36Sopenharmony_ci TP_printk("cnt:%d, pos:%llx", 58862306a36Sopenharmony_ci __entry->cnt, __entry->pos, __entry->ret) 58962306a36Sopenharmony_ci); 59062306a36Sopenharmony_ci 59162306a36Sopenharmony_ciTRACE_EVENT(hmdfs_client_recv_readpage, 59262306a36Sopenharmony_ci 59362306a36Sopenharmony_ci TP_PROTO(struct hmdfs_peer *con, unsigned long long remote_ino, 59462306a36Sopenharmony_ci unsigned long page_index, int err), 59562306a36Sopenharmony_ci 59662306a36Sopenharmony_ci TP_ARGS(con, remote_ino, page_index, err), 59762306a36Sopenharmony_ci 59862306a36Sopenharmony_ci TP_STRUCT__entry( 59962306a36Sopenharmony_ci __array(char, src, 128) 60062306a36Sopenharmony_ci __field(uint64_t, remote_ino) 60162306a36Sopenharmony_ci __field(unsigned long, page_index) 60262306a36Sopenharmony_ci __field(uint64_t, device_id) 60362306a36Sopenharmony_ci __field(int, err) 60462306a36Sopenharmony_ci ), 60562306a36Sopenharmony_ci 60662306a36Sopenharmony_ci TP_fast_assign( 60762306a36Sopenharmony_ci strlcpy(__entry->src, con->sbi->local_src, 128); 60862306a36Sopenharmony_ci __entry->remote_ino = remote_ino; 60962306a36Sopenharmony_ci __entry->page_index = page_index; 61062306a36Sopenharmony_ci __entry->device_id = con->device_id; 61162306a36Sopenharmony_ci __entry->err = err; 61262306a36Sopenharmony_ci ), 61362306a36Sopenharmony_ci 61462306a36Sopenharmony_ci TP_printk("hmdfs: src %s, client readpage callback from remote device %llu, remote_ino=%llu, page_idx=%lu, err=%d", 61562306a36Sopenharmony_ci __entry->src, __entry->device_id, 61662306a36Sopenharmony_ci __entry->remote_ino, __entry->page_index, __entry->err) 61762306a36Sopenharmony_ci); 61862306a36Sopenharmony_ci 61962306a36Sopenharmony_ciTRACE_EVENT(hmdfs_writepage_cb_enter, 62062306a36Sopenharmony_ci 62162306a36Sopenharmony_ci TP_PROTO(struct hmdfs_peer *con, unsigned long long remote_ino, 62262306a36Sopenharmony_ci unsigned long page_index, int err), 62362306a36Sopenharmony_ci 62462306a36Sopenharmony_ci TP_ARGS(con, remote_ino, page_index, err), 62562306a36Sopenharmony_ci 62662306a36Sopenharmony_ci TP_STRUCT__entry( 62762306a36Sopenharmony_ci __array(char, src, 128) 62862306a36Sopenharmony_ci __field(uint64_t, remote_ino) 62962306a36Sopenharmony_ci __field(unsigned long, page_index) 63062306a36Sopenharmony_ci __field(uint64_t, device_id) 63162306a36Sopenharmony_ci __field(int, err) 63262306a36Sopenharmony_ci ), 63362306a36Sopenharmony_ci 63462306a36Sopenharmony_ci TP_fast_assign( 63562306a36Sopenharmony_ci strlcpy(__entry->src, con->sbi->local_src, 128); 63662306a36Sopenharmony_ci __entry->remote_ino = remote_ino; 63762306a36Sopenharmony_ci __entry->page_index = page_index; 63862306a36Sopenharmony_ci __entry->device_id = con->device_id; 63962306a36Sopenharmony_ci __entry->err = err; 64062306a36Sopenharmony_ci ), 64162306a36Sopenharmony_ci 64262306a36Sopenharmony_ci TP_printk("hmdfs: src %s, writepage_cb start, return from remote device %llu, remote_ino=%llu, page_idx=%lu, err=%d", 64362306a36Sopenharmony_ci __entry->src, __entry->device_id, 64462306a36Sopenharmony_ci __entry->remote_ino, __entry->page_index, __entry->err) 64562306a36Sopenharmony_ci); 64662306a36Sopenharmony_ci 64762306a36Sopenharmony_ciTRACE_EVENT(hmdfs_writepage_cb_exit, 64862306a36Sopenharmony_ci 64962306a36Sopenharmony_ci TP_PROTO(struct hmdfs_peer *con, unsigned long long remote_ino, 65062306a36Sopenharmony_ci unsigned long page_index, int err), 65162306a36Sopenharmony_ci 65262306a36Sopenharmony_ci TP_ARGS(con, remote_ino, page_index, err), 65362306a36Sopenharmony_ci 65462306a36Sopenharmony_ci TP_STRUCT__entry( 65562306a36Sopenharmony_ci __array(char, src, 128) 65662306a36Sopenharmony_ci __field(uint64_t, remote_ino) 65762306a36Sopenharmony_ci __field(unsigned long, page_index) 65862306a36Sopenharmony_ci __field(uint64_t, device_id) 65962306a36Sopenharmony_ci __field(int, err) 66062306a36Sopenharmony_ci ), 66162306a36Sopenharmony_ci 66262306a36Sopenharmony_ci TP_fast_assign( 66362306a36Sopenharmony_ci strlcpy(__entry->src, con->sbi->local_src, 128); 66462306a36Sopenharmony_ci __entry->remote_ino = remote_ino; 66562306a36Sopenharmony_ci __entry->page_index = page_index; 66662306a36Sopenharmony_ci __entry->device_id = con->device_id; 66762306a36Sopenharmony_ci __entry->err = err; 66862306a36Sopenharmony_ci ), 66962306a36Sopenharmony_ci 67062306a36Sopenharmony_ci TP_printk("hmdfs: src %s, writepage_cb exit, return from remote device %llu, remote_ino=%llu, page_index=%lu, err=%d", 67162306a36Sopenharmony_ci __entry->src, __entry->device_id, 67262306a36Sopenharmony_ci __entry->remote_ino, __entry->page_index, __entry->err) 67362306a36Sopenharmony_ci); 67462306a36Sopenharmony_ci 67562306a36Sopenharmony_ciTRACE_EVENT(hmdfs_server_rebuild_dents, 67662306a36Sopenharmony_ci 67762306a36Sopenharmony_ci TP_PROTO(struct hmdfs_dcache_header *__h, int err), 67862306a36Sopenharmony_ci 67962306a36Sopenharmony_ci TP_ARGS(__h, err), 68062306a36Sopenharmony_ci 68162306a36Sopenharmony_ci TP_STRUCT__entry( 68262306a36Sopenharmony_ci __field(uint64_t, crtime) 68362306a36Sopenharmony_ci __field(uint64_t, crtime_nsec) 68462306a36Sopenharmony_ci __field(uint64_t, ctime) 68562306a36Sopenharmony_ci __field(uint64_t, ctime_nsec) 68662306a36Sopenharmony_ci __field(uint64_t, num) 68762306a36Sopenharmony_ci __field(int, err) 68862306a36Sopenharmony_ci ), 68962306a36Sopenharmony_ci 69062306a36Sopenharmony_ci TP_fast_assign( 69162306a36Sopenharmony_ci __entry->crtime = le64_to_cpu(__h->dcache_crtime); 69262306a36Sopenharmony_ci __entry->crtime_nsec = le64_to_cpu(__h->dcache_crtime_nsec); 69362306a36Sopenharmony_ci __entry->ctime = le64_to_cpu(__h->dentry_ctime); 69462306a36Sopenharmony_ci __entry->ctime_nsec = le64_to_cpu(__h->dentry_ctime_nsec); 69562306a36Sopenharmony_ci __entry->num = le64_to_cpu(__h->num); 69662306a36Sopenharmony_ci __entry->err = err; 69762306a36Sopenharmony_ci ), 69862306a36Sopenharmony_ci 69962306a36Sopenharmony_ci TP_printk("dcache crtime %llu:%llu ctime %llu:%llu has %llu dentry err %d", 70062306a36Sopenharmony_ci __entry->crtime, __entry->crtime_nsec, __entry->ctime, 70162306a36Sopenharmony_ci __entry->ctime_nsec, __entry->num, __entry->err) 70262306a36Sopenharmony_ci); 70362306a36Sopenharmony_ci 70462306a36Sopenharmony_ciTRACE_EVENT(hmdfs_server_readdir, 70562306a36Sopenharmony_ci 70662306a36Sopenharmony_ci TP_PROTO(struct readdir_request *req), 70762306a36Sopenharmony_ci 70862306a36Sopenharmony_ci TP_ARGS(req), 70962306a36Sopenharmony_ci 71062306a36Sopenharmony_ci TP_STRUCT__entry( 71162306a36Sopenharmony_ci __string(path, req->path) 71262306a36Sopenharmony_ci ), 71362306a36Sopenharmony_ci 71462306a36Sopenharmony_ci TP_fast_assign( 71562306a36Sopenharmony_ci __assign_str(path, req->path); 71662306a36Sopenharmony_ci ), 71762306a36Sopenharmony_ci 71862306a36Sopenharmony_ci TP_printk("hmdfs_server_readdir %s", __get_str(path)) 71962306a36Sopenharmony_ci); 72062306a36Sopenharmony_ci 72162306a36Sopenharmony_ciTRACE_EVENT(hmdfs_open_final_remote, 72262306a36Sopenharmony_ci 72362306a36Sopenharmony_ci TP_PROTO(struct hmdfs_inode_info *info, 72462306a36Sopenharmony_ci struct hmdfs_open_ret *open_ret, 72562306a36Sopenharmony_ci struct file *file, 72662306a36Sopenharmony_ci int reason), 72762306a36Sopenharmony_ci 72862306a36Sopenharmony_ci TP_ARGS(info, open_ret, file, reason), 72962306a36Sopenharmony_ci 73062306a36Sopenharmony_ci TP_STRUCT__entry( 73162306a36Sopenharmony_ci __array(char, file_path, MAX_FILTER_STR_VAL) 73262306a36Sopenharmony_ci __field(uint32_t, reason) 73362306a36Sopenharmony_ci __field(uint32_t, file_id) 73462306a36Sopenharmony_ci __field(uint64_t, file_ver) 73562306a36Sopenharmony_ci __field(uint64_t, remote_file_size) 73662306a36Sopenharmony_ci __field(uint64_t, remote_ino) 73762306a36Sopenharmony_ci __field(uint64_t, remote_ctime) 73862306a36Sopenharmony_ci __field(uint64_t, remote_ctime_nsec) 73962306a36Sopenharmony_ci __field(uint64_t, remote_stable_ctime) 74062306a36Sopenharmony_ci __field(uint64_t, remote_stable_ctime_nsec) 74162306a36Sopenharmony_ci __field(uint64_t, local_file_size) 74262306a36Sopenharmony_ci __field(uint64_t, local_ino) 74362306a36Sopenharmony_ci __field(uint64_t, local_ctime) 74462306a36Sopenharmony_ci __field(uint64_t, local_ctime_nsec) 74562306a36Sopenharmony_ci __field(uint64_t, local_stable_ctime) 74662306a36Sopenharmony_ci __field(uint64_t, local_stable_ctime_nsec) 74762306a36Sopenharmony_ci ), 74862306a36Sopenharmony_ci 74962306a36Sopenharmony_ci TP_fast_assign( 75062306a36Sopenharmony_ci strlcpy(__entry->file_path, file->f_path.dentry->d_name.name, 75162306a36Sopenharmony_ci MAX_FILTER_STR_VAL); 75262306a36Sopenharmony_ci __entry->reason = reason; 75362306a36Sopenharmony_ci __entry->file_id = open_ret->fid.id; 75462306a36Sopenharmony_ci __entry->file_ver = open_ret->fid.ver; 75562306a36Sopenharmony_ci __entry->remote_file_size = open_ret->file_size; 75662306a36Sopenharmony_ci __entry->remote_ino = open_ret->ino; 75762306a36Sopenharmony_ci __entry->remote_ctime = open_ret->remote_ctime.tv_sec; 75862306a36Sopenharmony_ci __entry->remote_ctime_nsec = open_ret->remote_ctime.tv_nsec; 75962306a36Sopenharmony_ci __entry->remote_stable_ctime = open_ret->stable_ctime.tv_sec; 76062306a36Sopenharmony_ci __entry->remote_stable_ctime_nsec = 76162306a36Sopenharmony_ci open_ret->stable_ctime.tv_nsec; 76262306a36Sopenharmony_ci __entry->local_file_size = info->vfs_inode.i_size; 76362306a36Sopenharmony_ci __entry->local_ino = info->remote_ino; 76462306a36Sopenharmony_ci __entry->local_ctime = info->remote_ctime.tv_sec; 76562306a36Sopenharmony_ci __entry->local_ctime_nsec = info->remote_ctime.tv_nsec; 76662306a36Sopenharmony_ci __entry->local_stable_ctime = info->stable_ctime.tv_sec; 76762306a36Sopenharmony_ci __entry->local_stable_ctime_nsec = info->stable_ctime.tv_nsec; 76862306a36Sopenharmony_ci ), 76962306a36Sopenharmony_ci 77062306a36Sopenharmony_ci TP_printk("file path: %s, file id: %u, file ver: %llu, reason: %d, file size: %llu/%llu, ino: %llu/%llu, ctime: %llu.%llu/%llu.%llu, stable_ctime: %llu.%llu/%llu.%llu from remote/local", 77162306a36Sopenharmony_ci __entry->file_path, __entry->file_id, __entry->file_ver, 77262306a36Sopenharmony_ci __entry->reason, __entry->remote_file_size, 77362306a36Sopenharmony_ci __entry->local_file_size, __entry->remote_ino, 77462306a36Sopenharmony_ci __entry->local_ino, __entry->remote_ctime, 77562306a36Sopenharmony_ci __entry->remote_ctime_nsec, __entry->local_ctime, 77662306a36Sopenharmony_ci __entry->local_ctime_nsec, __entry->remote_stable_ctime, 77762306a36Sopenharmony_ci __entry->remote_stable_ctime_nsec, 77862306a36Sopenharmony_ci __entry->local_stable_ctime, __entry->local_stable_ctime_nsec) 77962306a36Sopenharmony_ci); 78062306a36Sopenharmony_ci 78162306a36Sopenharmony_ciTRACE_EVENT(hmdfs_server_open_enter, 78262306a36Sopenharmony_ci 78362306a36Sopenharmony_ci TP_PROTO(struct hmdfs_peer *con, 78462306a36Sopenharmony_ci struct open_request *recv), 78562306a36Sopenharmony_ci 78662306a36Sopenharmony_ci TP_ARGS(con, recv), 78762306a36Sopenharmony_ci 78862306a36Sopenharmony_ci TP_STRUCT__entry( 78962306a36Sopenharmony_ci __array(char, open_path, MAX_FILTER_STR_VAL) 79062306a36Sopenharmony_ci __array(char, dst_path, MAX_FILTER_STR_VAL) 79162306a36Sopenharmony_ci __field(uint32_t, file_type) 79262306a36Sopenharmony_ci ), 79362306a36Sopenharmony_ci 79462306a36Sopenharmony_ci TP_fast_assign( 79562306a36Sopenharmony_ci strlcpy(__entry->open_path, recv->buf, MAX_FILTER_STR_VAL); 79662306a36Sopenharmony_ci strlcpy(__entry->dst_path, con->sbi->local_dst, 79762306a36Sopenharmony_ci MAX_FILTER_STR_VAL); 79862306a36Sopenharmony_ci __entry->file_type = recv->file_type; 79962306a36Sopenharmony_ci ), 80062306a36Sopenharmony_ci 80162306a36Sopenharmony_ci TP_printk("server open file %s from %s, file_type is %u", 80262306a36Sopenharmony_ci __entry->open_path, __entry->dst_path, 80362306a36Sopenharmony_ci __entry->file_type) 80462306a36Sopenharmony_ci); 80562306a36Sopenharmony_ci 80662306a36Sopenharmony_ciTRACE_EVENT(hmdfs_server_open_exit, 80762306a36Sopenharmony_ci 80862306a36Sopenharmony_ci TP_PROTO(struct hmdfs_peer *con, 80962306a36Sopenharmony_ci struct open_response *resp, 81062306a36Sopenharmony_ci struct file *file, 81162306a36Sopenharmony_ci int ret), 81262306a36Sopenharmony_ci 81362306a36Sopenharmony_ci TP_ARGS(con, resp, file, ret), 81462306a36Sopenharmony_ci 81562306a36Sopenharmony_ci TP_STRUCT__entry( 81662306a36Sopenharmony_ci __array(char, file_path, MAX_FILTER_STR_VAL) 81762306a36Sopenharmony_ci __array(char, src_path, MAX_FILTER_STR_VAL) 81862306a36Sopenharmony_ci __field(uint32_t, file_id) 81962306a36Sopenharmony_ci __field(uint64_t, file_size) 82062306a36Sopenharmony_ci __field(uint64_t, ino) 82162306a36Sopenharmony_ci __field(uint64_t, ctime) 82262306a36Sopenharmony_ci __field(uint64_t, ctime_nsec) 82362306a36Sopenharmony_ci __field(uint64_t, stable_ctime) 82462306a36Sopenharmony_ci __field(uint64_t, stable_ctime_nsec) 82562306a36Sopenharmony_ci __field(int, retval) 82662306a36Sopenharmony_ci ), 82762306a36Sopenharmony_ci 82862306a36Sopenharmony_ci TP_fast_assign( 82962306a36Sopenharmony_ci if (file) 83062306a36Sopenharmony_ci strlcpy(__entry->file_path, 83162306a36Sopenharmony_ci file->f_path.dentry->d_name.name, 83262306a36Sopenharmony_ci MAX_FILTER_STR_VAL); 83362306a36Sopenharmony_ci else 83462306a36Sopenharmony_ci strlcpy(__entry->file_path, "null", MAX_FILTER_STR_VAL); 83562306a36Sopenharmony_ci strlcpy(__entry->src_path, con->sbi->local_src, 83662306a36Sopenharmony_ci MAX_FILTER_STR_VAL); 83762306a36Sopenharmony_ci __entry->file_id = resp ? resp->file_id : UINT_MAX; 83862306a36Sopenharmony_ci __entry->file_size = resp ? resp->file_size : ULLONG_MAX; 83962306a36Sopenharmony_ci __entry->ino = resp ? resp->ino : 0; 84062306a36Sopenharmony_ci __entry->ctime = resp ? resp->ctime : 0; 84162306a36Sopenharmony_ci __entry->ctime_nsec = resp ? resp->ctime_nsec : 0; 84262306a36Sopenharmony_ci __entry->stable_ctime = resp ? resp->stable_ctime : 0; 84362306a36Sopenharmony_ci __entry->stable_ctime_nsec = resp ? resp->stable_ctime_nsec : 0; 84462306a36Sopenharmony_ci __entry->retval = ret; 84562306a36Sopenharmony_ci ), 84662306a36Sopenharmony_ci 84762306a36Sopenharmony_ci TP_printk("server file %s is opened from %s, open result: %d, file id: %u, file size: %llu, ino: %llu, ctime: %llu.%llu, stable ctime: %llu.%llu", 84862306a36Sopenharmony_ci __entry->file_path, __entry->src_path, 84962306a36Sopenharmony_ci __entry->retval, __entry->file_id, 85062306a36Sopenharmony_ci __entry->file_size, __entry->ino, __entry->ctime, 85162306a36Sopenharmony_ci __entry->ctime_nsec, __entry->stable_ctime, 85262306a36Sopenharmony_ci __entry->stable_ctime_nsec) 85362306a36Sopenharmony_ci); 85462306a36Sopenharmony_ci 85562306a36Sopenharmony_ciTRACE_EVENT(hmdfs_merge_lookup_work_enter, 85662306a36Sopenharmony_ci 85762306a36Sopenharmony_ci TP_PROTO(struct merge_lookup_work *ml_work), 85862306a36Sopenharmony_ci 85962306a36Sopenharmony_ci TP_ARGS(ml_work), 86062306a36Sopenharmony_ci 86162306a36Sopenharmony_ci TP_STRUCT__entry( 86262306a36Sopenharmony_ci __field(int, devid) 86362306a36Sopenharmony_ci __string(name, ml_work->name) 86462306a36Sopenharmony_ci __field(unsigned int, flags) 86562306a36Sopenharmony_ci ), 86662306a36Sopenharmony_ci 86762306a36Sopenharmony_ci TP_fast_assign( 86862306a36Sopenharmony_ci __entry->devid = ml_work->devid; 86962306a36Sopenharmony_ci __assign_str(name, ml_work->name); 87062306a36Sopenharmony_ci __entry->flags = ml_work->flags; 87162306a36Sopenharmony_ci ), 87262306a36Sopenharmony_ci 87362306a36Sopenharmony_ci TP_printk("devid = %d, name:%s, flags:%u", 87462306a36Sopenharmony_ci __entry->devid, 87562306a36Sopenharmony_ci __get_str(name), 87662306a36Sopenharmony_ci __entry->flags) 87762306a36Sopenharmony_ci); 87862306a36Sopenharmony_ci 87962306a36Sopenharmony_ciTRACE_EVENT(hmdfs_merge_lookup_work_exit, 88062306a36Sopenharmony_ci 88162306a36Sopenharmony_ci TP_PROTO(struct merge_lookup_work *ml_work, int found), 88262306a36Sopenharmony_ci 88362306a36Sopenharmony_ci TP_ARGS(ml_work, found), 88462306a36Sopenharmony_ci 88562306a36Sopenharmony_ci TP_STRUCT__entry( 88662306a36Sopenharmony_ci __field(int, devid) 88762306a36Sopenharmony_ci __string(name, ml_work->name) 88862306a36Sopenharmony_ci __field(unsigned int, flags) 88962306a36Sopenharmony_ci __field(int, found) 89062306a36Sopenharmony_ci ), 89162306a36Sopenharmony_ci 89262306a36Sopenharmony_ci TP_fast_assign( 89362306a36Sopenharmony_ci __entry->devid = ml_work->devid; 89462306a36Sopenharmony_ci __assign_str(name, ml_work->name); 89562306a36Sopenharmony_ci __entry->flags = ml_work->flags; 89662306a36Sopenharmony_ci __entry->found = found; 89762306a36Sopenharmony_ci ), 89862306a36Sopenharmony_ci 89962306a36Sopenharmony_ci TP_printk("devid = %d, name:%s, flags:%u, found:%d", 90062306a36Sopenharmony_ci __entry->devid, 90162306a36Sopenharmony_ci __get_str(name), 90262306a36Sopenharmony_ci __entry->flags, 90362306a36Sopenharmony_ci __entry->found) 90462306a36Sopenharmony_ci); 90562306a36Sopenharmony_ci 90662306a36Sopenharmony_ciTRACE_EVENT(hmdfs_merge_update_dentry_info_enter, 90762306a36Sopenharmony_ci 90862306a36Sopenharmony_ci TP_PROTO(struct dentry *src_dentry, struct dentry *dst_dentry), 90962306a36Sopenharmony_ci 91062306a36Sopenharmony_ci TP_ARGS(src_dentry, dst_dentry), 91162306a36Sopenharmony_ci 91262306a36Sopenharmony_ci TP_STRUCT__entry( 91362306a36Sopenharmony_ci __string(src_name, src_dentry->d_name.name) 91462306a36Sopenharmony_ci __string(dst_name, dst_dentry->d_name.name) 91562306a36Sopenharmony_ci ), 91662306a36Sopenharmony_ci 91762306a36Sopenharmony_ci TP_fast_assign( 91862306a36Sopenharmony_ci __assign_str(src_name, src_dentry->d_name.name); 91962306a36Sopenharmony_ci __assign_str(dst_name, dst_dentry->d_name.name); 92062306a36Sopenharmony_ci ), 92162306a36Sopenharmony_ci 92262306a36Sopenharmony_ci TP_printk("src name:%s, dst name:%s", 92362306a36Sopenharmony_ci __get_str(src_name), 92462306a36Sopenharmony_ci __get_str(dst_name)) 92562306a36Sopenharmony_ci); 92662306a36Sopenharmony_ci 92762306a36Sopenharmony_ciTRACE_EVENT(hmdfs_merge_update_dentry_info_exit, 92862306a36Sopenharmony_ci 92962306a36Sopenharmony_ci TP_PROTO(struct dentry *src_dentry, struct dentry *dst_dentry), 93062306a36Sopenharmony_ci 93162306a36Sopenharmony_ci TP_ARGS(src_dentry, dst_dentry), 93262306a36Sopenharmony_ci 93362306a36Sopenharmony_ci TP_STRUCT__entry( 93462306a36Sopenharmony_ci __string(src_name, src_dentry->d_name.name) 93562306a36Sopenharmony_ci __string(dst_name, dst_dentry->d_name.name) 93662306a36Sopenharmony_ci ), 93762306a36Sopenharmony_ci 93862306a36Sopenharmony_ci TP_fast_assign( 93962306a36Sopenharmony_ci __assign_str(src_name, src_dentry->d_name.name); 94062306a36Sopenharmony_ci __assign_str(dst_name, dst_dentry->d_name.name); 94162306a36Sopenharmony_ci ), 94262306a36Sopenharmony_ci 94362306a36Sopenharmony_ci TP_printk("src name:%s, dst name:%s", 94462306a36Sopenharmony_ci __get_str(src_name), 94562306a36Sopenharmony_ci __get_str(dst_name)) 94662306a36Sopenharmony_ci); 94762306a36Sopenharmony_ci 94862306a36Sopenharmony_ci#endif 94962306a36Sopenharmony_ci 95062306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH 95162306a36Sopenharmony_ci#undef TRACE_INCLUDE_FILE 95262306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH . 95362306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE hmdfs_trace 95462306a36Sopenharmony_ci#include <trace/define_trace.h> 955