Irqbalance / irqbalance

The irqbalance source tree - The new official site for irqbalance
http://irqbalance.github.io/irqbalance/
GNU General Public License v2.0
576 stars 139 forks source link

package vs numa node #291

Closed holgerBerger closed 2 months ago

holgerBerger commented 8 months ago

when using balance_level=package it seems to balance on numa node, not package. Is that intended? Observed on a Xeon Scalable Processor gen4 (Sapphire Rapids) with SNC4 clustering, where each socket has 4 NUMA nodes with irqbalance version 1.9.0 I would expect socket = package, not numa node = package. I would like to have the actual socket, as the numa node is to small for the amount of interrupts, but I can not see how I could do that. Would it may be make sense to have balance_level=[none | package | node | cache | core] ?

nhorman commented 7 months ago

the balancing hierarchy was numa_node->package->cache->core

The selection for an appropriate numa node is handled in the do_one_cpu function, restricting the cpu selection to the intersection of the package mask and the node mask, so, yes, often balancing in your environment will lead to just balancing at the package level, which should be ok, given that we use a subset of cpus based on the intersection of the nearest node(s) and package(s)

You could I think achieve what you want by using the numa_node setting in your policy script to assign each cpu to a specific numa node.