perf-bench(1) ============= NAME ---- perf-bench - General framework for benchmark suites SYNOPSIS -------- [verse] 'perf bench' [] [] DESCRIPTION ----------- This 'perf bench' command is a general framework for benchmark suites. COMMON OPTIONS -------------- -r:: --repeat=:: Specify amount of times to repeat the run (default 10). -f:: --format=:: Specify format style. Current available format styles are: 'default':: Default style. This is mainly for human reading. --------------------- % perf bench sched pipe # with no style specified (executing 1000000 pipe operations between two tasks) Total time:5.855 sec 5.855061 usecs/op 170792 ops/sec --------------------- 'simple':: This simple style is friendly for automated processing by scripts. --------------------- % perf bench --format=simple sched pipe # specified simple 5.988 --------------------- SUBSYSTEM --------- 'sched':: Scheduler and IPC mechanisms. 'mem':: Memory access performance. 'numa':: NUMA scheduling and MM benchmarks. 'futex':: Futex stressing benchmarks. 'all':: All benchmark subsystems. SUITES FOR 'sched' ~~~~~~~~~~~~~~~~~~ *messaging*:: Suite for evaluating performance of scheduler and IPC mechanisms. Based on hackbench by Rusty Russell. Options of *messaging* ^^^^^^^^^^^^^^^^^^^^^^ -p:: --pipe:: Use pipe() instead of socketpair() -t:: --thread:: Be multi thread instead of multi process -g:: --group=:: Specify number of groups -l:: --nr_loops=:: Specify number of loops Example of *messaging* ^^^^^^^^^^^^^^^^^^^^^^ --------------------- % perf bench sched messaging # run with default options (20 sender and receiver processes per group) (10 groups == 400 processes run) Total time:0.308 sec % perf bench sched messaging -t -g 20 # be multi-thread, with 20 groups (20 sender and receiver threads per group) (20 groups == 800 threads run) Total time:0.582 sec --------------------- *pipe*:: Suite for pipe() system call. Based on pipe-test-1m.c by Ingo Molnar. Options of *pipe* ^^^^^^^^^^^^^^^^^ -l:: --loop=:: Specify number of loops. Example of *pipe* ^^^^^^^^^^^^^^^^^ --------------------- % perf bench sched pipe (executing 1000000 pipe operations between two tasks) Total time:8.091 sec 8.091833 usecs/op 123581 ops/sec % perf bench sched pipe -l 1000 # loop 1000 (executing 1000 pipe operations between two tasks) Total time:0.016 sec 16.948000 usecs/op 59004 ops/sec --------------------- SUITES FOR 'mem' ~~~~~~~~~~~~~~~~ *memcpy*:: Suite for evaluating performance of simple memory copy in various ways. Options of *memcpy* ^^^^^^^^^^^^^^^^^^^ -l:: --size:: Specify size of memory to copy (default: 1MB). Available units are B, KB, MB, GB and TB (case insensitive). -f:: --function:: Specify function to copy (default: default). Available functions are depend on the architecture. On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported. -l:: --nr_loops:: Repeat memcpy invocation this number of times. -c:: --cycles:: Use perf's cpu-cycles event instead of gettimeofday syscall. *memset*:: Suite for evaluating performance of simple memory set in various ways. Options of *memset* ^^^^^^^^^^^^^^^^^^^ -l:: --size:: Specify size of memory to set (default: 1MB). Available units are B, KB, MB, GB and TB (case insensitive). -f:: --function:: Specify function to set (default: default). Available functions are depend on the architecture. On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported. -l:: --nr_loops:: Repeat memset invocation this number of times. -c:: --cycles:: Use perf's cpu-cycles event instead of gettimeofday syscall. SUITES FOR 'numa' ~~~~~~~~~~~~~~~~~ *mem*:: Suite for evaluating NUMA workloads. SUITES FOR 'futex' ~~~~~~~~~~~~~~~~~~ *hash*:: Suite for evaluating hash tables. *wake*:: Suite for evaluating wake calls. *wake-parallel*:: Suite for evaluating parallel wake calls. *requeue*:: Suite for evaluating requeue calls. *lock-pi*:: Suite for evaluating futex lock_pi calls. SEE ALSO -------- linkperf:perf[1] value='15'>15space:mode:
authorDexuan Cui <decui@microsoft.com>2017-01-28 11:46:02 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-01-31 10:59:48 +0100
commit433e19cf33d34bb6751c874a9c00980552fe508c (patch)
treece6547ef2987fbb289fa28f03536328a42781651 /sound/soc/img/Kconfig
parent191e885a2e130e639bb0c8ee350d7047294f2ce6 (diff)
Drivers: hv: vmbus: finally fix hv_need_to_signal_on_read()
Commit a389fcfd2cb5 ("Drivers: hv: vmbus: Fix signaling logic in hv_need_to_signal_on_read()") added the proper mb(), but removed the test "prev_write_sz < pending_sz" when making the signal decision. As a result, the guest can signal the host unnecessarily, and then the host can throttle the guest because the host thinks the guest is buggy or malicious; finally the user running stress test can perceive intermittent freeze of the guest. This patch brings back the test, and properly handles the in-place consumption APIs used by NetVSC (see get_next_pkt_raw(), put_pkt_raw() and commit_rd_index()). Fixes: a389fcfd2cb5 ("Drivers: hv: vmbus: Fix signaling logic in hv_need_to_signal_on_read()") Signed-off-by: Dexuan Cui <decui@microsoft.com> Reported-by: Rolf Neugebauer <rolf.neugebauer@docker.com> Tested-by: Rolf Neugebauer <rolf.neugebauer@docker.com> Cc: "K. Y. Srinivasan" <kys@microsoft.com> Cc: Haiyang Zhang <haiyangz@microsoft.com> Cc: Stephen Hemminger <sthemmin@microsoft.com> Cc: <stable@vger.kernel.org> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'sound/soc/img/Kconfig')