diff options
author | lei yao <lei.a.yao@intel.com> | 2016-12-19 15:34:05 +0800 |
---|---|---|
committer | Marvin Liu <yong.liu@intel.com> | 2016-12-20 08:25:29 +0800 |
commit | b0f9f2bd312e335c32e9fbc128e4f4a341eb8d3c (patch) | |
tree | ccf2935a2e98a2eadb8a3e04318534df4125c56f | |
parent | 049cfc08ae0cdba97f1e1a5f5c4b27da942d2870 (diff) |
framework qemu_kvm: add server mode and multi queue support
1. Server mode In vhost reconnection test, we need set qemu
work in server mode(default is client mode) The sample command is :
"-chardev socket,id=char0,path=./vhost-net1,server"
2. Multiqueue
We can set multiqueue connection between vhost and virtio. Add this parameter for the
multi-queue performance testing. The sample command is: "-netdev
type=vhost-user,id=mynet1,chardev=char0,vhostforce,queues=4"
3. Change the VM launch waiting time. Some times,we find that lauching vm need more time.
So change count=20 to count 40
Signed-off-by: lei yao <lei.a.yao@intel.com>
-rw-r--r-- | conf/vhost_sample.cfg | 59 | ||||
-rw-r--r-- | framework/qemu_kvm.py | 24 |
2 files changed, 76 insertions, 7 deletions
diff --git a/conf/vhost_sample.cfg b/conf/vhost_sample.cfg index ce34af8..8bdc20e 100644 --- a/conf/vhost_sample.cfg +++ b/conf/vhost_sample.cfg @@ -1,4 +1,63 @@ +# QEMU options +# name +# name: vm0 +# +# enable_kvm +# enable: [yes | no] +# +# cpu +# model: [host | core2duo | ...] +# usage: +# choose model value from the command +# qemu-system-x86_64 -cpu help +# number: '4' #number of vcpus +# cpupin: '3 4 5 6' # host cpu list +# +# mem +# size: 1024 +# +# disk +# file: /path/to/image/test.img +# +# char +# opt_path: define the file path to vhost-net socket file +# opt_server: define the qemu socket connection work at server mode or client mdoe. Default is client +# +# net +# type: [vhost-user | ...] +# vhost-user +# opt_queue: queue=n, used for multi-queue connection between vhost and virtio +# +# device +# driver: [ virtio-net-pci | ...] +# virtio-net-pci +# prop_netdev: netdev0 +# opt_mac: 00:00:00:00:01:03 +# +# monitor +# port: 6061 +# note: if adding monitor to vm, need to specicy +# this port, else it will get a free port +# on the host machine. +# +# qga +# enable: [yes | no] +# +# serial_port +# enable: [yes | no] +# +# vnc +# displayNum: 1 +# note: you can choose a number not used on the host. +# +# daemon +# enable: 'yes' +# note: +# By default VM will start with the daemonize status. +# Not support starting it on the stdin now. + # vm configuration for vhost sample case + [vm0] cpu = model=host,number=2,cpupin=24 25; diff --git a/framework/qemu_kvm.py b/framework/qemu_kvm.py index 6ced54a..e9d29cc 100644 --- a/framework/qemu_kvm.py +++ b/framework/qemu_kvm.py @@ -606,21 +606,31 @@ class QEMUKvm(VirtBase): if 'opt_path' in options.keys() and options['opt_path']: dev_boot_line = '-chardev socket' char_id = 'char%d' % self.char_idx - dev_boot_line += separator + 'id=%s' % char_id + separator + 'path=%s' % options['opt_path'] - self.char_idx += 1 - self.__add_boot_line(dev_boot_line) + if 'opt_server' in options.keys() and options['opt_server']: + dev_boot_line += separator + 'id=%s' % char_id + separator + 'path=%s' %options['opt_path'] + separator + '%s' % options['opt_server'] + self.char_idx += 1 + self.__add_boot_line(dev_boot_line) + else: + dev_boot_line += separator + 'id=%s' % char_id + separator + 'path=%s' %options['opt_path'] + self.char_idx += 1 + self.__add_boot_line(dev_boot_line) # netdev parameter netdev_id = 'netdev%d' % self.netdev_idx self.netdev_idx += 1 - dev_boot_line = '-netdev type=vhost-user,id=%s,chardev=%s,vhostforce' % (netdev_id, char_id) + if 'opt_queue' in options.keys() and options['opt_queue']: + queue_num=options['opt_queue'] + dev_boot_line = '-netdev type=vhost-user,id=%s,chardev=%s,vhostforce,queues=%s' % (netdev_id, char_id,queue_num) + else: + dev_boot_line = '-netdev type=vhost-user,id=%s,chardev=%s,vhostforce' % (netdev_id, char_id) self.__add_boot_line(dev_boot_line) # device parameter opts = {'opt_netdev': '%s' % netdev_id} if 'opt_mac' in options.keys() and \ options['opt_mac']: opts['opt_mac'] = options['opt_mac'] - - self.__add_vm_virtio_net_pci(**opts) + if 'opt_settings' in options.keys() and options['opt_settings']: + opts['opt_settings'] = options['opt_settings'] + self.__add_vm_virtio_net_pci(**opts) def __add_vm_virtio_cuse_pci(self, **options): """ @@ -939,7 +949,7 @@ class QEMUKvm(VirtBase): wait for 120 seconds for vm net ready 10.0.2.* is the default ip address allocated by qemu """ - count = 20 + count = 40 while count: out = self.__control_session('ifconfig') if "10.0.2" in out: |