Message ID | 20221024113445.1022147-10-wei.w.wang@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM selftests code consolidation and cleanup | expand |
On Mon, Oct 24, 2022, Wei Wang wrote: > Remove the unnecessary definition of array of the vcpu pointers and > re-use the one from the kvm_vm struct (i.e. vm->vcpus[]). Use the helper > function to create the time stealing thread with name. One thing per patch. > Also add a check of the pthread_join return value. > > Signed-off-by: Wei Wang <wei.w.wang@intel.com> > --- > tools/testing/selftests/kvm/steal_time.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/tools/testing/selftests/kvm/steal_time.c b/tools/testing/selftests/kvm/steal_time.c > index db8967f1a17b..857ed2c073fc 100644 > --- a/tools/testing/selftests/kvm/steal_time.c > +++ b/tools/testing/selftests/kvm/steal_time.c > @@ -8,7 +8,6 @@ > #include <stdio.h> > #include <time.h> > #include <sched.h> > -#include <pthread.h> > #include <linux/kernel.h> > #include <asm/kvm.h> > #include <asm/kvm_para.h> > @@ -241,7 +240,7 @@ static void run_vcpu(struct kvm_vcpu *vcpu) > > int main(int ac, char **av) > { > - struct kvm_vcpu *vcpus[NR_VCPUS]; > + struct kvm_vcpu **vcpus; > struct kvm_vm *vm; > pthread_attr_t attr; > pthread_t thread; > @@ -250,7 +249,7 @@ int main(int ac, char **av) > long stolen_time; > long run_delay; > bool verbose; > - int i; > + int i, r; > > verbose = ac > 1 && (!strncmp(av[1], "-v", 3) || !strncmp(av[1], "--verbose", 10)); > > @@ -262,7 +261,8 @@ int main(int ac, char **av) > pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset); > > /* Create a VM and an identity mapped memslot for the steal time structure */ > - vm = vm_create_with_vcpus(NR_VCPUS, guest_code, vcpus); > + vm = vm_create_with_vcpus(NR_VCPUS, guest_code, NULL); > + vcpus = vm->vcpus; Just use vm->vcpus directly and drop the local variable, it's not that much more churn and this looks quite odd.
diff --git a/tools/testing/selftests/kvm/steal_time.c b/tools/testing/selftests/kvm/steal_time.c index db8967f1a17b..857ed2c073fc 100644 --- a/tools/testing/selftests/kvm/steal_time.c +++ b/tools/testing/selftests/kvm/steal_time.c @@ -8,7 +8,6 @@ #include <stdio.h> #include <time.h> #include <sched.h> -#include <pthread.h> #include <linux/kernel.h> #include <asm/kvm.h> #include <asm/kvm_para.h> @@ -241,7 +240,7 @@ static void run_vcpu(struct kvm_vcpu *vcpu) int main(int ac, char **av) { - struct kvm_vcpu *vcpus[NR_VCPUS]; + struct kvm_vcpu **vcpus; struct kvm_vm *vm; pthread_attr_t attr; pthread_t thread; @@ -250,7 +249,7 @@ int main(int ac, char **av) long stolen_time; long run_delay; bool verbose; - int i; + int i, r; verbose = ac > 1 && (!strncmp(av[1], "-v", 3) || !strncmp(av[1], "--verbose", 10)); @@ -262,7 +261,8 @@ int main(int ac, char **av) pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset); /* Create a VM and an identity mapped memslot for the steal time structure */ - vm = vm_create_with_vcpus(NR_VCPUS, guest_code, vcpus); + vm = vm_create_with_vcpus(NR_VCPUS, guest_code, NULL); + vcpus = vm->vcpus; gpages = vm_calc_num_guest_pages(VM_MODE_DEFAULT, STEAL_TIME_SIZE * NR_VCPUS); vm_userspace_mem_region_add(vm, VM_MEM_SRC_ANONYMOUS, ST_GPA_BASE, 1, gpages, 0); virt_map(vm, ST_GPA_BASE, ST_GPA_BASE, gpages); @@ -290,11 +290,14 @@ int main(int ac, char **av) /* Steal time from the VCPU. The steal time thread has the same CPU affinity as the VCPUs. */ run_delay = get_run_delay(); - pthread_create(&thread, &attr, do_steal_time, NULL); + __pthread_create_with_name(&thread, &attr, + do_steal_time, NULL, "steal-time"); do sched_yield(); while (get_run_delay() - run_delay < MIN_RUN_DELAY_NS); - pthread_join(thread, NULL); + r = pthread_join(thread, NULL); + TEST_ASSERT(!r, "failed to join the time stealing thread"); + run_delay = get_run_delay() - run_delay; TEST_ASSERT(run_delay >= MIN_RUN_DELAY_NS, "Expected run_delay >= %ld, got %ld",
Remove the unnecessary definition of array of the vcpu pointers and re-use the one from the kvm_vm struct (i.e. vm->vcpus[]). Use the helper function to create the time stealing thread with name. Also add a check of the pthread_join return value. Signed-off-by: Wei Wang <wei.w.wang@intel.com> --- tools/testing/selftests/kvm/steal_time.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-)