1. 14 3月, 2014 3 次提交
    • D
      perf bench: Add futex-requeue microbenchmark · 0fb298cf
      Davidlohr Bueso 提交于
      Block a bunch of threads on a futex and requeue them on another, N at a
      time.
      
      This program is particularly useful to measure the latency of nthread
      requeues without waking up any tasks -- thus mimicking a regular
      futex_wait.
      
      An example run:
      
        $ perf bench futex requeue -r 100 -t 64
        Run summary [PID 151011]: Requeuing 64 threads (from 0x7d15c4 to 0x7d15c8), 1 at a time.
      
        [Run 1]: Requeued 64 of 64 threads in 0.0400 ms
        [Run 2]: Requeued 64 of 64 threads in 0.0390 ms
        [Run 3]: Requeued 64 of 64 threads in 0.0400 ms
        ...
        [Run 100]: Requeued 64 of 64 threads in 0.0390 ms
        Requeued 64 of 64 threads in 0.0399 ms (+-0.37%)
      Signed-off-by: NDavidlohr Bueso <davidlohr@hp.com>
      Acked-by: NDarren Hart <dvhart@linux.intel.com>
      Cc: Aswin Chandramouleeswaran <aswin@hp.com>
      Cc: Darren Hart <dvhart@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jason Low <jason.low2@hp.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Scott J Norton <scott.norton@hp.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Waiman Long <Waiman.Long@hp.com>
      Link: http://lkml.kernel.org/r/1387081917-9102-4-git-send-email-davidlohr@hp.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      0fb298cf
    • D
      perf bench: Add futex-wake microbenchmark · 27db7830
      Davidlohr Bueso 提交于
      Block a bunch of threads on a futex and wake them up, N at a time.
      
      This program is particularly useful to measure the latency of nthread
      wakeups in non-error situations:  all waiters are queued and all wake
      calls wakeup one or more tasks.
      
      An example run:
      
        $ perf bench futex wake -t 512 -r 100
        Run summary [PID 27823]: blocking on 512 threads (at futex 0x7e10d4), waking up 1 at a time.
      
        [Run 1]: Wokeup 512 of 512 threads in 6.0080 ms
        [Run 2]: Wokeup 512 of 512 threads in 5.2280 ms
        [Run 3]: Wokeup 512 of 512 threads in 4.8300 ms
        ...
        [Run 100]: Wokeup 512 of 512 threads in 5.0100 ms
        Wokeup 512 of 512 threads in 5.0109 ms (+-2.25%)
      Signed-off-by: NDavidlohr Bueso <davidlohr@hp.com>
      Acked-by: NDarren Hart <dvhart@linux.intel.com>
      Cc: Aswin Chandramouleeswaran <aswin@hp.com>
      Cc: Darren Hart <dvhart@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jason Low <jason.low2@hp.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Scott J Norton <scott.norton@hp.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Waiman Long <Waiman.Long@hp.com>
      Link: http://lkml.kernel.org/r/1387081917-9102-3-git-send-email-davidlohr@hp.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      27db7830
    • D
      perf bench: Add futex-hash microbenchmark · a0439711
      Davidlohr Bueso 提交于
      Introduce futexes to perf-bench and add a program that stresses and
      measures the kernel's implementation of the hash table.
      
      This is a multi-threaded program that simply measures the amount of
      failed futex wait calls - we only want to deal with the hashing
      overhead, so a negative return of futex_wait_setup() is enough to do the
      trick.
      
      An example run:
      
        $ perf bench futex hash -t 32
        Run summary [PID 10989]: 32 threads, each operating on 1024 [private] futexes for 10 secs.
      
        [thread  0] futexes: 0x19d9b10 ... 0x19dab0c [ 418713 ops/sec ]
        [thread  1] futexes: 0x19daca0 ... 0x19dbc9c [ 469913 ops/sec ]
        [thread  2] futexes: 0x19dbe30 ... 0x19dce2c [ 479744 ops/sec ]
        ...
        [thread 31] futexes: 0x19fbb80 ... 0x19fcb7c [ 464179 ops/sec ]
      
        Averaged 454310 operations/sec (+- 0.84%), total secs = 10
      Signed-off-by: NDavidlohr Bueso <davidlohr@hp.com>
      Acked-by: NDarren Hart <dvhart@linux.intel.com>
      Cc: Aswin Chandramouleeswaran <aswin@hp.com>
      Cc: Darren Hart <dvhart@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jason Low <jason.low2@hp.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Scott J Norton <scott.norton@hp.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Waiman Long <Waiman.Long@hp.com>
      Link: http://lkml.kernel.org/r/1387081917-9102-2-git-send-email-davidlohr@hp.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      a0439711