Message ID | 20210319091837.27319-8-rpalethorpe@suse.com |
---|---|
State | Superseded |
Headers | show |
Series | Fuzzy Sync single core support and tests | expand |
Hi!
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
The patchset that fixes fuzzy sync on single CPU seems to be good to go,
I will have a look at the self tests now.
static void tst_fzsync_pair_init(struct tst_fzsync_pair *pair) > { > + long ncpus = tst_ncpus_available(); > + > CHK(avg_alpha, 0, 1, 0.25); > CHK(min_samples, 20, INT_MAX, 1024); > CHK(max_dev_ratio, 0, 1, 0.1); > CHK(exec_time_p, 0, 1, 0.5); > CHK(exec_loops, 20, INT_MAX, 3000000); > - CHK(yield_in_wait, 0, 1, (tst_ncpus() <= 1)); > + > + if (ncpus <= 1) > + pair->yield_in_wait = 1; > I'm wondering here why not using the CHK macro as before but additionally involved a variable 'ncpus'. Isn't that CHK(yield_in_wait, 0, 1, (tst_ncpus_available() <= 1)) better?
Hello Li, Li Wang <liwang@redhat.com> writes: > static void tst_fzsync_pair_init(struct tst_fzsync_pair *pair) >> { >> + long ncpus = tst_ncpus_available(); >> + >> CHK(avg_alpha, 0, 1, 0.25); >> CHK(min_samples, 20, INT_MAX, 1024); >> CHK(max_dev_ratio, 0, 1, 0.1); >> CHK(exec_time_p, 0, 1, 0.5); >> CHK(exec_loops, 20, INT_MAX, 3000000); >> - CHK(yield_in_wait, 0, 1, (tst_ncpus() <= 1)); >> + >> + if (ncpus <= 1) >> + pair->yield_in_wait = 1; >> > > I'm wondering here why not using the CHK macro as before but additionally > involved a variable 'ncpus'. > > Isn't that CHK(yield_in_wait, 0, 1, (tst_ncpus_available() <= 1)) better? The macro generates compiler warnings because yield_in_wait is bool and so it is always inside the valid range unless (ncpus <= 1). However I should remove the useless variable.
diff --git a/include/tst_fuzzy_sync.h b/include/tst_fuzzy_sync.h index 36a604e13..e38b56e5e 100644 --- a/include/tst_fuzzy_sync.h +++ b/include/tst_fuzzy_sync.h @@ -61,7 +61,6 @@ #include <math.h> #include <pthread.h> -#include <sched.h> #include <stdbool.h> #include <stdlib.h> #include <sys/time.h> @@ -213,12 +212,16 @@ struct tst_fzsync_pair { */ static void tst_fzsync_pair_init(struct tst_fzsync_pair *pair) { + long ncpus = tst_ncpus_available(); + CHK(avg_alpha, 0, 1, 0.25); CHK(min_samples, 20, INT_MAX, 1024); CHK(max_dev_ratio, 0, 1, 0.1); CHK(exec_time_p, 0, 1, 0.5); CHK(exec_loops, 20, INT_MAX, 3000000); - CHK(yield_in_wait, 0, 1, (tst_ncpus() <= 1)); + + if (ncpus <= 1) + pair->yield_in_wait = 1; } #undef CHK