Re: [PATCH v2 2/3] selftests/resctrl: Simplify cleanup in ctrl-c handler

From: Ilpo Järvinen
Date: Thu Feb 22 2024 - 05:14:41 EST


On Thu, 22 Feb 2024, Ilpo Järvinen wrote:

> On Thu, 22 Feb 2024, Maciej Wieczor-Retman wrote:
>
> > Ctrl-c handler isn't aware of what test is currently running. Because of
> > that it executes all cleanups even if they aren't necessary. Since the
> > ctrl-c handler uses the sa_sigaction system no parameters can be passed
> > to it as function arguments.
> >
> > Add a global variable to make ctrl-c handler aware of the currently run
> > test and only execute the correct cleanup callback.
> >
> > Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@xxxxxxxxx>
> > ---

> > diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c
> > index 5a49f07a6c85..d572815436f3 100644
> > --- a/tools/testing/selftests/resctrl/resctrl_val.c
> > +++ b/tools/testing/selftests/resctrl/resctrl_val.c
> > @@ -62,6 +62,7 @@ struct imc_counter_config {
> > static char mbm_total_path[1024];
> > static int imcs;
> > static struct imc_counter_config imc_counters_config[MAX_IMCS][2];
> > +const struct resctrl_test *current_test;
>
> static const struct
>
> > void membw_initialize_perf_event_attr(int i, int j)
> > {
> > @@ -472,7 +473,7 @@ void ctrlc_handler(int signum, siginfo_t *info, void *ptr)
> > if (bm_pid)
> > kill(bm_pid, SIGKILL);
> > umount_resctrlfs();
> > - tests_cleanup();
> > + current_test->cleanup();
>
> These calls should have if (current_test->cleanup()) guard. Isn't the

Err, if (current_test->cleanup) is what I meant.

> non-contiguous already test w/o the cleanup function?
>
> Other than those two, this looked okay.

--
i.