From: "Dumitrescu, Cristian" <cristian.dumitrescu@intel.com>
To: Alexandre Frigon <alexandre.frigon@ericsson.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] Interactive/dynamic QoS scheduler
Date: Thu, 19 Mar 2015 16:18:22 +0000 [thread overview]
Message-ID: <3EB4FA525960D640B5BDFFD6A3D8912632324996@IRSMSX108.ger.corp.intel.com> (raw)
In-Reply-To: <3C433001F624134981FFEE5BA9665CCC09CD1F@eusaamb107.ericsson.se>
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
>
> Hi,
>
> I'm currently working with the QoS api. I would like to know if it is possible 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_sched_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), but you can call them again later on to modify their previously assigned rates.
All the pipe profiles are set in stone once the port is initialized (through 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.
>
> Looking at the Scheduler sample, I understand that all of these parameters
> 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.
>
This is just a limitation of the qos_sched application, which currently does not provide any mechanism for the dynamic update of the subport/pipe parameters.
> 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 different
> profile for each value from rate 1bit to 10Gbit.
>
> Is it actually possible to do that and how?
>
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.
prev parent reply other threads:[~2015-03-19 16:18 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-18 17:09 Alexandre Frigon
2015-03-19 16:18 ` Dumitrescu, Cristian [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3EB4FA525960D640B5BDFFD6A3D8912632324996@IRSMSX108.ger.corp.intel.com \
--to=cristian.dumitrescu@intel.com \
--cc=alexandre.frigon@ericsson.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).