KVM: selftests: Drop unreachable, dead code from hardware disable test

Drop all of the code that is unreachable in the hardware disable test, as
it adds a lot of noise that makes the test seem far more complicated than
it actually is.

Link: https://patch.msgid.link/20260731195612.2697986-8-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
Sean Christopherson 2026-07-31 12:56:07 -07:00
parent 563416ea9a
commit bb0e7d84c4

View File

@ -15,6 +15,7 @@
#include <test_util.h>
#include "kvm_util.h"
#include "ucall_common.h"
#define VCPU_NUM 4
#define SLEEPING_THREAD_NUM (1 << 4)
@ -28,7 +29,7 @@ static void guest_code(void)
{
for (;;)
; /* Some busy work */
printf("Should not be reached.\n");
GUEST_ASSERT(0);
}
static void *run_vcpu(void *arg)
@ -42,10 +43,8 @@ static void *run_vcpu(void *arg)
vcpu_run(vcpu);
TEST_ASSERT(false, "%s: exited with reason %d: %s",
__func__, run->exit_reason,
exit_reason_str(run->exit_reason));
pthread_exit(NULL);
TEST_FAIL("vCPU%d exited with reason %d: %s",
vcpu->id, run->exit_reason, exit_reason_str(run->exit_reason));
}
static void *sleeping_thread(void *arg)
@ -56,12 +55,11 @@ static void *sleeping_thread(void *arg)
kvm_sched_setaffinity(0, sizeof(cpu_set_t), &threads_cpu_set);
#endif
while (true) {
while (1) {
fd = open("/dev/null", O_RDWR);
close(fd);
}
TEST_ASSERT(false, "%s: exited", __func__);
pthread_exit(NULL);
TEST_FAIL("%s: exited", __func__);
}
static inline void check_create_thread(pthread_t *thread, pthread_attr_t *attr,
@ -73,22 +71,12 @@ static inline void check_create_thread(pthread_t *thread, pthread_attr_t *attr,
TEST_ASSERT(r == 0, "%s: failed to create thread", __func__);
}
static inline void check_join(pthread_t thread, void **retval)
{
int r;
r = pthread_join(thread, retval);
TEST_ASSERT(r == 0, "%s: failed to join thread", __func__);
}
static void run_test(u32 run)
{
struct kvm_vcpu *vcpu;
pthread_attr_t attr;
struct kvm_vm *vm;
pthread_t threads[VCPU_NUM];
pthread_t throw_away;
void *b;
pthread_t thread;
u32 i, j;
TEST_ASSERT_EQ(pthread_attr_init(&attr), 0);
@ -102,19 +90,18 @@ static void run_test(u32 run)
for (i = 0; i < VCPU_NUM; ++i) {
vcpu = vm_vcpu_add(vm, i, guest_code);
check_create_thread(&threads[i], &attr, run_vcpu, vcpu);
check_create_thread(&thread, &attr, run_vcpu, vcpu);
for (j = 0; j < SLEEPING_THREAD_NUM; ++j) {
check_create_thread(&throw_away, &attr, sleeping_thread,
for (j = 0; j < SLEEPING_THREAD_NUM; ++j)
check_create_thread(&thread, &attr, sleeping_thread,
(void *)NULL);
}
}
pr_debug("%s: [%d] all threads launched\n", __func__, run);
sem_post(sem);
for (i = 0; i < VCPU_NUM; ++i)
check_join(threads[i], &b);
/* Should not be reached */
TEST_ASSERT(false, "%s: [%d] child escaped the ninja", __func__, run);
/* Wait for the parent to SIGKILL this child. */
while (1)
pause();
}
void wait_for_child_setup(pid_t pid)