Using linked list when open/close perf event.

Signed-off-by: Yifan Wu <[email protected]>
---
 tools/testing/selftests/resctrl/resctrl_val.c | 29 ++++++++++---------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/tools/testing/selftests/resctrl/resctrl_val.c 
b/tools/testing/selftests/resctrl/resctrl_val.c
index ce675d349a6e..ce5f96d5457c 100644
--- a/tools/testing/selftests/resctrl/resctrl_val.c
+++ b/tools/testing/selftests/resctrl/resctrl_val.c
@@ -93,15 +93,15 @@ static void get_read_event_and_umask(char *cas_count_cfg, 
struct imc_counter_con
        }
 }
 
-static int open_perf_read_event(int i, int cpu_no)
+static int open_perf_read_event(int cpu_no, struct imc_counter_config 
*imc_counter)
 {
-       imc_counters_config[i].fd =
-               perf_event_open(&imc_counters_config[i].pe, -1, cpu_no, -1,
+       imc_counter->fd =
+               perf_event_open(&imc_counter->pe, -1, cpu_no, -1,
                                PERF_FLAG_FD_CLOEXEC);
 
-       if (imc_counters_config[i].fd == -1) {
+       if (imc_counter->fd == -1) {
                fprintf(stderr, "Error opening leader %llx\n",
-                       imc_counters_config[i].pe.config);
+                       imc_counter->pe.config);
 
                return -1;
        }
@@ -318,11 +318,11 @@ void cleanup_read_mem_bw_imc(void)
 
 static void perf_close_imc_read_mem_bw(void)
 {
-       int mc;
+       struct imc_counter_config *imc_counter;
 
-       for (mc = 0; mc < imcs; mc++) {
-               if (imc_counters_config[mc].fd != -1)
-                       close(imc_counters_config[mc].fd);
+       list_for_each_entry(imc_counter, &imc_counters_list, entry) {
+               if (imc_counter->fd != -1)
+                       close(imc_counter->fd);
        }
 }
 
@@ -334,13 +334,14 @@ static void perf_close_imc_read_mem_bw(void)
  */
 static int perf_open_imc_read_mem_bw(int cpu_no)
 {
-       int imc, ret;
+       struct imc_counter_config *imc_counter;
+       int ret;
 
-       for (imc = 0; imc < imcs; imc++)
-               imc_counters_config[imc].fd = -1;
+       list_for_each_entry(imc_counter, &imc_counters_list, entry)
+               imc_counter->fd = -1;
 
-       for (imc = 0; imc < imcs; imc++) {
-               ret = open_perf_read_event(imc, cpu_no);
+       list_for_each_entry(imc_counter, &imc_counters_list, entry) {
+               ret = open_perf_read_event(cpu_no, imc_counter);
                if (ret)
                        goto close_fds;
        }
-- 
2.43.0


Reply via email to