From a332cee843c9ffa72b1db213c82adfd5b6a25d07 Mon Sep 17 00:00:00 2001 From: Jan Michalski Date: Tue, 30 Dec 2025 22:33:00 +0000 Subject: [PATCH] DAOS-18378 dlck: introduce option to enable the standard DAOS log Note: At the moment there is no test or unit test able check this change and the changed files are NOT used by any other part of DAOS hence I skipped all test stages. Sorry. Skip-unit-tests: true Skip-test: true Signed-off-by: Jan Michalski --- src/utils/dlck/dlck_args.h | 2 ++ src/utils/dlck/dlck_args_common.c | 8 ++++++++ src/utils/dlck/dlck_main.c | 11 +++++++++++ 3 files changed, 21 insertions(+) diff --git a/src/utils/dlck/dlck_args.h b/src/utils/dlck/dlck_args.h index 4ea3a6319c1..4cac4865659 100644 --- a/src/utils/dlck/dlck_args.h +++ b/src/utils/dlck/dlck_args.h @@ -26,6 +26,7 @@ /** all short options */ #define KEY_COMMON_OPTIONS 'o' #define KEY_COMMON_WRITE_MODE 'w' +#define KEY_COMMON_VERBOSE 'v' #define KEY_FILES 'f' /** the options below follow the daos_engine options */ #define KEY_ENGINE_NUMA_NODE 'p' @@ -47,6 +48,7 @@ struct dlck_args_common { struct checker_options options; bool write_mode; /** false by default (dry run) */ + bool verbose; /** false by default */ }; /** diff --git a/src/utils/dlck/dlck_args_common.c b/src/utils/dlck/dlck_args_common.c index bc65af4c15a..d11a56239c6 100644 --- a/src/utils/dlck/dlck_args_common.c +++ b/src/utils/dlck/dlck_args_common.c @@ -24,6 +24,10 @@ static struct argp_option args_common_options[] = { LIST_ENTRY(DLCK_OPT_NON_ZERO_PADDING_STR "=EVENT", "Action to take when non-zero padding or reserved fields are detected. EVENT can be " "either 'error' or 'warning'. It is 'error' by default."), + /** this is expected to be necessary only while solving issues with the tool itself so it seems + to fit better with a different group */ + {"verbose", KEY_COMMON_VERBOSE, 0, 0, + "Print DAOS log messages. All standard environment variables apply.", GROUP_AUTOMAGIC}, {0}}; enum dlck_options_values { DLCK_OPT_NON_ZERO_PADDING }; @@ -38,6 +42,7 @@ args_common_init(struct dlck_args_common *args) memset(args, 0, sizeof(*args)); /** set defaults */ args->write_mode = false; /** dry run */ + args->verbose = false; args->options.cko_non_zero_padding = CHECKER_EVENT_WARNING; } @@ -87,6 +92,9 @@ args_common_parser(int key, char *arg, struct argp_state *state) case KEY_COMMON_WRITE_MODE: args->write_mode = true; break; + case KEY_COMMON_VERBOSE: + args->verbose = true; + break; case KEY_COMMON_OPTIONS: rc = args_common_options_parse(arg, &args->options, state); break; diff --git a/src/utils/dlck/dlck_main.c b/src/utils/dlck/dlck_main.c index b75c7981755..01311155847 100644 --- a/src/utils/dlck/dlck_main.c +++ b/src/utils/dlck/dlck_main.c @@ -37,6 +37,13 @@ main(int argc, char *argv[]) dlck_args_parse(argc, argv, &ctrl); + if (ctrl.common.verbose) { + rc = daos_debug_init_ex(DAOS_LOG_DEFAULT, DLOG_ERR); + if (rc != 0) { + goto err_args_free; + } + } + rc_abt = ABT_init(0, NULL); if (rc_abt != ABT_SUCCESS) { rc = dss_abterr2der(rc_abt); @@ -78,6 +85,10 @@ main(int argc, char *argv[]) err_abt_fini: (void)ABT_finalize(); err_args_free: + if (ctrl.common.verbose) { + daos_debug_fini(); + } + dlck_args_free(&ctrl); (void)d_fault_inject_fini();