perf_event_open_llc_miss() calls ctrlc_handler() to cleanup if
perf_event_open() returns an error. Those cleanups, however, are not
the responsibility of perf_event_open_llc_miss() and it thus interferes
unnecessarily with the usual cleanup pattern. Worse yet,
ctrlc_handler() calls exit() in the end preventing the ordinary cleanup
done in the calling function from executing.

ctrlc_handler() should only be used as a signal handler, not during
normal error handling.

Remove call to ctrlc_handler() from perf_event_open_llc_miss(). As
unmounting resctrlfs and test cleanup are already handled properly
by error rollbacks in the calling functions, no other changes are
necessary.

Suggested-by: Reinette Chatre <reinette.cha...@intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvi...@linux.intel.com>
Reviewed-by: Reinette Chatre <reinette.cha...@intel.com>
---

v3:
- Corrected typo in the changelog
---
 tools/testing/selftests/resctrl/cache.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tools/testing/selftests/resctrl/cache.c 
b/tools/testing/selftests/resctrl/cache.c
index 1fa4b86e1459..6d60a2f1b3aa 100644
--- a/tools/testing/selftests/resctrl/cache.c
+++ b/tools/testing/selftests/resctrl/cache.c
@@ -41,7 +41,6 @@ static int perf_event_open_llc_miss(pid_t pid, int cpu_no)
                                PERF_FLAG_FD_CLOEXEC);
        if (fd_lm == -1) {
                ksft_perror("Error opening leader");
-               ctrlc_handler(0, NULL, NULL);
                return -1;
        }
 
-- 
2.30.2


Reply via email to