Skip to content

Commit

Permalink
Disable CPU C-States other than C1 (sonic-net#16703)
Browse files Browse the repository at this point in the history
Why I did it
Networking devices need to be responsive. Such responsiveness is harmed when the CPU change state.
There is a latency penalty when a CPU is idle (e.g C2) and need to exit this state to come back to C1 state.
To prevent this from happening the CPU should be forced to remain in C1 state.

How I did it
Generalize the cstate forcing to C1 to all Arista products.
This is done by adding processor.max_cstate=1 to the kernel cmdline for all CPUs.
Additionally Intel CPUs also need intel_idle.max_cstate=0 to fallback to the acpi_idle driver.

How to verify it
Check that processor.max_cstate=1 is present on the cmdline for AMD CPUs
Check that both processor.max_cstate=1 and intel_idle.max_cstate=0 are present on the cmdline for Intel CPUs
  • Loading branch information
Staphylo authored Oct 14, 2023
1 parent f88a5f5 commit d760fb9
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions files/Aboot/boot0.j2
Original file line number Diff line number Diff line change
Expand Up @@ -615,6 +615,14 @@ write_platform_specific_cmdline() {
aboot_machine=arista_7280cr3mk_32p4
flash_size=7382
fi

# disable cpu c-state other than C1
local cpuvendor="$(sed -nr 's/vendor_id[\t ]*: (.*)/\1/p' /proc/cpuinfo | head -n 1)"
cmdline_add processor.max_cstate=1
if [ "$cpuvendor" = "GenuineIntel" ]; then
cmdline_add intel_idle.max_cstate=0
fi

if in_array "$platform" "rook" "magpie" "woodpecker" "sprucefish"; then
cmdline_add tsc=reliable
cmdline_add pcie_ports=native
Expand All @@ -625,7 +633,6 @@ write_platform_specific_cmdline() {
if in_array "$platform" "rook" "sprucefish"; then
cmdline_add iommu=on
cmdline_add intel_iommu=on
cmdline_add intel_idle.max_cstate=0
read_system_eeprom
fi
if in_array "$platform" "rook"; then
Expand All @@ -643,7 +650,6 @@ write_platform_specific_cmdline() {
read_system_eeprom
fi
if in_array "$platform" "lorikeet" "hedgehog"; then
cmdline_add processor.max_cstate=1
cmdline_add reassign_prefmem
read_system_eeprom
fi
Expand Down

0 comments on commit d760fb9

Please sign in to comment.