Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions .github/workflows/macos-scan-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,14 @@ permissions:
jobs:
build:

runs-on: macOS-13
runs-on: macos-15-intel

steps:
- name: Harden Runner
uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2
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: |
Expand All @@ -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
Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/macosx_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,14 @@ permissions:
jobs:
build:

runs-on: macOS-13
runs-on: macos-15-intel

steps:
- name: Harden Runner
uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2
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: |
Expand Down
12 changes: 6 additions & 6 deletions doc/LATENCY-OPTIMIZED-MODE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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
```


6 changes: 3 additions & 3 deletions scripts/bhs-power-mode.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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 ""

Expand All @@ -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)
Expand Down
6 changes: 3 additions & 3 deletions scripts/bhs-power-mode.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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)
Expand Down
Loading