action.yml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. name: add kernel optimizations
  2. description: apply patches from kernel patches repo for kernel optimization
  3. inputs:
  4. kernel_version:
  5. description: 'Kernel version'
  6. required: true
  7. branch:
  8. description: 'device branch'
  9. required: true
  10. runs:
  11. using: composite
  12. steps:
  13. - name: apply patches
  14. shell: bash
  15. run: |
  16. cd "$COMMON"
  17. MIN_VERSION="5.16"
  18. patch -p1 --forward < "$KERNEL_PATCHES/common/optimized_mem_operations.patch"
  19. patch -p1 --forward < "$KERNEL_PATCHES/common/file_struct_8bytes_align.patch"
  20. patch -p1 --forward < "$KERNEL_PATCHES/common/reduce_cache_pressure.patch"
  21. patch -p1 --forward < "$KERNEL_PATCHES/common/mem_opt_prefetch.patch"
  22. if [[ ${{ inputs.branch }} == SM-A546* || ${{ inputs.branch }} == SM-S926* || ${{ inputs.branch }} == SM-A556* || ${{ inputs.branch }} == SM-M146B* || ${{ inputs.branch }} == SM-S908B* ]]; then
  23. if [ "$(printf '%s\n' "${{ inputs.kernel_version }}" "$MIN_VERSION" | sort -V | tail -n1)" = "${{ inputs.kernel_version }}" ]; then
  24. patch -p1 --forward < "$KERNEL_PATCHES/common/Samsung/optimise_memcmp_exynos.patch"
  25. elif [ "$(printf '%s\n' "${{ inputs.kernel_version }}" "5.11" | sort -V | tail -n1)" = "${{ inputs.kernel_version }}" ]; then
  26. sed -e 's/SYM_FUNC_START(__pi_memcmp)/SYM_FUNC_START_WEAK_PI(memcmp)/' -e 's/SYM_FUNC_END(__pi_memcmp)/SYM_FUNC_END_PI(memcmp)/' -e 's/SYM_FUNC_ALIAS_WEAK(memcmp, __pi_memcmp)/EXPORT_SYMBOL_NOKASAN(memcmp)/' "$KERNEL_PATCHES/common/Samsung/optimise_memcmp_exynos.patch" | patch -p1 --forward
  27. else
  28. echo "Optimised memcmp patch not found!"
  29. fi
  30. else
  31. if [ "$(printf '%s\n' "${{ inputs.kernel_version }}" "$MIN_VERSION" | sort -V | tail -n1)" = "${{ inputs.kernel_version }}" ]; then
  32. patch -p1 --forward < "$KERNEL_PATCHES/common/optimise_memcmp.patch"
  33. elif [ "$(printf '%s\n' "${{ inputs.kernel_version }}" "5.11" | sort -V | tail -n1)" = "${{ inputs.kernel_version }}" ]; then
  34. sed -e 's/SYM_FUNC_START(__pi_memcmp)/SYM_FUNC_START_WEAK_PI(memcmp)/' -e 's/SYM_FUNC_END(__pi_memcmp)/SYM_FUNC_END_PI(memcmp)/' -e 's/SYM_FUNC_ALIAS_WEAK(memcmp, __pi_memcmp)/EXPORT_SYMBOL_NOKASAN(memcmp)/' "$KERNEL_PATCHES/common/optimise_memcmp.patch" | patch -p1 --forward
  35. else
  36. echo "Optimised memcmp patch not found!"
  37. fi
  38. fi
  39. sed -i 's/pm_wakeup_event(dev, 2 \* MSEC_PER_SEC);/pm_wakeup_event(dev, ktime_to_ms(min) + 1);/' kernel/time/alarmtimer.c
  40. patch -p1 --forward < "$KERNEL_PATCHES/common/int_sqrt.patch"
  41. patch -p1 --forward < "$KERNEL_PATCHES/common/force_tcp_nodelay.patch"
  42. patch -p1 --forward < "$KERNEL_PATCHES/common/reduce_gc_thread_sleep_time.patch"
  43. patch -p1 --forward < "$KERNEL_PATCHES/common/add_timeout_wakelocks_globally.patch"
  44. patch -p1 --forward < "$KERNEL_PATCHES/common/f2fs_reduce_congestion.patch"
  45. patch -p1 --forward < "$KERNEL_PATCHES/common/reduce_freeze_timeout.patch"
  46. if [ "$(printf '%s\n' "${{ inputs.kernel_version }}" "$MIN_VERSION" | sort -V | head -n1)" = "${{ inputs.kernel_version }}" ]; then
  47. patch -p1 --forward < "$KERNEL_PATCHES/common/clear_page_16bytes_align.patch"
  48. else
  49. cat "$KERNEL_PATCHES/common/clear_page_16bytes_align.patch" | sed -e 's/SYM_FUNC_START_PI(clear_page)/SYM_FUNC_START_PI(__pi_clear_page)/' | patch -p1 -F3 --forward
  50. fi
  51. echo "Patching add_limitation_scaling_min_freq.patch"
  52. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/add_limitation_scaling_min_freq.patch"
  53. echo "Patching re_write_limitation_scaling_min_freq.patch"
  54. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/re_write_limitation_scaling_min_freq.patch"
  55. echo "Patching adjust_cpu_scan_order.patch"
  56. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/adjust_cpu_scan_order.patch"
  57. echo "patching void_extra_s2idle_wake_attempts.patch"
  58. if [[ "${{ inputs.branch }}" == "SM-S928B-Oneui8.5" || "${{ inputs.branch }}" == "SM-S926B-Oneui8.5" || "${{ inputs.branch }}" == "SM-S938B-Oneui8.5" || "${{ inputs.branch }}" == "SM-S931B-Oneui8.5" ]]; then
  59. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/Samsung/avoid_extra_s2idle_wake_attempts_oneui8.5.patch"
  60. else
  61. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/avoid_extra_s2idle_wake_attempts.patch"
  62. fi
  63. echo "Patching disable_cache_hot_buddy.patch"
  64. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/disable_cache_hot_buddy.patch"
  65. echo "Patching f2fs_enlarge_min_fsync_blocks.patch"
  66. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/f2fs_enlarge_min_fsync_blocks.patch"
  67. echo "Patching increase_ext4_default_commit_age.patch"
  68. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/increase_ext4_default_commit_age.patch"
  69. echo "Patching increase_sk_mem_packets.patch"
  70. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/increase_sk_mem_packets.patch"
  71. echo "Patching reduce_pci_pme_wakeups.patch"
  72. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/reduce_pci_pme_wakeups.patch"
  73. echo "Patching silence_irq_cpu_logspam.patch"
  74. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/silence_irq_cpu_logspam.patch"
  75. echo "Patching silence_system_logspam.patch"
  76. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/silence_system_logspam.patch"
  77. echo "Patching use_unlikely_wrap_cpufreq.patch"
  78. patch -p1 -F3 --forward < "$KERNEL_PATCHES/common/use_unlikely_wrap_cpufreq.patch"