diff options
Diffstat (limited to 'vnfs/qemu')
-rw-r--r-- | vnfs/qemu/__init__.py | 1 | ||||
-rw-r--r-- | vnfs/qemu/qemu.py | 10 |
2 files changed, 8 insertions, 3 deletions
diff --git a/vnfs/qemu/__init__.py b/vnfs/qemu/__init__.py index 82f32eb9..6ed326dd 100644 --- a/vnfs/qemu/__init__.py +++ b/vnfs/qemu/__init__.py @@ -17,4 +17,3 @@ This package contains an implementation of the interface the VSPERF core uses for controlling VNFs using QEMU and DPDK's testpmd application. """ - diff --git a/vnfs/qemu/qemu.py b/vnfs/qemu/qemu.py index 8e3d44de..7ba58c05 100644 --- a/vnfs/qemu/qemu.py +++ b/vnfs/qemu/qemu.py @@ -222,7 +222,13 @@ class IVnfQemu(IVnf): stdin=proc.stdout) proc.wait() - for cpu in range(0, int(S.getValue('GUEST_SMP')[self._number])): + # calculate the number of CPUs in SMP topology specified by GUEST_SMP + # e.g. "sockets=2,cores=3", "4", etc. + cpu_nr = 1 + for i in re.findall(r'\d', S.getValue('GUEST_SMP')[self._number]): + cpu_nr = cpu_nr * int(i) + # pin each GUEST's core to host core based on configured BINDING + for cpu in range(0, cpu_nr): match = None guest_thread_binding = S.getValue('GUEST_THREAD_BINDING')[self._number] if guest_thread_binding is None: @@ -280,7 +286,7 @@ class IVnfQemu(IVnf): elif self._guest_loopback == 'linux_bridge': self._configure_linux_bridge() elif self._guest_loopback != 'clean': - raise RuntimeError('Unsupported guest loopback method "%s" was specified.', + raise RuntimeError('Unsupported guest loopback method "%s" was specified.' % self._guest_loopback) def wait(self, prompt=None, timeout=30): |