From b1142d4ff4c7cf7017dbff2010149d7066f5859c Mon Sep 17 00:00:00 2001 From: Alex Cheema Date: Wed, 11 Dec 2024 19:39:58 +0000 Subject: [PATCH] t --- .github/bootstrap.sh | 318 ++++++++++++++++++++----------------------- 1 file changed, 146 insertions(+), 172 deletions(-) diff --git a/.github/bootstrap.sh b/.github/bootstrap.sh index 23192ec7..1ea7300f 100755 --- a/.github/bootstrap.sh +++ b/.github/bootstrap.sh @@ -169,195 +169,175 @@ log "Configuring runner with labels: $CUSTOM_LABELS" # Set optimal performance settings log "Configuring system for optimal performance..." -# Force high power mode using system preferences -log "Setting power mode to high performance..." - -# Set power mode using defaults for all locations -sudo defaults write /Library/Preferences/.GlobalPreferences.plist com.apple.PowerManagement.PowerMode -int 2 -sudo defaults write /Library/Preferences/com.apple.PowerManagement PowerMode -int 2 -sudo defaults write -g PowerMode -int 2 - -# Create power mode override file -sudo mkdir -p /Library/Preferences/SystemConfiguration/ -sudo tee /Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist << EOF - - - - - ActivePowerProfiles - - AC Power - - PowerMode - 2 - ForcedPowerMode - 2 - LowPowerModeEnabled - - AutoPowerModeEnabled - - HighPowerMode - - ReduceBrightness - - DynamicPowerStep - - GPUSwitch - 2 - - Battery Power - - PowerMode - 2 - ForcedPowerMode - 2 - LowPowerModeEnabled - - AutoPowerModeEnabled - - HighPowerMode - - ReduceBrightness - - DynamicPowerStep - - GPUSwitch - 2 - - - SystemPowerProfileOverride - 2 - Custom Profile - - AC Power - - PowerMode - 2 - ForcedPowerMode - 2 - - Battery Power - - PowerMode - 2 - ForcedPowerMode - 2 - - - - -EOF +# Configure CPU performance +log "Setting CPU performance controls..." +# Disable timer coalescing +sudo sysctl -w kern.timer.coalescing_enabled=0 +sudo sysctl -w kern.timer_coalesce_bg_scale=-5 +sudo sysctl -w kern.timer_resort_threshold_ns=0 +# Set minimum timer intervals +sudo sysctl -w kern.wq_max_timer_interval_usecs=1000 +sudo sysctl -w kern.timer_coalesce_bg_ns_max=1000 +# Set minimum timer coalescing for all tiers +sudo sysctl -w kern.timer_coalesce_tier0_scale=-5 +sudo sysctl -w kern.timer_coalesce_tier0_ns_max=1000 +sudo sysctl -w kern.timer_coalesce_tier1_scale=-5 +sudo sysctl -w kern.timer_coalesce_tier1_ns_max=1000 +sudo sysctl -w kern.timer_coalesce_tier2_scale=-5 +sudo sysctl -w kern.timer_coalesce_tier2_ns_max=1000 +sudo sysctl -w kern.timer_coalesce_tier3_scale=-5 +sudo sysctl -w kern.timer_coalesce_tier3_ns_max=1000 +sudo sysctl -w kern.timer_coalesce_tier4_scale=-5 +sudo sysctl -w kern.timer_coalesce_tier4_ns_max=1000 +# Set minimum allowed scan intervals +sudo sysctl -w kern.timer.scan_interval=40000 +sudo sysctl -w kern.timer.longterm.scan_interval=100000 +sudo sysctl -w kern.cpu_checkin_interval=5000 # Configure power management settings for maximum performance log "Setting power management options..." -sudo pmset -a displaysleep 0 -sudo pmset -a disksleep 0 -sudo pmset -a sleep 0 -sudo pmset -a hibernatemode 0 -sudo pmset -a powernap 0 -sudo pmset -a proximitywake 0 -sudo pmset -a tcpkeepalive 1 -sudo pmset -a ttyskeepawake 1 -sudo pmset -a acwake 0 -sudo pmset -a lidwake 0 -sudo pmset -a lessbright 0 -sudo pmset -a halfdim 0 -sudo pmset -a autopoweroff 0 -sudo pmset -a standby 0 -# Create a script to continuously enforce high power mode -sudo tee /usr/local/bin/enforce_high_power.sh << 'EOF' +# Disable all power saving features for both battery (-b) and AC power (-c) +for power_source in "-b" "-c"; do + # Disable all sleep/idle features + sudo pmset $power_source sleep 0 + sudo pmset $power_source disksleep 0 + sudo pmset $power_source displaysleep 0 + sudo pmset $power_source powernap 0 + sudo pmset $power_source proximitywake 0 + + # Disable power-saving display features + sudo pmset $power_source lessbright 0 + sudo pmset $power_source halfdim 0 + + # Disable hibernation and standby + sudo pmset $power_source hibernatemode 0 + sudo pmset $power_source standby 0 + sudo pmset $power_source autopoweroff 0 + + # Keep system active + sudo pmset $power_source ttyskeepawake 1 + sudo pmset $power_source tcpkeepalive 1 + + # Disable other power-saving features + sudo pmset $power_source womp 0 + sudo pmset $power_source ring 0 + sudo pmset $power_source networkoversleep 0 + sudo pmset $power_source sms 0 +done + +# Create a script to continuously enforce performance settings +sudo tee /usr/local/bin/enforce_performance.sh << 'EOF' #!/bin/bash -while true; do - # Set power mode using defaults - defaults write com.apple.systempreferences PowerMode -int 2 - defaults write -g PowerMode -int 2 +enforce_settings() { + power_source=$1 - # Check current power mode - current_mode=$(pmset -g | grep powermode | awk '{print $2}') - if [ "$current_mode" != "2" ]; then - # Force high power mode using additional methods - sudo pmset -a lessbright 0 - sudo pmset -a halfdim 0 - sudo defaults write /Library/Preferences/com.apple.PowerManagement PowerMode -int 2 + # Disable all sleep/idle features + sudo pmset $power_source sleep 0 + sudo pmset $power_source disksleep 0 + sudo pmset $power_source displaysleep 0 + sudo pmset $power_source powernap 0 + sudo pmset $power_source proximitywake 0 + + # Disable power-saving display features + sudo pmset $power_source lessbright 0 + sudo pmset $power_source halfdim 0 + + # Disable hibernation and standby + sudo pmset $power_source hibernatemode 0 + sudo pmset $power_source standby 0 + sudo pmset $power_source autopoweroff 0 + + # Keep system active + sudo pmset $power_source ttyskeepawake 1 + sudo pmset $power_source tcpkeepalive 1 +} + +enforce_cpu_performance() { + # Disable timer coalescing + sudo sysctl -w kern.timer.coalescing_enabled=0 + sudo sysctl -w kern.timer_coalesce_bg_scale=-5 + sudo sysctl -w kern.timer_resort_threshold_ns=0 + # Set minimum timer intervals + sudo sysctl -w kern.wq_max_timer_interval_usecs=1000 + sudo sysctl -w kern.timer_coalesce_bg_ns_max=1000 + # Set minimum timer coalescing for all tiers + sudo sysctl -w kern.timer_coalesce_tier0_scale=-5 + sudo sysctl -w kern.timer_coalesce_tier0_ns_max=1000 + sudo sysctl -w kern.timer_coalesce_tier1_scale=-5 + sudo sysctl -w kern.timer_coalesce_tier1_ns_max=1000 + sudo sysctl -w kern.timer_coalesce_tier2_scale=-5 + sudo sysctl -w kern.timer_coalesce_tier2_ns_max=1000 + sudo sysctl -w kern.timer_coalesce_tier3_scale=-5 + sudo sysctl -w kern.timer_coalesce_tier3_ns_max=1000 + sudo sysctl -w kern.timer_coalesce_tier4_scale=-5 + sudo sysctl -w kern.timer_coalesce_tier4_ns_max=1000 + # Set minimum allowed scan intervals + sudo sysctl -w kern.timer.scan_interval=40000 + sudo sysctl -w kern.timer.longterm.scan_interval=100000 + sudo sysctl -w kern.cpu_checkin_interval=5000 +} + +while true; do + # Check current power source + if pmset -g ps | grep -q "AC Power"; then + enforce_settings "-c" + else + enforce_settings "-b" fi - sleep 60 + # Enforce CPU performance settings + enforce_cpu_performance + + # Verify settings every 30 seconds + sleep 30 done EOF -sudo chmod +x /usr/local/bin/enforce_high_power.sh +sudo chmod +x /usr/local/bin/enforce_performance.sh # Create LaunchDaemon to run the enforcement script -sudo tee /Library/LaunchDaemons/com.local.powermode.plist << EOF +sudo tee /Library/LaunchDaemons/com.local.performance.plist << EOF Label - com.local.powermode + com.local.performance ProgramArguments - /usr/local/bin/enforce_high_power.sh + /bin/bash + /usr/local/bin/enforce_performance.sh RunAtLoad KeepAlive - ThrottleInterval - 0 ProcessType Interactive Nice -20 - - -EOF - -sudo chmod 644 /Library/LaunchDaemons/com.local.powermode.plist -sudo chown root:wheel /Library/LaunchDaemons/com.local.powermode.plist -sudo launchctl load -w /Library/LaunchDaemons/com.local.powermode.plist - -# Verify power settings -log "Verifying power settings..." -pmset -g -system_profiler SPPowerDataType - -# Create performance mode configuration with supported settings -sudo tee /Library/Preferences/com.apple.perfmode.plist << EOF - - - - - Mode - Performance - PowerMode - 2 - LowPowerModeEnabled + AbandonProcessGroup - ForcedPowerMode - 2 EOF -# Force high performance mode using powermetrics -sudo powermetrics --show-process-energy --samplers cpu_power -i 1000 -n 1 2>/dev/null || true +sudo chmod 644 /Library/LaunchDaemons/com.local.performance.plist +sudo chown root:wheel /Library/LaunchDaemons/com.local.performance.plist +sudo launchctl load -w /Library/LaunchDaemons/com.local.performance.plist -# Enhanced Metal and GPU settings using defaults -defaults write com.apple.CoreML MPSEnableGPUValidation -bool false -defaults write com.apple.CoreML MPSEnableMetalValidation -bool false -defaults write com.apple.CoreML MPSEnableGPUDebug -bool false -defaults write com.apple.Metal GPUDebug -bool false -defaults write com.apple.Metal GPUValidation -bool false -defaults write com.apple.Metal MetalValidation -bool false -defaults write com.apple.Metal MetalCaptureEnabled -bool false -defaults write com.apple.Metal MTLValidationBehavior -string "Disabled" -defaults write com.apple.Metal EnableMTLDebugLayer -bool false -defaults write com.apple.Metal MTLDebugLevel -int 0 -defaults write com.apple.Metal PreferIntegratedGPU -bool false -defaults write com.apple.Metal ForceMaximumPerformance -bool true +# Verify current settings +log "Verifying power settings..." +echo "Current power source settings:" +pmset -g +echo "Custom settings:" +pmset -g custom +echo "Power source status:" +pmset -g ps +echo "Timer coalescing settings:" +sysctl kern.timer.coalescing_enabled kern.timer_coalesce_bg_scale kern.timer_resort_threshold_ns kern.wq_max_timer_interval_usecs # Create enhanced MPS cache configuration sudo mkdir -p /tmp/mps_cache @@ -378,25 +358,9 @@ sudo tee /Library/LaunchDaemons/com.github.runner.plist > /dev/null << EOF ${RUNNER_DIR} ProgramArguments - /usr/bin/taskpolicy - -b - PERFORMANCE - -p - PERFORMANCE - -t - PERFORMANCE - --cpu-qos - USER_INTERACTIVE - --gpu-qos - USER_INTERACTIVE - --io-qos - USER_INTERACTIVE - --affinity-tag - com.github.runner - /usr/bin/nice - -n - -20 - ${RUNNER_DIR}/run.sh + /bin/bash + -c + exec /usr/bin/taskpolicy -b PERFORMANCE -p PERFORMANCE -t PERFORMANCE --cpu-qos USER_INTERACTIVE --gpu-qos USER_INTERACTIVE --io-qos USER_INTERACTIVE --affinity-tag com.github.runner /usr/bin/nice -n -20 ${RUNNER_DIR}/run.sh EnvironmentVariables @@ -471,6 +435,11 @@ sudo tee /Library/LaunchDaemons/com.github.runner.plist > /dev/null << EOF 1 PYTHONHASHSEED 0 + + TASKPOLICY_INHERIT + 1 + TASKPOLICY_OVERRIDE_ENABLE + 1 RunAtLoad @@ -500,6 +469,11 @@ sudo tee /Library/LaunchDaemons/com.github.runner.plist > /dev/null << EOF NumberOfFiles 524288 + MachServices + + com.github.runner.mach + + EOF