On Fri, 2025-11-21 at 19:44 +0200, Costa Shulyupin wrote:
> Argument parsing functions are the longest functions of the project:
>
> lizard --warnings_only --sort nloc -L100 | head -n 4
> ./src/timerlat_hist.c:766: warning: timerlat_hist_parse_args has 247 NLOC, 76 CCN, 1579 token, 1 PARAM, 287 length, 0 ND
> ./src/timerlat_top.c:538: warning: timerlat_top_parse_args has 217 NLOC, 64 CCN, 1338 token, 2 PARAM, 262 length, 0 ND
> ./src/osnoise_hist.c:469: warning: osnoise_hist_parse_args has 195 NLOC, 56 CCN, 1225 token, 1 PARAM, 216 length, 0 ND
> ./src/osnoise_top.c:322: warning: osnoise_top_parse_args has 169 NLOC, 46 CCN, 1019 token, 2 PARAM, 191 length, 0 ND
>
> Moreover, they contain a lot of duplicate code and growing.
>
> Refactor these functions to reduce code duplication.
>
> Benefits:
> - Single implementation for common options
> - Easier maintenance and consistent behavior
>
> Costa Shulyupin (8):
> tools/rtla: Add common_parse_options()
> tools/rtla: Consolidate -c/--cpus option parsing
> tools/rtla: Consolidate -C/--cgroup option parsing
> tools/rtla: Consolidate -D/--debug option parsing
> tools/rtla: Consolidate -d/--duration option parsing
> tools/rtla: Consolidate -e/--event option parsing
> tools/rtla: Consolidate -P/--priority option parsing
> tools/rtla: Consolidate -H/--house-keeping option parsing
>
> tools/tracing/rtla/src/common.c | 78 ++++++++++++++++++++++++++
> tools/tracing/rtla/src/common.h | 1 +
> tools/tracing/rtla/src/osnoise_hist.c | 53 ++---------------
> tools/tracing/rtla/src/osnoise_top.c | 53 ++---------------
> tools/tracing/rtla/src/timerlat_hist.c | 53 ++---------------
> tools/tracing/rtla/src/timerlat_top.c | 52 ++---------------
> 6 files changed, 95 insertions(+), 195 deletions(-)
Reviewed-by: Crystal Wood <crwood@redhat.com>
-Crystal