From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 2E31FFAD2 for ; Tue, 20 Dec 2016 01:28:48 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP; 19 Dec 2016 16:28:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,376,1477983600"; d="scan'208";a="1074210604" Received: from stv-crb-56.sh.intel.com (HELO [10.239.128.116]) ([10.239.128.116]) by orsmga001.jf.intel.com with ESMTP; 19 Dec 2016 16:28:46 -0800 Message-ID: <58587A95.90603@intel.com> Date: Tue, 20 Dec 2016 08:25:57 +0800 From: "Liu, Yong" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: "xu,huilong" , dts@dpdk.org CC: lei yao References: <1482132845-6802-1-git-send-email-huilongx.xu@intel.com> In-Reply-To: <1482132845-6802-1-git-send-email-huilongx.xu@intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [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: Tue, 20 Dec 2016 00:28:49 -0000 Thanks, applied. On 12/19/2016 03:34 PM, xu,huilong wrote: > 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: