diff --git a/include/common/test_helpers.h b/include/common/test_helpers.h
index 40cc96f..c51c785 100644
--- a/include/common/test_helpers.h
+++ b/include/common/test_helpers.h
@@ -429,4 +429,15 @@
  * RXTX buffers.
  */
 bool mailbox_init(struct mailbox_buffers mb);
+/*
+ * Utility function to wait for all CPUs other than the caller to be
+ * OFF.
+ */
+void wait_for_non_lead_cpus(void);
+
+/*
+ * Utility function to wait for a given CPU other than the caller to be
+ * OFF.
+ */
+void wait_for_core_to_turn_off(unsigned int mpidr);
 #endif /* __TEST_HELPERS_H__ */
diff --git a/tftf/tests/common/test_helpers.c b/tftf/tests/common/test_helpers.c
index 6b966da..f499579 100644
--- a/tftf/tests/common/test_helpers.c
+++ b/tftf/tests/common/test_helpers.c
@@ -275,3 +275,27 @@
 	return true;
 }
 
+/*
+ * Utility function to wait for all CPUs other than the caller to be
+ * OFF.
+ */
+void wait_for_non_lead_cpus(void)
+{
+	unsigned int target_mpid, target_node;
+
+	for_each_cpu(target_node) {
+		target_mpid = tftf_get_mpidr_from_node(target_node);
+		wait_for_core_to_turn_off(target_mpid);
+	}
+}
+
+void wait_for_core_to_turn_off(unsigned int mpidr)
+{
+	/* Skip lead CPU, as it is powered on */
+	if (mpidr == (read_mpidr_el1() & MPID_MASK))
+		return;
+
+	while (tftf_psci_affinity_info(mpidr, MPIDR_AFFLVL0) != PSCI_STATE_OFF) {
+		continue;
+	}
+}
diff --git a/tftf/tests/performance_tests/test_psci_latencies.c b/tftf/tests/performance_tests/test_psci_latencies.c
index 8a7a1d0..b20fe88 100644
--- a/tftf/tests/performance_tests/test_psci_latencies.c
+++ b/tftf/tests/performance_tests/test_psci_latencies.c
@@ -34,27 +34,6 @@
  */
 #define BASELINE_VARIANCE	10
 
-/*
- * Utility function to wait for all CPUs other than the caller to be
- * OFF.
- */
-static void wait_for_non_lead_cpus(void)
-{
-	unsigned int lead_mpid = read_mpidr_el1() & MPID_MASK;
-	unsigned int target_mpid, target_node;
-
-	for_each_cpu(target_node) {
-		target_mpid = tftf_get_mpidr_from_node(target_node);
-		/* Skip lead CPU, as it is powered on */
-		if (target_mpid == lead_mpid)
-			continue;
-
-		while (tftf_psci_affinity_info(target_mpid, MPIDR_AFFLVL0)
-				!= PSCI_STATE_OFF)
-			;
-	}
-}
-
 static test_result_t test_target_function(void)
 {
 	tftf_send_event(&target_booted);
diff --git a/tftf/tests/runtime_services/standard_service/psci/system_tests/test_psci_on_off_suspend_stress.c b/tftf/tests/runtime_services/standard_service/psci/system_tests/test_psci_on_off_suspend_stress.c
index 99f6854..58ece71 100644
--- a/tftf/tests/runtime_services/standard_service/psci/system_tests/test_psci_on_off_suspend_stress.c
+++ b/tftf/tests/runtime_services/standard_service/psci/system_tests/test_psci_on_off_suspend_stress.c
@@ -47,27 +47,6 @@
 static test_result_t secondary_cpu_on_race_test(void);
 
 /*
- * Utility function to wait for all CPUs other than the caller to be
- * OFF.
- */
-static void wait_for_non_lead_cpus(void)
-{
-	unsigned int lead_mpid = read_mpidr_el1() & MPID_MASK;
-	unsigned int target_mpid, target_node;
-
-	for_each_cpu(target_node) {
-		target_mpid = tftf_get_mpidr_from_node(target_node);
-		/* Skip lead CPU, as it is powered on */
-		if (target_mpid == lead_mpid)
-			continue;
-
-		while (tftf_psci_affinity_info(target_mpid, MPIDR_AFFLVL0)
-				!= PSCI_STATE_OFF)
-			;
-	}
-}
-
-/*
  * Update per-cpu counter corresponding to the current CPU.
  * This function updates 2 counters, one in normal memory and the other
  * in coherent device memory. The counts are then compared to check if they
