summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2023-01-12 21:11:38 +0100
committerChristian Breunig <christian@breunig.cc>2023-01-12 21:13:44 +0100
commitc0ffb8ba4e6639254a853c18f1433d1677d7703d (patch)
tree34d83820ce211a96b75ec795770f3baa310aa022
parent3045b327585660d66093008833d75a6064c559ea (diff)
downloadvyos-1x-c0ffb8ba4e6639254a853c18f1433d1677d7703d.tar.gz
vyos-1x-c0ffb8ba4e6639254a853c18f1433d1677d7703d.zip
ethernet: rps: T4928: adjust to Kernel ABI changes
In the past we could simply set all bits for all CPUs even if they did not exist. With 6.1.y Kernel series this is no longer possible and the input data is validated against the available number of CPUs.
-rw-r--r--python/vyos/ifconfig/ethernet.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/python/vyos/ifconfig/ethernet.py b/python/vyos/ifconfig/ethernet.py
index 519cfc58c..b45d8ea28 100644
--- a/python/vyos/ifconfig/ethernet.py
+++ b/python/vyos/ifconfig/ethernet.py
@@ -248,10 +248,12 @@ class EthernetIf(Interface):
# representation of the CPUs which should participate on RPS, we
# can enable more CPUs that are physically present on the system,
# Linux will clip that internally!
- rps_cpus = 'ffffffff,ffffffff,ffffffff,fffffffe'
+ rps_cpus = os.cpu_count()
+ if rps_cpus > 1:
+ rps_cpus -= 1
for i in range(0, queues):
- self._write_sysfs(f'/sys/class/net/{self.ifname}/queues/rx-{i}/rps_cpus', rps_cpus)
+ self._write_sysfs(f'/sys/class/net/{self.ifname}/queues/rx-{i}/rps_cpus', f'{rps_cpus:x}')
# send bitmask representation as hex string without leading '0x'
return True