[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
- Re: [Qemu-devel] [PATCH 1/8] tls: require compiler support for __thread, (continued)
[Qemu-devel] [PATCH 2/8] rcu: add rcu library, Paolo Bonzini, 2015/01/13
[Qemu-devel] [PATCH 6/8] memory: remove assertion on memory_region_destroy, Paolo Bonzini, 2015/01/13
[Qemu-devel] [PATCH 5/8] rcu: add call_rcu, Paolo Bonzini, 2015/01/13
[Qemu-devel] [PATCH 3/8] rcu: add rcutorture, Paolo Bonzini, 2015/01/13
[Qemu-devel] [PATCH 7/8] memory: protect current_map by RCU, Paolo Bonzini, 2015/01/13
[Qemu-devel] [PATCH 8/8] memory: avoid ref/unref in memory_region_find, Paolo Bonzini, 2015/01/13
[Qemu-devel] [PATCH 4/8] rcu: allow nesting of rcu_read_lock/rcu_read_unlock, Paolo Bonzini, 2015/01/13
Re: [Qemu-devel] [PATCH 0/8] RCUification of the memory API, part 1, Christian Borntraeger, 2015/01/16