Page MenuHomeVyOS Platform

Add kernel options isolcpus, nohz_full, rcu_nocbs, hugepages, numa_balancing
Closed, ResolvedPublicFEATURE REQUEST

Description

Summary

Add kernel options isolcpus, nohz_full, rcu_nocbs, default_hugepagesz, hugepages, hugepagesz, numa_balancing

The isolcpus kernel parameter can be used to specify CPUs to be isolated from the general SMP balancing and scheduler algorithms. The argument is a CPU list:

isolcpus=<cpu number>,….,<cpu number>

Use case

Use some cores exclusively for VPP.

Additional information

Proposed CLI

set system option kernel isolcpus '4,5,6,7'

Example of usecase:

set system option kernel isolcpus '4,5,6,7'

set vpp settings cpu main-core '4'
set vpp settings cpu corelist-workers '5-7'
set vpp settings interface eth2 dpdk-options promisc
set vpp settings interface eth2 driver 'dpdk'

Check:

%Cpu0  :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
%Cpu1  :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
%Cpu3  :  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
%Cpu4  :  1.3 us,  1.7 sy,  0.0 ni, 96.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.3 st 
%Cpu5  : 99.3 us,  0.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.3 st 
%Cpu6  : 99.3 us,  0.7 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
%Cpu7  : 99.3 us,  0.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.3 st 
MiB Mem :  16009.8 total,  12974.3 free,   2784.1 used,    519.3 buff/cache     
MiB Swap:      0.0 total,      0.0 free,      0.0 used.  13225.7 avail Mem

Details

Version
-
Is it a breaking change?
Perfectly compatible
Issue type
Feature (new functionality)

Event Timeline

Viacheslav triaged this task as Normal priority.
Viacheslav renamed this task from Add kernel option isolcpus to Add kernel options isolcpus, nohz_full, rcu_nocbs, hugepages, numa_balancing.May 1 2025, 9:36 AM
Viacheslav updated the task description. (Show Details)
Viacheslav changed the task status from Open to In progress.May 2 2025, 3:13 PM
Viacheslav claimed this task.

PR https://github.com/vyos/vyos-1x/pull/4491

set system option kernel cpu disable-nmi-watchdog
set system option kernel cpu isolate-cpus '1,2,4-5'
set system option kernel cpu nohz-full '1,2,4-5'
set system option kernel cpu rcu-no-cbs '1,2,4-5'
set system option kernel disable-hpet
set system option kernel disable-mce
set system option kernel disable-softlockup
set system option kernel memory default-hugepage-size '2M'
set system option kernel memory disable-numa-balancing
set system option kernel memory hugepage-count '256'
set system option kernel memory hugepage-size '2M'
dmbaturin changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.
dmbaturin moved this task from Open to Finished on the VyOS 1.5 Circinus (1.5-stream-2025-Q2) board.
dmbaturin moved this task from Need Triage to Completed on the VyOS Rolling board.