cpu.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/bin/bash
  2. # SPDX-License-Identifier: GPL-2.0
  3. #
  4. # CPU helpers
  5. # protect against multiple inclusion
  6. if [ $FILE_CPU ]; then
  7. return 0
  8. else
  9. FILE_CPU=DONE
  10. fi
  11. source cpufreq.sh
  12. for_each_cpu()
  13. {
  14. cpus=$(ls $CPUROOT | grep "cpu[0-9].*")
  15. for cpu in $cpus; do
  16. $@ $cpu
  17. done
  18. }
  19. for_each_non_boot_cpu()
  20. {
  21. cpus=$(ls $CPUROOT | grep "cpu[1-9].*")
  22. for cpu in $cpus; do
  23. $@ $cpu
  24. done
  25. }
  26. #$1: cpu
  27. offline_cpu()
  28. {
  29. printf "Offline $1\n"
  30. echo 0 > $CPUROOT/$1/online
  31. }
  32. #$1: cpu
  33. online_cpu()
  34. {
  35. printf "Online $1\n"
  36. echo 1 > $CPUROOT/$1/online
  37. }
  38. #$1: cpu
  39. reboot_cpu()
  40. {
  41. offline_cpu $1
  42. online_cpu $1
  43. }
  44. # Reboot CPUs
  45. # param: number of times we want to run the loop
  46. reboot_cpus()
  47. {
  48. printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n"
  49. for i in `seq 1 $1`; do
  50. for_each_non_boot_cpu offline_cpu
  51. for_each_non_boot_cpu online_cpu
  52. printf "\n"
  53. done
  54. printf "\n%s\n\n" "------------------------------------------------"
  55. }
  56. # Prints warning for all CPUs with missing cpufreq directory
  57. print_unmanaged_cpus()
  58. {
  59. for_each_cpu cpu_should_have_cpufreq_directory
  60. }
  61. # Counts CPUs with cpufreq directories
  62. count_cpufreq_managed_cpus()
  63. {
  64. count=0;
  65. for cpu in `ls $CPUROOT | grep "cpu[0-9].*"`; do
  66. if [ -d $CPUROOT/$cpu/cpufreq ]; then
  67. let count=count+1;
  68. fi
  69. done
  70. echo $count;
  71. }