diff --git a/.github/workflows/macos-scan-build.yml b/.github/workflows/macos-scan-build.yml index 8420529a..565a7d86 100644 --- a/.github/workflows/macos-scan-build.yml +++ b/.github/workflows/macos-scan-build.yml @@ -12,7 +12,7 @@ permissions: jobs: build: - runs-on: macOS-13 + runs-on: macos-15-intel steps: - name: Harden Runner @@ -20,9 +20,6 @@ jobs: with: egress-policy: audit - - name: Select Xcode 14.3.1 - run: sudo xcode-select -s /Applications/Xcode_14.3.1.app/Contents/Developer - - name: Set SDKROOT and verify kernel headers shell: bash run: | @@ -33,6 +30,10 @@ jobs: exit 1 } + - name: install llvm 15 + run: | + brew install llvm@15 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: submodules: recursive diff --git a/.github/workflows/macosx_build.yml b/.github/workflows/macosx_build.yml index 937f3ec8..fe290ef6 100644 --- a/.github/workflows/macosx_build.yml +++ b/.github/workflows/macosx_build.yml @@ -12,7 +12,7 @@ permissions: jobs: build: - runs-on: macOS-13 + runs-on: macos-15-intel steps: - name: Harden Runner @@ -20,9 +20,6 @@ jobs: with: egress-policy: audit - - name: Select Xcode 14.3.1 - run: sudo xcode-select -s /Applications/Xcode_14.3.1.app/Contents/Developer - - name: Set SDKROOT and verify kernel headers shell: bash run: | diff --git a/doc/LATENCY-OPTIMIZED-MODE.md b/doc/LATENCY-OPTIMIZED-MODE.md index 6cf74314..e7c629a2 100644 --- a/doc/LATENCY-OPTIMIZED-MODE.md +++ b/doc/LATENCY-OPTIMIZED-MODE.md @@ -8,16 +8,16 @@ The hardware monitors the average CPU utilization across all cores at regular in The screenshot above presents real-time data on uncore frequency statistics, measured in GHz, from a dual-socket platform (represented by two rows). Each socket includes five dies (organized into five columns). The first three dies contain CORes (COR), Last Level Cache (LLC), and Memory controllers (M), collectively referred to as CORLLCM. The final two dies are IO dies. -The ELC control has parameters that can be adjusted either through BIOS or software tools. The default parameter configuration is optimized for performance per watt, ensuring power efficiency. The alternative configuration, known as Latency Optimized Mode, prioritizes maximum performance. +The ELC control has parameters that can be adjusted either through BIOS or software tools. The default parameter configuration can be optimized for performance per watt, ensuring power efficiency. The alternative configuration, known as Latency Optimized Mode, prioritizes maximum performance. Below are the PCM statistics from a system operating in Latency Optimized Mode: ![Uncore Frequency Statistics Latency Optimized Mode](https://github.com/user-attachments/assets/70310bbc-725b-4450-af7a-1db2c04291dd) ## BIOS Options for Latency Optimized Mode -The BIOS option for selecting the Default or Latency Optimized Mode can typically be located in the following menus, depending on the BIOS version and OEM vendor: +The BIOS option for selecting the Optimized Power Mode or Latency Optimized Mode can typically be located in the following menus, depending on the BIOS version and OEM vendor: - **Socket Configuration** -> **Advanced Power Management** -> **CPU – Advanced PM Tuning** -> **Latency Optimized Mode** (Disabled or Enabled) -- **System Utilities** -> **System Configuration** -> **BIOS/Platform Configuration (RBSU)** -> **Power and Performance Options** -> **Advanced Power Options** -> **Efficiency Latency Control** (Default or Latency Optimized mode) +- **System Utilities** -> **System Configuration** -> **BIOS/Platform Configuration (RBSU)** -> **Power and Performance Options** -> **Advanced Power Options** -> **Efficiency Latency Control** (Default (Optimized Power Mode) or Latency Optimized Mode) Should this BIOS option be unavailable or if there is a preference to change the mode during runtime, the PCM repository provides scripts for changing this mode. @@ -46,16 +46,16 @@ Windows: .\bhs-power-mode.ps1 --latency-optimized-mode ``` -### Restoring the Default Mode +### Setting Optimized Power Mode Linux/FreeBSD/UNIX: ``` -bash bhs-power-mode.sh --default +bash bhs-power-mode.sh --optimized-power-mode ``` Windows: ``` -.\bhs-power-mode.ps1 --default +.\bhs-power-mode.ps1 --optimized-power-mode ``` diff --git a/scripts/bhs-power-mode.ps1 b/scripts/bhs-power-mode.ps1 index 9ebb4a5f..dd360f50 100644 --- a/scripts/bhs-power-mode.ps1 +++ b/scripts/bhs-power-mode.ps1 @@ -3,7 +3,7 @@ Write-Output "Birch Stream Power Mode Utility" Write-Output "" Write-Output " Options:" -Write-Output " --default : set default power mode" +Write-Output " --optimized-power-mode : set optimized power mode" Write-Output " --latency-optimized-mode : set latency optimized mode" Write-Output "" @@ -29,8 +29,8 @@ $output -split "`n" | ForEach-Object { } } -if ($args[0] -eq "--default") { - Write-Output "Setting default mode..." +if ($args[0] -eq "--optimized-power-mode") { + Write-Output "Setting optimized power mode..." foreach ($die in $io_dies) { # EFFICIENCY_LATENCY_CTRL_RATIO (Uncore IO) diff --git a/scripts/bhs-power-mode.sh b/scripts/bhs-power-mode.sh index c842d1f8..4935f1c3 100644 --- a/scripts/bhs-power-mode.sh +++ b/scripts/bhs-power-mode.sh @@ -5,7 +5,7 @@ echo "Birch Stream Power Mode Utility" echo "" echo " Options:" -echo " --default : set default power mode" +echo " --optimized-power-mode : set optimized power mode" echo " --latency-optimized-mode : set latency optimized mode" echo @@ -29,8 +29,8 @@ while read -r line; do fi done <<< "$output" -if [ "$1" == "--default" ]; then - echo "Setting default mode..." +if [ "$1" == "--optimized-power-mode" ]; then + echo "Setting optimized power mode..." for die in "${io_dies[@]}"; do # EFFICIENCY_LATENCY_CTRL_RATIO (Uncore IO)