• Joel Fernandes (Google)'s avatar
    refperf: Add a test to measure performance of read-side synchronization · 653ed64b
    Joel Fernandes (Google) authored
    Add a test for comparing the performance of RCU with various read-side
    synchronization mechanisms. The test has proved useful for collecting
    data and performing these comparisons.
    
    Currently RCU, SRCU, reader-writer lock, reader-writer semaphore and
    reference counting can be measured using refperf.perf_type parameter.
    Each invocation of the test runs measures performance of a specific
    mechanism.
    
    The maximum number of CPUs to concurrently run readers on is chosen by
    the test itself and is 75% of the total number of CPUs. So if you had 24
    CPUs, the test runs with a maximum of 18 parallel readers.
    
    A number of experiments are conducted, and in each experiment, the
    number of readers is increased by 1, upto the 75% of CPUs mark. During
    each experiment, all readers execute an empty loop with refperf.loops
    iterations and time the total loop duration. This is then averaged.
    
    Example output:
    Parameters "refperf.perf_type=srcu refperf.loops=2000000" looks like:
    
    [    3.347133] srcu-ref-perf:
    [    3.347133] Threads  Time(ns)
    [    3.347133] 1        36
    [    3.347133] 2        34
    [    3.347133] 3        34
    [    3.347133] 4        34
    [    3.347133] 5        33
    [    3.347133] 6        33
    [    3.347133] 7        33
    [    3.347133] 8        33
    [    3.347133] 9        33
    [    3.347133] 10       33
    [    3.347133] 11       33
    [    3.347133] 12       33
    [    3.347133] 13       33
    [    3.347133] 14       33
    [    3.347133] 15       32
    [    3.347133] 16       33
    [    3.347133] 17       33
    [    3.347133] 18       34
    Signed-off-by: default avatarJoel Fernandes (Google) <joel@joelfernandes.org>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    653ed64b
refperf.c 12.6 KB