* Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
* ubs-io is licensed under the Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
#ifndef BIO_TRACE_H
#define BIO_TRACE_H
#include "htracer.h"
namespace ock {
namespace bio {
constexpr uint32_t SERVICE_ID = 0;
enum SdkTracerType
{
SDK_TRACE_START = htracer::GetTraceId(SERVICE_ID, 0U),
SDK_TRACE_INIT_LOAD_VIEW,
SDK_TRACE_CREATE_CACHE,
SDK_TRACE_DESTROY_CACHE,
SDK_TRACE_QOS_APPLY,
SDK_TRACE_QOS_HANG_IO,
SDK_TRACE_QOS_PRELOAD,
SDK_TRACE_QOS_RELEASE,
SDK_TRACE_QOS_WAKE_OK,
SDK_TRACE_QOS_WAKE_BUSY,
SDK_TRACE_QOS_WAKE_RETRY,
SDK_TRACE_PUT,
SDK_TRACE_PUT_TO_UNDERFS,
SDK_TRACE_GET_TO_UNDERFS,
SDK_TRACE_PUT_ALIGN_IO,
SDK_TRACE_PUT_GET_PT,
SDK_TRACE_PUT_ALLOC_OFF,
SDK_TRACE_PUT_SEND,
SDK_TRACE_PUT_LOCAL_SYNC,
SDK_TRACE_PUT_REMOTE_SYNC,
SDK_TRACE_PUT_PREPARE_GET_SLICE,
SDK_TRACE_PUT_PREPARE_COPY_DATA,
SDK_TRACE_PUT_PREPARE_SLICE_SERIALIZATION,
SDK_TRACE_PUT_PREPARE,
SDK_TRACE_GET,
SDK_TRACE_GET_SEND,
SDK_TRACE_GET_LOCAL,
SDK_TRACE_GET_REMOTE,
SDK_TRACE_GET_COPY2U,
SDK_TRACE_DELETE,
SDK_TRACE_LOAD,
SDK_TRACE_LISTALL,
SDK_TRACE_STAT,
SDK_TRACE_NOTIFYUPDATE,
SDK_TRACE_UPDATEFINISH,
SDK_TRACE_CHECKREADY,
SDK_TRACE_ALLOC_SPACE,
SDK_TRACE_W_S_1_4K,
SDK_TRACE_W_S_4_8K,
SDK_TRACE_W_S_8_64K,
SDK_TRACE_W_S_64_128K,
SDK_TRACE_W_S_128_256K,
SDK_TRACE_W_S_256K_1M,
SDK_TRACE_W_S_1_2M,
SDK_TRACE_W_S_2_4M,
SDK_TRACE_W_S_4M,
SDK_TRACE_R_S_1_4K,
SDK_TRACE_R_S_4_8K,
SDK_TRACE_R_S_8_64K,
SDK_TRACE_R_S_64_128K,
SDK_TRACE_R_S_128_256K,
SDK_TRACE_R_S_256K_1M,
SDK_TRACE_R_S_1_2M,
SDK_TRACE_R_S_2_4M,
SDK_TRACE_R_S_4M,
SDK_TRACE_END,
};
enum MirrorTracerType
{
MIRROR_TRACE_START = SDK_TRACE_END,
MIRROR_TRACE_PUT_RECEIVE_LOCAL,
MIRROR_TRACE_PUT_RECEIVE_REMOTE,
MIRROR_TRACE_PUT,
MIRROR_TRACE_PUT_READ_DATA,
MIRROR_TRACE_QOS_ALLOC,
MIRROR_TRACE_QOS_ROLLBACK,
MIRROR_TRACE_QOS_RELEASE,
MIRROR_TRACE_GET_WRITE_DATA,
MIRROR_TRACE_GET_COPY_DATA,
MIRROR_TRACE_GET,
MIRROR_TRACE_DEL,
MIRROR_TRACE_STAT,
MIRROR_TRACE_LOAD,
MIRROR_TRACE_CREATE_FLOW,
MIRROR_TRACE_DESTROY_FLOW,
MIRROR_TRACE_SYNC_DATA,
MIRROR_TRACE_GET_EVICT_OFFSET,
MIRROR_TRACE_GET_EVICT_OFFSET_HDL,
MIRROR_TRACE_INTERCEPTOR_READ_START,
MIRROR_TRACE_INTERCEPTOR_READ_SCH,
MIRROR_TRACE_INTERCEPTOR_READ,
MIRROR_TRACE_INTERCEPTOR_READ_REPLY,
MIRROR_TRACE_INTERCEPTOR_WRITE_START,
MIRROR_TRACE_INTERCEPTOR_WRITE_SCH,
MIRROR_TRACE_INTERCEPTOR_WRITE,
MIRROR_TRACE_INTERCEPTOR_WRITE_REPLY,
MIRROR_TRACE_W_S_1_4K,
MIRROR_TRACE_W_S_4_8K,
MIRROR_TRACE_W_S_8_64K,
MIRROR_TRACE_W_S_64_128K,
MIRROR_TRACE_W_S_128_256K,
MIRROR_TRACE_W_S_256K_1M,
MIRROR_TRACE_W_S_1_2M,
MIRROR_TRACE_W_S_2_4M,
MIRROR_TRACE_W_S_4M,
MIRROR_TRACE_R_S_1_4K,
MIRROR_TRACE_R_S_4_8K,
MIRROR_TRACE_R_S_8_64K,
MIRROR_TRACE_R_S_64_128K,
MIRROR_TRACE_R_S_128_256K,
MIRROR_TRACE_R_S_256K_1M,
MIRROR_TRACE_R_S_1_2M,
MIRROR_TRACE_R_S_2_4M,
MIRROR_TRACE_R_S_4M,
MIRROR_TRACE_END,
};
enum WcacheTracerType
{
WCACHE_TRACE_START = MIRROR_TRACE_END,
WCACHE_TRACE_ALLOC_ID,
WCACHE_TRACE_CREATE_OBJ,
WCACHE_TRACE_DESTROY_OBJ,
WCACHE_TRACE_GET_SLICE,
WCACHE_TRACE_PUT_QUERY_EXIST,
WCACHE_TRACE_PUT_WRITE_FLOW,
WCACHE_TRACE_PUT_ADD_EVICT,
WCACHE_TRACE_PUT_INSERT_INDEX,
WCACHE_TRACE_PUT,
WCACHE_TRACE_PUT_GET_WCACHE,
WCACHE_TRACE_PUT_NEGOTIATE_QUE,
WCACHE_TRACE_POP_NEGOTIATE_QUE,
WCACHE_TRACE_REMOVE_NEGOTIATE_QUE,
WCACHE_TRACE_PUT_MEM_BACK,
WCACHE_TRACE_PUT_DISK_BACK,
WCACHE_TRACE_PUT_UNDERFS_BACK,
WCACHE_TRACE_PUT_BYPASS,
WCACHE_TRACE_GET_QUERY_INDEX,
WCACHE_TRACE_GET_READ_DATA,
WCACHE_TRACE_GET,
WCACHE_TRACE_DEL,
WCACHE_TRACE_STAT,
WCACHE_TRACE_EVICT2DISK,
WCACHE_TRACE_EVICT2UNDERFS,
WCACHE_TRACE_QUOTA_FREE,
WCACHE_TRACE_PUT_RCACHE,
WCACHE_TRACE_RECOVER,
WCACHE_TRACE_GET_EVICT_OFFSET,
WCACHE_TRACE_FLUSH,
WCACHE_TRACE_CLEAR_EXPIRED,
WCACHE_TRACE_GET_NEGOTIATE,
WCACHE_TRACE_NEGOTIATE_UPDATE,
WCACHE_ADD_EVICT_QUEUE,
WCACHE_DEL_NEGOTIATE_ARRAY,
WCACHE_TRACE_END,
};
enum RcacheTracerType
{
RCACHE_TRACE_START = WCACHE_TRACE_END,
RCACHE_TRACE_CREATE_OBJ,
RCACHE_TRACE_DESTROY_OBJ,
RCACHE_TRACE_PUT_GET_SLICE,
RCACHE_TRACE_PUT_ALLOC_CHUNK,
RCACHE_TRACE_PUT_INSERT_INDEX,
RCACHE_TRACE_PUT_INSERT_EVICT,
RCACHE_TRACE_PUT_INSERT_TRUNC,
RCACHE_TRACE_PUT,
RCACHE_TRACE_GET_QUERY_INDEX,
RCACHE_TRACE_GET_WRITE_DATA,
RCACHE_TRACE_GET_UPDATE_EVICT,
RCACHE_TRACE_GET,
RCACHE_TRACE_DEL_QUERY_INDEX,
RCACHE_TRACE_DEL,
RCACHE_TRACE_LOAD,
RCACHE_TRACE_EVICT2DISK,
RCACHE_TRACE_EVICT2NULL,
RCACHE_TRACE_CLEAR_EXPIRED,
RCACHE_TRACE_END,
};
enum FlowTracerType
{
FLOW_TRACE_START = RCACHE_TRACE_END,
FLOW_TRACE_CREATE_OBJ,
FLOW_TRACE_DESTROY_OBJ,
FLOW_TRACE_GETALL_OBJ,
FLOW_TRACE_PRELOAD_OBJ,
FLOW_TRACE_PRELOAD_ALLOC,
FLOW_TRACE_GETADDR,
FLOW_TRACE_PRELOAD_MEMORY,
FLOW_TRACE_TRUNCATE,
FLOW_TRACE_HOLDWAIT,
FLOW_TRACE_SEAL,
FLOW_TRACE_END,
};
enum BdmTracerType
{
BDM_TRACE_START = FLOW_TRACE_END,
BDM_TRACE_SEG_ALLOC,
BDM_TRACE_SEG_FREE,
BDM_TRACE_WRITE_SYNC,
BDM_TRACE_READ_SYNC,
BDM_TRACE_WRITE_ASYNC,
BDM_TRACE_READ_ASYNC,
BDM_TRACE_END,
};
enum MemTracerType
{
MEM_TRACE_START = BDM_TRACE_END,
MEM_TRACE_SEG_ALLOC,
MEM_TRACE_SEG_FREE,
MEM_TRACE_END,
};
enum UfsTracerType
{
UFS_TRACE_START = MEM_TRACE_END,
EXTERNAL_TRACE_GET,
UFS_TRACE_PUT,
UFS_TRACE_GET,
UFS_TRACE_DEL,
UFS_TRACE_STAT,
UFS_TRACE_LIST,
UFS_TRACE_END,
};
enum NetTracerType
{
NET_TRACE_START = UFS_TRACE_END,
NET_TRACE_IPC_HDL,
NET_TRACE_SHEDULE,
NET_TRACE_GET_CTRL_CHANNEL,
NET_TRACE_GET_DATA_CHANNEL,
NET_TRACE_SYNC_CALL_V1,
NET_TRACE_SYNC_CALL_V2,
NET_TRACE_SYNC_CALL_BUFF,
NET_TRACE_ASYNC_CALL,
NET_TRACE_ASYNC_CALL_BUFF,
NET_TRACE_SYNC_READ_V1,
NET_TRACE_SYNC_READ_V2,
NET_TRACE_SYNC_WRITE_V1,
NET_TRACE_SYNC_WRITE_V2,
NET_TRACE_REPLY_SYNC,
NET_TRACE_REPLY_ASYNC,
NET_TRACE_END,
};
enum CmTracerType
{
CM_TRACE_START = NET_TRACE_END,
CM_TRACE_NOTIFY_NODEVIEW,
CM_TRACE_NOTIFY_PTVIEW,
CM_TRACE_END,
};
#define BIO_TRACE_START(TP_ID) TRACE_DELAY_BEGIN(TP_ID)
#define BIO_TRACE_END(TP_ID, RET_CODE) TRACE_DELAY_END(TP_ID, RET_CODE)
#define BIO_TRACE_ASYNC_BEGIN(TP_ID) TRACE_ASYNC_DELAY_BEGIN(TP_ID)
#define BIO_TRACE_ASYNC_END(TP_ID, RET_CODE, START_TIME) TRACE_ASYNC_DELAY_END(TP_ID, RET_CODE, START_TIME)
}
}
#endif