From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id B101D69C6 for ; Mon, 19 Dec 2016 08:33:01 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP; 18 Dec 2016 23:33:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,372,1477983600"; d="scan'208";a="1073862850" Received: from unknown (HELO dpdk-fedora20.icx.intel.com) ([10.240.176.135]) by orsmga001.jf.intel.com with ESMTP; 18 Dec 2016 23:32:59 -0800 From: "xu,huilong" To: dts@dpdk.org Cc: lei yao Date: Mon, 19 Dec 2016 15:34:05 +0800 Message-Id: <1482132845-6802-1-git-send-email-huilongx.xu@intel.com> X-Mailer: git-send-email 1.9.3 Subject: [dts] [PATCH V2] framework: add server mode and multi queue support for qemu framework X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Dec 2016 07:33:02 -0000 From: lei yao 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 --- conf/vhost_sample.cfg | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++ 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: -- 2.7.4