This gives much worse numbers for readers, especially if synchronize_rcu
is made more expensive as is the case with --enable-membarrier. Before:
$ tests/rcutorture 10 stress 10
n_reads: 98304 n_updates: 529 n_mberror: 0
rcu_stress_count: 98302 2 0 0 0 0 0 0 0 0 0
After:
$ tests/rcutorture 10 stress 10
n_reads:
165158482 n_updates: 429 n_mberror: 0
rcu_stress_count:
165154364 4118 0 0 0 0 0 0 0 0 0
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
static void *rcu_read_stress_test(void *arg)
{
int i;
- int itercnt = 0;
struct rcu_stress *p;
int pc;
long long n_reads_local = 0;
}
rcu_stress_local[pc]++;
n_reads_local++;
- if ((++itercnt % 0x1000) == 0) {
- synchronize_rcu();
- }
}
qemu_mutex_lock(&counts_mutex);
n_reads += n_reads_local;