diff --git a/Makefile b/Makefile
index bccca31..9279a00 100644
--- a/Makefile
+++ b/Makefile
@@ -198,7 +198,7 @@
 KUT_ROOTFS_IMAGE := $(ROOT_DIR)/prebuilts/linux-aarch64/images/rootfs.ext4
 
 # Exclude tests that require user interaction or are known to fail.
-KUT_EXCLUDE := "(.+migrat.+)|(pmu-event-introspection)"
+KUT_EXCLUDE := "(.+migrat.+)|(gicv2-.+)|(pmu-event-introspection)|(micro-bench)"
 
 .PHONY: test
 test: kvmunittests linux_image
diff --git a/aarch64-unit-tests/run_tests.sh b/aarch64-unit-tests/run_tests.sh
index 3d6090d..423b79f 100755
--- a/aarch64-unit-tests/run_tests.sh
+++ b/aarch64-unit-tests/run_tests.sh
@@ -19,14 +19,16 @@
 VHE=1
 NVHE=0
 
-function get_qemu_binary()
-{
-    local qemu=${QEMU:-qemu-system-aarch64}
-
-    if $qemu --help 2>/dev/null | grep -q 'QEMU'; then
-        command -v "${qemu}"
-    fi
-}
+exit_status=0
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+test_dir=""
+log_dir=${LOG_DIR:-out/test/kvm-unit-tests}
+exclude_regex=""
+j=1
+linux=""
+rootfs=""
+verbose=${VERBOSE:-0}
+qemu=${QEMU:-qemu-system-aarch64}
 
 function get_outcome()
 {
@@ -56,35 +58,33 @@
     exit 1
 }
 
+function wait_free_job_slots()
+{
+	while (( $(jobs | wc -l) == j )); do
+		# Wait for enough jobs to finish
+		wait -n || exit_status=1
+	done
+}
+
+function wait_background_jobs()
+{
+	while (( $(jobs | wc -l) > 0 )); do
+		# Wait for background jobs
+		wait -n || exit_status=1
+	done
+}
+
 function run_job()
 {
-	local job="$1"
-	if [ -z "$job" ]; then
-		return
-	fi
-
-	while (( $(jobs | wc -l) == j )); do
-		# Wait for background jobs
-		wait -n 2>/dev/null
-	done
+        wait_free_job_slots
 
 	if [ "$j" = 1 ]; then
-		bash -c "$@"
+		bash -c "$@" || exit_status=1
 	else
 		bash -c "$@" &
 	fi
 }
 
-script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-test_dir=""
-log_dir=${LOG_DIR:-out/test/kvm-unit-tests}
-exclude_regex=""
-j=1
-linux=""
-rootfs=""
-verbose=${VERBOSE:-0}
-qemu=$(get_qemu_binary)
-
 while getopts ":t:x:j:l:r:e:hv" opt; do
     case "${opt}" in
         t)
@@ -171,4 +171,7 @@
     run_job "${script_dir}/run_emu.sh ${test} ${linux} ${rootfs} ${qemu} ${VHE} ${log_dir}/logs/vhe/${test_name}.log \"${test_name} (vhe)\" &> >(tail -1)"
     run_job "${script_dir}/run_emu.sh ${test} ${linux} ${rootfs} ${qemu} ${NVHE} ${log_dir}/logs/nvhe/${test_name}.log \"${test_name} (nvhe)\" &> >(tail -1)"
 done
-wait
+
+wait_background_jobs
+
+exit $exit_status
