mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-03-15 20:12:08 +01:00
Running the "performance" policy on highly heterogenous systems yields bad choices when there are sufficiently more small than big cores, and/or when there are multiple cluster types, because on such setups, the higher the frequency, the lower the number of cores, despite small differences in frequencies. In such cases, we quickly end up with "performance" only choosing the small or the medium cores, which is contrary to the original intent, which was to select performance cores. This is what happens on boards like the Orion O6 for example where only the 4 medium cores and 2 big cores are choosen, evicting the 2 biggest cores and the 4 smallest ones. Here we're changing the sorting method to sort CPU clusters by average per-CPU capacity, and we evict clusters whose per-CPU capacity falls below 80% of the previous one. Per-core capacity allows to detect discrepancies between CPU cores, and to continue to focus on high performance ones as a priority.