sysctl01.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0-or-later
  3. # Copyright (c) 2018 FUJITSU LIMITED. All rights reserved.
  4. # Author: Xiao Yang <yangx.jy@cn.fujitsu.com>
  5. #
  6. # This is a regression test for invalid value of sysctl_sched_time_avg.
  7. # System will hang if user set sysctl_sched_time_avg to 0 on buggy kernel.
  8. #
  9. # The kernel bug has been fixed in kernel:
  10. # '5ccba44ba118("sched/sysctl: Check user input value of sysctl_sched_time_avg")'
  11. TST_TESTFUNC=sysctl_test
  12. TST_NEEDS_ROOT=1
  13. TST_NEEDS_CMDS="sysctl"
  14. . tst_test.sh
  15. sysctl_test()
  16. {
  17. # With commit d00535d, sched_time_avg was renamed as sched_time_avg_ms
  18. local dir="/proc/sys/kernel/"
  19. [ -e "$dir""sched_time_avg_ms" ] && local name="sched_time_avg_ms"
  20. [ -e "$dir""sched_time_avg" ] && local name="sched_time_avg"
  21. [ -z "$name" ] && tst_brk TCONF \
  22. "sched_time_avg(_ms) was not supported"
  23. local orig_value=$(cat "$dir""$name")
  24. sysctl -w "kernel.""$name"=0 >/dev/null 2>&1
  25. local test_value=$(cat "$dir""$name")
  26. if [ ${test_value} -eq ${orig_value} ]; then
  27. tst_res TPASS "Setting $name failed"
  28. else
  29. tst_res TFAIL "Setting $name succeeded"
  30. sysctl -w "kernel.""$name"=${orig_value} >/dev/null 2>&1
  31. fi
  32. }
  33. tst_run