On Tue, 01/13 18:52, Paolo Bonzini wrote: > +int main(int argc, char *argv[]) > +{ > + int nreaders = 1; > + int duration = 1; > + > + if (argc >= 2 && argv[1][0] == '-') { > + g_test_init(&argc, &argv, NULL); > + g_test_add_func("/rcu/torture/short/1reader", gtest_stress_1_1); > + g_test_add_func("/rcu/torture/short/10readers", gtest_stress_10_1); > + g_test_add_func("/rcu/torture/long/1reader", gtest_stress_1_5); > + g_test_add_func("/rcu/torture/long/10readers", gtest_stress_10_5);
Why do we need short tests when we have long tests? What are different other than the durations? > + return g_test_run(); > + } > + > + if (argc >= 2) { > + nreaders = strtoul(argv[1], NULL, 0); > + } > + if (argc > 3) { > + duration = strtoul(argv[3], NULL, 0); > + } > + if (argc < 3 || strcmp(argv[2], "stress") == 0) { > + stresstest(nreaders, duration); > + } else if (strcmp(argv[2], "rperf") == 0) { > + rperftest(nreaders, duration); > + } else if (strcmp(argv[2], "uperf") == 0) { > + uperftest(nreaders, duration); > + } else if (strcmp(argv[2], "perf") == 0) { > + perftest(nreaders, duration); > + } > + usage(argc, argv); > + return 0; > +} > diff --git a/util/rcu.c b/util/rcu.c > index f8f52ae..8df16d9 100644 > --- a/util/rcu.c > +++ b/util/rcu.c > @@ -169,5 +169,4 @@ static void __attribute__((__constructor__)) > rcu_init(void) > { > qemu_mutex_init(&rcu_gp_lock); > qemu_event_init(&rcu_gp_event, true); > - rcu_register_thread(); Maybe don't add this line in patch 2? Fam