qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 3/8] rcu: add rcutorture


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH 3/8] rcu: add rcutorture
Date: Fri, 16 Jan 2015 12:22:29 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0


On 16/01/2015 03:04, Fam Zheng wrote:
> 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?

Nothing really.  I guess long tests could be made optional (-m slow).

>> +        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?

More like don't remove it in patch 3. ;)

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]