From: Ido Schimmel <idosch(a)mellanox.com>
It is sometimes useful to know how many available CPUs a slave has, so
add an HostAPI method to query that.
One use case is the need to spawn as many as possible pktgen threads to
generate high volumes of traffic when testing QoS and simulating
congestion.
Signed-off-by: Ido Schimmel <idosch(a)mellanox.com>
---
lnst/Controller/Machine.py | 3 +++
lnst/Controller/Task.py | 3 +++
lnst/Slave/NetTestSlave.py | 3 +++
3 files changed, 9 insertions(+)
diff --git a/lnst/Controller/Machine.py b/lnst/Controller/Machine.py
index ec1a72b..1b2b09f 100644
--- a/lnst/Controller/Machine.py
+++ b/lnst/Controller/Machine.py
@@ -596,6 +596,9 @@ class Machine(object):
self.disable_service(service)
return True
+ def get_num_cpus(self):
+ return self._rpc_call("get_num_cpus")
+
class Interface(object):
""" Abstraction of a test network interface on a slave machine
diff --git a/lnst/Controller/Task.py b/lnst/Controller/Task.py
index 4fa5f4a..80f941a 100644
--- a/lnst/Controller/Task.py
+++ b/lnst/Controller/Task.py
@@ -495,6 +495,9 @@ class HostAPI(object):
def disable_service(self, service):
return self._m.disable_service(service)
+ def get_num_cpus(self):
+ return self._m.get_num_cpus()
+
class DeviceAPI(object):
def __init__(self, net_device, host):
self._dev = net_device
diff --git a/lnst/Slave/NetTestSlave.py b/lnst/Slave/NetTestSlave.py
index 2636556..9fc08fb 100644
--- a/lnst/Slave/NetTestSlave.py
+++ b/lnst/Slave/NetTestSlave.py
@@ -921,6 +921,9 @@ class SlaveMethods:
def disable_service(self, service):
return self._configure_service(service, start=False)
+ def get_num_cpus(self):
+ return int(os.sysconf('SC_NPROCESSORS_ONLN'))
+
class ServerHandler(ConnectionHandler):
def __init__(self, addr):
super(ServerHandler, self).__init__()
--
2.7.4