mirror of
https://github.com/LibreQoE/LibreQoS.git
synced 2025-02-25 18:55:32 -06:00
Better handle mismatched # of CPU cores, RX/TX NIC queues
This commit is contained in:
parent
17ad6bd30a
commit
8e61cb204d
@ -94,16 +94,18 @@ def refreshShapers():
|
||||
#Clear Prior Settings
|
||||
clearPriorSettings(interfaceA, interfaceB)
|
||||
|
||||
# Find queues available
|
||||
# Find queues and CPU cores available. Use min between those two as queuesAvailable
|
||||
queuesAvailable = 0
|
||||
path = '/sys/class/net/' + interfaceA + '/queues/'
|
||||
directory_contents = os.listdir(path)
|
||||
#print(directory_contents)
|
||||
for item in directory_contents:
|
||||
if "tx-" in str(item):
|
||||
queuesAvailable += 1
|
||||
print("This Network Interface Card has " + str(queuesAvailable) + " queues avaialble.")
|
||||
|
||||
cpuCount = multiprocessing.cpu_count()
|
||||
queuesAvailable = min(queuesAvailable,cpuCount)
|
||||
|
||||
# For VMs, must reduce queues if more than 9, for some reason
|
||||
if queuesAvailable > 9:
|
||||
command = 'grep -q ^flags.*\ hypervisor\ /proc/cpuinfo && echo "This machine is a VM"'
|
||||
@ -114,7 +116,7 @@ def refreshShapers():
|
||||
output = e.output.decode()
|
||||
success = False
|
||||
if "This machine is a VM" in output:
|
||||
queuesAvailable = 9
|
||||
queuesAvailable = min(9, queuesAvailable)
|
||||
|
||||
# XDP-CPUMAP-TC
|
||||
shell('./xdp-cpumap-tc/bin/xps_setup.sh -d ' + interfaceA + ' --default --disable')
|
||||
|
Loading…
Reference in New Issue
Block a user