[LTP PATCH v2 0/5] ftrace: Convert shell tests to C implementation
Praveen K Pandey <[email protected]>
| Newsgroups | gmane.linux.ltp |
|---|---|
| Message-ID | <[email protected]> |
This patch series converts ftrace shell-based tests to C implementation to address GitHub issue #1282. The conversion provides better maintainability, performance, and integration with LTP's C test framework. Changes in v2: - Fixed compilation issues identified during testing - Added TST_NO_DEFAULT_MAIN to ftrace_lib.c to prevent multiple main() definitions - Changed tst_get_tmpdir() to tst_tmpdir_path() (correct LTP API) - Removed tst_test.h from ftrace_lib.h (library headers shouldn't include it) - Added tst_test.h includes to all test files - Replaced SAFE_FPRINTF with SAFE_FILE_PRINTF in ftrace_regression01.c - Removed unused variable in ftrace_stress_test.c - Changed max_runtime to timeout in ftrace_stress_test.c - Removed deprecated [Description] headers from test files - Replaced usleep() with TST_RETRY_FUNC() to comply with LTP Ground Rule 2 - Fixed Makefile: moved dependency rules after generic_leaf_target.mk include - Added FILTER_OUT_MAKE_TARGETS for library object - Changed to per-target LDLIBS for pthread linking - Removed unnecessary INSTALL_TARGETS - Updated runtest/tracing to use C binaries - Removed invalid "Fixes: #1282" tags from all commits - All patches now have proper Signed-off-by tags Summary of changes: - Patch 1: Add common ftrace library (ftrace_lib.c/h) - Patch 2: Convert ftrace_regression01.sh to C - Patch 3: Convert ftrace_regression02.sh to C - Patch 4: Convert 18 ftrace_stress/*.sh scripts to single C implementation - Patch 5: Remove obsolete shell scripts Key improvements: - Multi-threaded stress testing using pthread - Proper LTP API usage (TST_RETRY_FUNC, SAFE_* macros) - Better error handling and resource management - Reduced code duplication through shared library - Compliance with LTP coding standards and ground rules Testing: - All tests compile successfully without warnings - Tests run correctly and produce expected results (PASS/TCONF) - Verified on Power architecture (ppc64le) Praveen K Pandey (5): ftrace: Add common library for C implementation ftrace: Add C implementation of ftrace_regression01 ftrace: Add C implementation of ftrace_regression02 ftrace: Add C implementation of ftrace_stress_test and update build ftrace: Remove obsolete shell scripts from ftrace_stress folder runtest/tracing | 6 +- testcases/kernel/tracing/ftrace_test/Makefile | 19 +- .../kernel/tracing/ftrace_test/ftrace_lib.c | 352 +++++++++++++++++++++ .../kernel/tracing/ftrace_test/ftrace_lib.h | 140 ++++++++ .../tracing/ftrace_test/ftrace_regression01.c | 124 +++++++ .../tracing/ftrace_test/ftrace_regression02.c | 99 ++++++ .../tracing/ftrace_test/ftrace_stress_test.c | 320 ++++++++++++++++++ .../ftrace_stress/ftrace_buffer_size_kb.sh | 44 --- .../ftrace_stress/ftrace_current_tracer.sh | 44 --- .../ftrace_stress/ftrace_ftrace_enabled.sh | 44 --- .../ftrace_function_profile_enabled.sh | 44 --- .../ftrace_test/ftrace_stress/ftrace_set_event.sh | 44 --- .../ftrace_stress/ftrace_set_ftrace_filter.sh | 44 --- .../ftrace_stress/ftrace_set_ftrace_pid.sh | 44 --- .../ftrace_stress/ftrace_stack_max_size.sh | 44 --- .../ftrace_stress/ftrace_stack_trace.sh | 44 --- .../ftrace_test/ftrace_stress/ftrace_trace.sh | 44 --- .../ftrace_stress/ftrace_trace_clock.sh | 44 --- .../ftrace_stress/ftrace_trace_options.sh | 44 --- .../ftrace_stress/ftrace_trace_pipe.sh | 44 --- .../ftrace_stress/ftrace_trace_stat.sh | 44 --- .../ftrace_stress/ftrace_tracing_cpumask.sh | 44 --- .../ftrace_stress/ftrace_tracing_enabled.sh | 44 --- .../ftrace_stress/ftrace_tracing_max_latency.sh | 44 --- .../ftrace_stress/ftrace_tracing_on.sh | 44 --- 25 files changed, 1053 insertions(+), 809 deletions(-) create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_lib.c create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_lib.h create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_regression01.c create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_regression02.c create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_stress_test.c delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_buffer_size_kb.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_current_tracer.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_ftrace_enabled.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_function_profile_enabled.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_event.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_ftrace_filter.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_ftrace_pid.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_max_size.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_trace.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_trace.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_trace_clock.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_trace_options.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_trace_pipe.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_trace_stat.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_cpumask.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_enabled.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_max_latency.sh delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_on.sh -- 2.43.0 -- Mailing list info: https://lists.linux.it/listinfo/ltp