Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proc_image:增加测试脚本及测试代码 #920

Merged
merged 2 commits into from
Oct 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -933,11 +933,6 @@ lttng监测到的结果:

通过lttng以及syscall_image的对比,可以证明我们的syscall_image工具在逻辑上是正确无误的;

其中还有很多细节没有展示,可以在以下几个原始数据中进行对比:

-
-

#### 4.2.2 数据正确性

前面我们已经对syscall-image工具进行了逻辑真确性验证,接下来我们通过对比一些数据来验证数据正确性,这些数据包括:
Expand Down Expand Up @@ -973,10 +968,6 @@ TIME TGID PID 1st/num 2nd/num 3nd/num | P_AV

通过以上数据的对比,我们可以得出结论,syscall_image在数据层面是真实可靠的,他与lttng之间存在0.0000255%的误差,是可以忽略的。

详细的原始数据可在这里查看:

-
-

### 4.3 关键数据点的关联关系

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@

#undef LTTNG_UST_TRACEPOINT_PROVIDER
#define LTTNG_UST_TRACEPOINT_PROVIDER lock_monitor

#undef LTTNG_UST_TRACEPOINT_INCLUDE
#define LTTNG_UST_TRACEPOINT_INCLUDE "/home/xhb/ospp/lock_tracepoint.h"

#if !defined(LOCK_TRACEPOINT_H) || defined(LTTNG_UST_TRACEPOINT_HEADER_MULTI_READ)
#define LOCK_TRACEPOINT_H

#include <lttng/tracepoint.h>

TRACEPOINT_EVENT(
lock_monitor,
mutex_lock_start,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
mutex_lock_acquired,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
mutex_lock_released,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
mutex_trylock_start,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
mutex_trylock_acquired,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
mutex_trylock_failed,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
rwlock_rdlock_start,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
rwlock_rdlock_acquired,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
rwlock_rdlock_released,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)
TRACEPOINT_EVENT(
lock_monitor,
rwlock_rdlock_failed,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
rwlock_wrlock_start,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
rwlock_wrlock_acquired,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
rwlock_wrlock_released,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
rwlock_wrlock_failed,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
spinlock_lock_start,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
spinlock_lock_acquired,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
spinlock_lock_released,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
spinlock_trylock_start,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
spinlock_trylock_acquired,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)

TRACEPOINT_EVENT(
lock_monitor,
spinlock_trylock_failed,
TP_ARGS(int, thread_id, void*, lock_ptr, long long unsigned int, time),
TP_FIELDS(
ctf_integer(int, thread_id, thread_id)
ctf_integer_hex(void*, lock_ptr, lock_ptr)
ctf_integer(long long unsigned int, time, time)
)
)
TRACEPOINT_LOGLEVEL(lock_monitor, mutex_lock_start, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, mutex_lock_acquired, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, mutex_lock_released, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, mutex_trylock_start, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, mutex_trylock_acquired, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, mutex_trylock_failed, TRACE_DEBUG)

TRACEPOINT_LOGLEVEL(lock_monitor, rwlock_rdlock_start, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, rwlock_rdlock_acquired, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, rwlock_rdlock_released, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, rwlock_rdlock_failed, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, rwlock_wrlock_start, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, rwlock_wrlock_acquired, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, rwlock_wrlock_released, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, rwlock_wrlock_failed, TRACE_DEBUG)

TRACEPOINT_LOGLEVEL(lock_monitor, spinlock_lock_start, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, spinlock_lock_acquired, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, spinlock_lock_released, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, spinlock_trylock_start, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, spinlock_trylock_acquired, TRACE_DEBUG)
TRACEPOINT_LOGLEVEL(lock_monitor, spinlock_trylock_failed, TRACE_DEBUG)


#endif /* LOCK_TRACEPOINT_H */

#include <lttng/tracepoint-event.h>
Loading
Loading