From dfcef98e85b947dd38738436c769926f66438a7d Mon Sep 17 00:00:00 2001 From: wenglianfa Date: Tue, 22 Apr 2025 16:18:44 +0800 Subject: [PATCH 56/57] libhns: Add initial support for HNS LTTng tracing mainline inclusion from mainline-v56.0-65 commit 5d96d96c822323a1c9b0a6b98ce58a17a8f165c1 category: feature bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/IC3E67 CVE: NA Reference: https://github.com/linux-rdma/rdma-core/pull/1587/commits/5d96d96c822323a1c9... --------------------------------------------------------------------- Add initial support for HNS LTTng tracing. Signed-off-by: wenglianfa Signed-off-by: Junxian Huang Signed-off-by: Xinghai Cen --- providers/hns/CMakeLists.txt | 10 +++++++++ providers/hns/hns_roce_u_trace.c | 9 ++++++++ providers/hns/hns_roce_u_trace.h | 35 ++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 providers/hns/hns_roce_u_trace.c create mode 100644 providers/hns/hns_roce_u_trace.h diff --git a/providers/hns/CMakeLists.txt b/providers/hns/CMakeLists.txt index 58139ae..36ebfac 100644 --- a/providers/hns/CMakeLists.txt +++ b/providers/hns/CMakeLists.txt @@ -1,5 +1,10 @@ +if (ENABLE_LTTNG AND LTTNGUST_FOUND) + set(TRACE_FILE hns_roce_u_trace.c) +endif() + rdma_shared_provider(hns libhns.map 1 1.0.${PACKAGE_VERSION} + ${TRACE_FILE} hns_roce_u.c hns_roce_u_buf.c hns_roce_u_db.c @@ -12,3 +17,8 @@ publish_headers(infiniband ) rdma_pkg_config("hns" "libibverbs" "${CMAKE_THREAD_LIBS_INIT}") + +if (ENABLE_LTTNG AND LTTNGUST_FOUND) + target_include_directories(hns PUBLIC ".") + target_link_libraries(hns LINK_PRIVATE LTTng::UST) +endif() diff --git a/providers/hns/hns_roce_u_trace.c b/providers/hns/hns_roce_u_trace.c new file mode 100644 index 0000000..812f54c --- /dev/null +++ b/providers/hns/hns_roce_u_trace.c @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause +/* + * Copyright (c) 2025 Hisilicon Limited. + */ + +#define LTTNG_UST_TRACEPOINT_CREATE_PROBES +#define LTTNG_UST_TRACEPOINT_DEFINE + +#include "hns_roce_u_trace.h" diff --git a/providers/hns/hns_roce_u_trace.h b/providers/hns/hns_roce_u_trace.h new file mode 100644 index 0000000..9b9485c --- /dev/null +++ b/providers/hns/hns_roce_u_trace.h @@ -0,0 +1,35 @@ +/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ +/* + * Copyright (c) 2025 Hisilicon Limited. + */ + +#if defined(LTTNG_ENABLED) + +#undef LTTNG_UST_TRACEPOINT_PROVIDER +#define LTTNG_UST_TRACEPOINT_PROVIDER rdma_core_hns + +#undef LTTNG_UST_TRACEPOINT_INCLUDE +#define LTTNG_UST_TRACEPOINT_INCLUDE "hns_roce_u_trace.h" + +#if !defined(__HNS_TRACE_H__) || defined(LTTNG_UST_TRACEPOINT_HEADER_MULTI_READ) +#define __HNS_TRACE_H__ + +#include +#include + +#define rdma_tracepoint(arg...) lttng_ust_tracepoint(arg) + +#endif /* __HNS_TRACE_H__*/ + +#include + +#else + +#ifndef __HNS_TRACE_H__ +#define __HNS_TRACE_H__ + +#define rdma_tracepoint(arg...) + +#endif /* __HNS_TRACE_H__*/ + +#endif /* defined(LTTNG_ENABLED) */ -- 2.33.0