Add support for LTTng tracing. For now it is used for post_send, post_recv and poll_cq. Signed-off-by: Xinghai Cen <cenxinghai@h-partners.com> (cherry picked from commit 76d4645e3b8a9e57b723e3f7297bda62e934d6f2)
113 lines
3.1 KiB
Diff
113 lines
3.1 KiB
Diff
From dfcef98e85b947dd38738436c769926f66438a7d Mon Sep 17 00:00:00 2001
|
|
From: wenglianfa <wenglianfa@huawei.com>
|
|
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 <wenglianfa@huawei.com>
|
|
Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
|
|
Signed-off-by: Xinghai Cen <cenxinghai@h-partners.com>
|
|
---
|
|
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 <lttng/tracepoint.h>
|
|
+#include <infiniband/verbs.h>
|
|
+
|
|
+#define rdma_tracepoint(arg...) lttng_ust_tracepoint(arg)
|
|
+
|
|
+#endif /* __HNS_TRACE_H__*/
|
|
+
|
|
+#include <lttng/tracepoint-event.h>
|
|
+
|
|
+#else
|
|
+
|
|
+#ifndef __HNS_TRACE_H__
|
|
+#define __HNS_TRACE_H__
|
|
+
|
|
+#define rdma_tracepoint(arg...)
|
|
+
|
|
+#endif /* __HNS_TRACE_H__*/
|
|
+
|
|
+#endif /* defined(LTTNG_ENABLED) */
|
|
--
|
|
2.33.0
|
|
|