mbox series

[v9,0/8] Enable dynamic config of subport bandwidth

Message ID 20201009123919.43004-1-savinay.dharmappa@intel.com (mailing list archive)
Headers
Series Enable dynamic config of subport bandwidth |

Message

Savinay Dharmappa Oct. 9, 2020, 12:39 p.m. UTC
  DPDK sched library allows runtime configuration of the pipe profiles to the
pipes of the subport once scheduler hierarchy is constructed. However, to
change the subport level bandwidth, existing hierarchy needs to be
dismantled and whole process of building hierarchy under subport nodes
needs to be repeated which might result in router downtime. Furthermore,
due to lack of dynamic configuration of the subport bandwidth profile
configuration (shaper and Traffic class rates), the user application
is unable to dynamically re-distribute the excess-bandwidth of one subport
among other subports in the scheduler hierarchy. Therefore, it is also not
possible to adjust the subport bandwidth profile in sync with dynamic
changes in pipe profiles of subscribers who want to consume higher
bandwidth opportunistically.

This patch series implements dynamic configuration of the subport bandwidth
profile to overcome the runtime situation when group of subscribers are not
using the allotted bandwidth and dynamic bandwidth re-distribution is
needed the without making any structural changes in the hierarchy.

The implementation work includes refactoring the existing api and
data structures defined for port and subport level, new APIs for
adding subport level bandwidth profiles that can be used in runtime.

---
v8 -> v9
   - updated ABI section in release notes.
   - Addressed review comments from patch 8
     of v8.

v7 -> v8
   - Fix doxygen and clang build error.

v6 -> v7
   - Fix checkpatch warning
     and patch apply issue.

v5 -> v6
   - Fix build warning.
   - change cli of tmgr :
       * remove queue size and pipes per subport 
	 from cmdline argument to add traffic 
	 manager subport profile.
      
       * add pipes per subport as cmdline argument
	 to create traffic manger port.
   
v4 -> v5
   - Review comments from patch 3 & 6
     from v4 are addressed.

v3 -> v4
   - Fix patch apply issue.

v2 -> v3
   - Review comments from patch 3 & 5
     from v2 are addressed.

v1 -> v2
   - Fix checkpatch warnings.
---

Savinay Dharmappa (8):
  sched: add support profile table
  sched: introduce subport profile add function
  sched: update subport rate dynamically
  example/qos_sched: update subport rate dynamically
  example/ip_pipeline: update subport rate dynamically
  drivers/softnic: update subport rate dynamically
  app/test_sched: update subport rate dynamically
  sched: remove redundant code

 app/test/test_sched.c                         |  15 +-
 doc/guides/rel_notes/deprecation.rst          |   6 -
 doc/guides/rel_notes/release_20_11.rst        |  15 +
 .../net/softnic/rte_eth_softnic_internals.h   |  11 +-
 drivers/net/softnic/rte_eth_softnic_tm.c      | 243 +++++--
 examples/ip_pipeline/cli.c                    |  68 +-
 examples/ip_pipeline/tmgr.c                   | 121 +++-
 examples/ip_pipeline/tmgr.h                   |   5 +-
 examples/qos_sched/cfg_file.c                 | 151 ++--
 examples/qos_sched/cfg_file.h                 |   4 +
 examples/qos_sched/init.c                     |  21 +-
 examples/qos_sched/main.h                     |   1 +
 examples/qos_sched/profile.cfg                |   3 +
 lib/librte_sched/rte_sched.c                  | 678 ++++++++++++------
 lib/librte_sched/rte_sched.h                  |  73 +-
 lib/librte_sched/rte_sched_version.map        |   2 +
 16 files changed, 972 insertions(+), 445 deletions(-)

Series-acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
  

Comments

Thomas Monjalon Oct. 11, 2020, 8:11 p.m. UTC | #1
09/10/2020 14:39, Savinay Dharmappa:
> DPDK sched library allows runtime configuration of the pipe profiles to the
> pipes of the subport once scheduler hierarchy is constructed. However, to
> change the subport level bandwidth, existing hierarchy needs to be
> dismantled and whole process of building hierarchy under subport nodes
> needs to be repeated which might result in router downtime. Furthermore,
> due to lack of dynamic configuration of the subport bandwidth profile
> configuration (shaper and Traffic class rates), the user application
> is unable to dynamically re-distribute the excess-bandwidth of one subport
> among other subports in the scheduler hierarchy. Therefore, it is also not
> possible to adjust the subport bandwidth profile in sync with dynamic
> changes in pipe profiles of subscribers who want to consume higher
> bandwidth opportunistically.
> 
> This patch series implements dynamic configuration of the subport bandwidth
> profile to overcome the runtime situation when group of subscribers are not
> using the allotted bandwidth and dynamic bandwidth re-distribution is
> needed the without making any structural changes in the hierarchy.
> 
> The implementation work includes refactoring the existing api and
> data structures defined for port and subport level, new APIs for
> adding subport level bandwidth profiles that can be used in runtime.
> 
> ---
> v8 -> v9
>    - updated ABI section in release notes.
>    - Addressed review comments from patch 8
>      of v8.

I was asking a question in my reply to v8 but you didn't hit the "reply" button.

One more question: why don't you keep the ack given by Cristian in v7?
  
Savinay Dharmappa Oct. 12, 2020, 5:24 a.m. UTC | #2
09/10/2020 14:39, Savinay Dharmappa:
> DPDK sched library allows runtime configuration of the pipe profiles 
> to the pipes of the subport once scheduler hierarchy is constructed. 
> However, to change the subport level bandwidth, existing hierarchy 
> needs to be dismantled and whole process of building hierarchy under 
> subport nodes needs to be repeated which might result in router 
> downtime. Furthermore, due to lack of dynamic configuration of the 
> subport bandwidth profile configuration (shaper and Traffic class 
> rates), the user application is unable to dynamically re-distribute 
> the excess-bandwidth of one subport among other subports in the 
> scheduler hierarchy. Therefore, it is also not possible to adjust the 
> subport bandwidth profile in sync with dynamic changes in pipe 
> profiles of subscribers who want to consume higher bandwidth opportunistically.
> 
> This patch series implements dynamic configuration of the subport 
> bandwidth profile to overcome the runtime situation when group of 
> subscribers are not using the allotted bandwidth and dynamic bandwidth 
> re-distribution is needed the without making any structural changes in the hierarchy.
> 
> The implementation work includes refactoring the existing api and data 
> structures defined for port and subport level, new APIs for adding 
> subport level bandwidth profiles that can be used in runtime.
> 
> ---
> v8 -> v9
>    - updated ABI section in release notes.
>    - Addressed review comments from patch 8
>      of v8.

I was asking a question in my reply to v8 but you didn't hit the "reply" button.
>> sorry for that. All the question raised by you were relevant so I addressed them and sent out v9. 

One more question: why don't you keep the ack given by Cristian in v7?
>> I am carrying ack given Cristian in v9, but It is at the bottom of cover letter.
  
Savinay Dharmappa Oct. 12, 2020, 11:08 p.m. UTC | #3
09/10/2020 14:39, Savinay Dharmappa:
> DPDK sched library allows runtime configuration of the pipe profiles 
> to the pipes of the subport once scheduler hierarchy is constructed.
> However, to change the subport level bandwidth, existing hierarchy 
> needs to be dismantled and whole process of building hierarchy under 
> subport nodes needs to be repeated which might result in router 
> downtime. Furthermore, due to lack of dynamic configuration of the 
> subport bandwidth profile configuration (shaper and Traffic class 
> rates), the user application is unable to dynamically re-distribute 
> the excess-bandwidth of one subport among other subports in the 
> scheduler hierarchy. Therefore, it is also not possible to adjust the 
> subport bandwidth profile in sync with dynamic changes in pipe 
> profiles of subscribers who want to consume higher bandwidth opportunistically.
> 
> This patch series implements dynamic configuration of the subport 
> bandwidth profile to overcome the runtime situation when group of 
> subscribers are not using the allotted bandwidth and dynamic bandwidth 
> re-distribution is needed the without making any structural changes in the hierarchy.
> 
> The implementation work includes refactoring the existing api and data 
> structures defined for port and subport level, new APIs for adding 
> subport level bandwidth profiles that can be used in runtime.
> 
> ---
> v8 -> v9
>    - updated ABI section in release notes.
>    - Addressed review comments from patch 8
>      of v8.

I was asking a question in my reply to v8 but you didn't hit the "reply" button.
>> sorry for that. All the question raised by you were relevant so I addressed them and sent out v9. 

One more question: why don't you keep the ack given by Cristian in v7?
>> I am carrying ack given Cristian in v9, but It is at the bottom of cover letter.
>>  should I resend the patch  placing ack  just before version changes info?
  
Savinay Dharmappa Oct. 13, 2020, 1:56 p.m. UTC | #4
-----Original Message-----
From: Dharmappa, Savinay 
Sent: Tuesday, October 13, 2020 4:39 AM
To: 'Thomas Monjalon' <thomas@monjalon.net>
Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>; Singh, Jasvinder <jasvinder.singh@intel.com>; 'dev@dpdk.org' <dev@dpdk.org>
Subject: RE: [dpdk-dev] [PATCH v9 0/8] Enable dynamic config of subport bandwidth

09/10/2020 14:39, Savinay Dharmappa:
> DPDK sched library allows runtime configuration of the pipe profiles 
> to the pipes of the subport once scheduler hierarchy is constructed.
> However, to change the subport level bandwidth, existing hierarchy 
> needs to be dismantled and whole process of building hierarchy under 
> subport nodes needs to be repeated which might result in router 
> downtime. Furthermore, due to lack of dynamic configuration of the 
> subport bandwidth profile configuration (shaper and Traffic class 
> rates), the user application is unable to dynamically re-distribute 
> the excess-bandwidth of one subport among other subports in the 
> scheduler hierarchy. Therefore, it is also not possible to adjust the 
> subport bandwidth profile in sync with dynamic changes in pipe 
> profiles of subscribers who want to consume higher bandwidth opportunistically.
> 
> This patch series implements dynamic configuration of the subport 
> bandwidth profile to overcome the runtime situation when group of 
> subscribers are not using the allotted bandwidth and dynamic bandwidth 
> re-distribution is needed the without making any structural changes in the hierarchy.
> 
> The implementation work includes refactoring the existing api and data 
> structures defined for port and subport level, new APIs for adding 
> subport level bandwidth profiles that can be used in runtime.
> 
> ---
> v8 -> v9
>    - updated ABI section in release notes.
>    - Addressed review comments from patch 8
>      of v8.

I was asking a question in my reply to v8 but you didn't hit the "reply" button.
>> sorry for that. All the question raised by you were relevant so I addressed them and sent out v9. 

One more question: why don't you keep the ack given by Cristian in v7?
>> I am carrying ack given Cristian in v9, but It is at the bottom of cover letter.
>>  should I resend the patch  placing ack  just before version changes info?

Hi Thomas,

Could you please let me know  regarding resending the patch ?
  
Thomas Monjalon Oct. 13, 2020, 2:06 p.m. UTC | #5
13/10/2020 15:56, Dharmappa, Savinay:
> 09/10/2020 14:39, Savinay Dharmappa:
> One more question: why don't you keep the ack given by Cristian in v7?
> >> I am carrying ack given Cristian in v9, but It is at the bottom of cover letter.
> >>  should I resend the patch  placing ack  just before version changes info?
> 
> Hi Thomas,
> 
> Could you please let me know  regarding resending the patch ?

That's fine, I should be able to merge v9.
  
Thomas Monjalon Oct. 15, 2020, 12:17 a.m. UTC | #6
09/10/2020 14:39, Savinay Dharmappa:
> DPDK sched library allows runtime configuration of the pipe profiles to the
> pipes of the subport once scheduler hierarchy is constructed. However, to
> change the subport level bandwidth, existing hierarchy needs to be
> dismantled and whole process of building hierarchy under subport nodes
> needs to be repeated which might result in router downtime. Furthermore,
> due to lack of dynamic configuration of the subport bandwidth profile
> configuration (shaper and Traffic class rates), the user application
> is unable to dynamically re-distribute the excess-bandwidth of one subport
> among other subports in the scheduler hierarchy. Therefore, it is also not
> possible to adjust the subport bandwidth profile in sync with dynamic
> changes in pipe profiles of subscribers who want to consume higher
> bandwidth opportunistically.
> 
> This patch series implements dynamic configuration of the subport bandwidth
> profile to overcome the runtime situation when group of subscribers are not
> using the allotted bandwidth and dynamic bandwidth re-distribution is
> needed the without making any structural changes in the hierarchy.
> 
> The implementation work includes refactoring the existing api and
> data structures defined for port and subport level, new APIs for
> adding subport level bandwidth profiles that can be used in runtime.
> 
> Savinay Dharmappa (8):
>   sched: add support profile table
>   sched: introduce subport profile add function
>   sched: update subport rate dynamically
>   example/qos_sched: update subport rate dynamically
>   example/ip_pipeline: update subport rate dynamically
>   drivers/softnic: update subport rate dynamically
>   app/test_sched: update subport rate dynamically
>   sched: remove redundant code
> 
> Series-acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>

Applied with few minor changes in release notes, thanks