• Davidlohr Bueso's avatar
    perf bench futex: Support parallel waker threads · d65817b4
    Davidlohr Bueso authored
    The futex-wake benchmark only measures wakeups done within a single
    process. While this has value in its own, it does not really generate
    any hb->lock contention.
    
    A new benchmark 'wake-parallel' is added, by extending the futex-wake
    code such that we can measure parallel waker threads. The program output
    shows the avg per-thread latency in order to complete its share of
    wakeups:
    
    Run summary [PID 13474]: blocking on 512 threads (at [private] futex 0xa88668), 8 threads waking up 64 at a time.
    
    [Run 1]: Avg per-thread latency (waking 64/512 threads) in 0.6230 ms (+-15.31%)
    [Run 2]: Avg per-thread latency (waking 64/512 threads) in 0.5175 ms (+-29.95%)
    [Run 3]: Avg per-thread latency (waking 64/512 threads) in 0.7578 ms (+-18.03%)
    [Run 4]: Avg per-thread latency (waking 64/512 threads) in 0.8944 ms (+-12.54%)
    [Run 5]: Avg per-thread latency (waking 64/512 threads) in 1.1204 ms (+-23.85%)
    Avg per-thread latency (waking 64/512 threads) in 0.7826 ms (+-9.91%)
    
    Naturally, different combinations of numbers of blocking and waker
    threads will exhibit different information.
    Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Davidlohr Bueso <dbueso@suse.de>
    Link: http://lkml.kernel.org/r/1431110280-20231-1-git-send-email-dave@stgolabs.netSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    d65817b4
Build 308 Bytes