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 F2C2F5690 for ; Thu, 19 Mar 2015 17:18:25 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP; 19 Mar 2015 09:18:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.11,430,1422950400"; d="scan'208";a="667610549" Received: from irsmsx152.ger.corp.intel.com ([163.33.192.66]) by orsmga001.jf.intel.com with ESMTP; 19 Mar 2015 09:18:24 -0700 Received: from irsmsx108.ger.corp.intel.com ([169.254.11.218]) by IRSMSX152.ger.corp.intel.com ([169.254.6.205]) with mapi id 14.03.0195.001; Thu, 19 Mar 2015 16:18:23 +0000 From: "Dumitrescu, Cristian" To: Alexandre Frigon , "dev@dpdk.org" Thread-Topic: Interactive/dynamic QoS scheduler Thread-Index: AdBhni9x80gxiY2sQ8mQ1i2gBIi6EwAk9R4g Date: Thu, 19 Mar 2015 16:18:22 +0000 Message-ID: <3EB4FA525960D640B5BDFFD6A3D8912632324996@IRSMSX108.ger.corp.intel.com> References: <3C433001F624134981FFEE5BA9665CCC09CD1F@eusaamb107.ericsson.se> In-Reply-To: <3C433001F624134981FFEE5BA9665CCC09CD1F@eusaamb107.ericsson.se> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] Interactive/dynamic QoS scheduler X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Mar 2015 16:18:26 -0000 Hi Alexandre, > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Alexandre Frigon > Sent: Wednesday, March 18, 2015 5:10 PM > To: dev@dpdk.org > Subject: [dpdk-dev] Interactive/dynamic QoS scheduler >=20 > Hi, >=20 > I'm currently working with the QoS api. I would like to know if it is pos= sible to > have interaction at runtime with the parameter applied to pipes, subport = and > queue. Yes, it is. You can call API functions rte_sched_subport_config() and rte_s= ched_pipe_config() at run-time to re-configure the subport and pipe rates. This assumes that the port has been configured during initialization, with = all the port subports and pipes fully provisioned at this time (through the= port configuration parameters n_subports_per_port and n_pipes_per_subport)= . Please note you need to call the subport and pipe config functions before= you put any packets in their associated queues (typically, these functions= are first called at initialization for all the port subports and pipes), b= ut you can call them again later on to modify their previously assigned rat= es. All the pipe profiles are set in stone once the port is initialized (throug= h port configuration parameter pipe_profiles), what you can do at run-time = is to re-assign a pipe to a different pre-defined profile, which basically = changes the rate of the pipe. >=20 > Looking at the Scheduler sample, I understand that all of these parameter= s > are predetermined using profiles in the config file. > What I would like to do is interact with the scheduler to change subport,= pipe > and tc rate or size with arbitrary value at runtime to have control over = traffic. >=20 This is just a limitation of the qos_sched application, which currently doe= s not provide any mechanism for the dynamic update of the subport/pipe para= meters. > For example: > The scheduler sample is running and at any given time I want a number of > pipe to drop from 10Gbit to 4.5 Gbit and then put it back to 8Gbit. > Profiles are not useful in this case because I would have to set a differ= ent > profile for each value from rate 1bit to 10Gbit. >=20 > Is it actually possible to do that and how? >=20 Yes, it is relatively simple to do it. The qos_sched application has a CLI = that only implements some stats-related commands, but new commands could be= added to update the subport/pipe configuration. At this point, you need to= write that (relatively low complexity) code yourself unfortunately. Please= consider developing a code patch to add this support and share it with the= DPDK community! > Thanks, > Alexandre F.