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