Home | History | Annotate | Download | only in busy_poll
      1 #!/bin/sh
      2 # SPDX-License-Identifier: GPL-2.0-or-later
      3 # Copyright (c) 2015-2018 Oracle and/or its affiliates. All Rights Reserved.
      4 #
      5 # Author: Alexey Kodanev <alexey.kodanev (at] oracle.com>
      6 
      7 . busy_poll_lib.sh
      8 
      9 cleanup()
     10 {
     11 	[ -n "$busy_poll_old" ] && \
     12 		sysctl -q -w net.core.busy_poll=$busy_poll_old
     13 	[ -n "$rbusy_poll_old" ] && \
     14 		tst_rhost_run -c "sysctl -q -w net.core.busy_poll=$rbusy_poll_old"
     15 }
     16 
     17 set_busy_poll()
     18 {
     19 	local value=${1:-"0"}
     20 	ROD_SILENT sysctl -q -w net.core.busy_poll=$value
     21 	tst_rhost_run -s -c "sysctl -q -w net.core.busy_poll=$value"
     22 }
     23 
     24 setup()
     25 {
     26 	busy_poll_check_config
     27 
     28 	busy_poll_old="$(cat /proc/sys/net/core/busy_poll)"
     29 	rbusy_poll_old=$(tst_rhost_run -c 'cat /proc/sys/net/core/busy_poll')
     30 }
     31 
     32 test()
     33 {
     34 	for x in 50 0; do
     35 		tst_res TINFO "set low latency busy poll to $x per socket"
     36 		set_busy_poll $x
     37 		tst_netload -H $(tst_ipaddr rhost) -n 10 -N 10 -d res_$x -b $x
     38 	done
     39 
     40 	local poll_cmp=$(( 100 - ($(cat res_50) * 100) / $(cat res_0) ))
     41 
     42 	if [ "$poll_cmp" -lt 1 ]; then
     43 		tst_res TFAIL "busy poll result is '$poll_cmp' %"
     44 	else
     45 		tst_res TPASS "busy poll increased performance by '$poll_cmp' %"
     46 	fi
     47 }
     48 
     49 tst_run
     50