mbox series

[v14,0/5] Add PIE support for HQoS library

Message ID 20211015081620.2873739-1-wojciechx.liguzinski@intel.com (mailing list archive)
Headers
Series Add PIE support for HQoS library |

Message

Liguzinski, WojciechX Oct. 15, 2021, 8:16 a.m. UTC
  DPDK sched library is equipped with mechanism that secures it from the bufferbloat problem
which is a situation when excess buffers in the network cause high latency and latency 
variation. Currently, it supports RED for active queue management (which is designed 
to control the queue length but it does not control latency directly and is now being 
obsoleted). However, more advanced queue management is required to address this problem
and provide desirable quality of service to users.

This solution (RFC) proposes usage of new algorithm called "PIE" (Proportional Integral
controller Enhanced) that can effectively and directly control queuing latency to address 
the bufferbloat problem.

The implementation of mentioned functionality includes modification of existing and 
adding a new set of data structures to the library, adding PIE related APIs. 
This affects structures in public API/ABI. That is why deprecation notice is going
to be prepared and sent.

Liguzinski, WojciechX (5):
  sched: add PIE based congestion management
  example/qos_sched: add PIE support
  example/ip_pipeline: add PIE support
  doc/guides/prog_guide: added PIE
  app/test: add tests for PIE

 app/test/meson.build                         |    4 +
 app/test/test_pie.c                          | 1065 ++++++++++++++++++
 config/rte_config.h                          |    1 -
 doc/guides/prog_guide/glossary.rst           |    3 +
 doc/guides/prog_guide/qos_framework.rst      |   60 +-
 doc/guides/prog_guide/traffic_management.rst |   13 +-
 drivers/net/softnic/rte_eth_softnic_tm.c     |    6 +-
 examples/ip_pipeline/tmgr.c                  |  142 +--
 examples/qos_sched/app_thread.c              |    1 -
 examples/qos_sched/cfg_file.c                |  111 +-
 examples/qos_sched/cfg_file.h                |    5 +
 examples/qos_sched/init.c                    |   27 +-
 examples/qos_sched/main.h                    |    3 +
 examples/qos_sched/profile.cfg               |  196 ++--
 lib/sched/meson.build                        |   10 +-
 lib/sched/rte_pie.c                          |   86 ++
 lib/sched/rte_pie.h                          |  398 +++++++
 lib/sched/rte_sched.c                        |  240 ++--
 lib/sched/rte_sched.h                        |   63 +-
 lib/sched/version.map                        |    3 +
 20 files changed, 2161 insertions(+), 276 deletions(-)
 create mode 100644 app/test/test_pie.c
 create mode 100644 lib/sched/rte_pie.c
 create mode 100644 lib/sched/rte_pie.h
  

Comments

Cristian Dumitrescu Oct. 15, 2021, 1:56 p.m. UTC | #1
> -----Original Message-----
> From: Liguzinski, WojciechX <wojciechx.liguzinski@intel.com>
> Sent: Friday, October 15, 2021 9:16 AM
> To: dev@dpdk.org; Singh, Jasvinder <jasvinder.singh@intel.com>;
> Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Cc: Ajmera, Megha <megha.ajmera@intel.com>
> Subject: [PATCH v14 0/5] Add PIE support for HQoS library
> 
> DPDK sched library is equipped with mechanism that secures it from the
> bufferbloat problem
> which is a situation when excess buffers in the network cause high latency
> and latency
> variation. Currently, it supports RED for active queue management (which is
> designed
> to control the queue length but it does not control latency directly and is now
> being
> obsoleted). 

Please remove the statement that RED is obsolete, as it is not true. Please refer only to the benefits on the new algorithm without any generic negative statements not supported by data versus other algorithms, thank you!

However, more advanced queue management is required to
> address this problem
> and provide desirable quality of service to users.
> 
> This solution (RFC) proposes usage of new algorithm called "PIE"
> (Proportional Integral
> controller Enhanced) that can effectively and directly control queuing latency
> to address
> the bufferbloat problem.
> 
> The implementation of mentioned functionality includes modification of
> existing and
> adding a new set of data structures to the library, adding PIE related APIs.
> This affects structures in public API/ABI. That is why deprecation notice is
> going
> to be prepared and sent.
> 
> Liguzinski, WojciechX (5):
>   sched: add PIE based congestion management
>   example/qos_sched: add PIE support
>   example/ip_pipeline: add PIE support
>   doc/guides/prog_guide: added PIE
>   app/test: add tests for PIE
> 
>  app/test/meson.build                         |    4 +
>  app/test/test_pie.c                          | 1065 ++++++++++++++++++
>  config/rte_config.h                          |    1 -
>  doc/guides/prog_guide/glossary.rst           |    3 +
>  doc/guides/prog_guide/qos_framework.rst      |   60 +-
>  doc/guides/prog_guide/traffic_management.rst |   13 +-
>  drivers/net/softnic/rte_eth_softnic_tm.c     |    6 +-
>  examples/ip_pipeline/tmgr.c                  |  142 +--
>  examples/qos_sched/app_thread.c              |    1 -
>  examples/qos_sched/cfg_file.c                |  111 +-
>  examples/qos_sched/cfg_file.h                |    5 +
>  examples/qos_sched/init.c                    |   27 +-
>  examples/qos_sched/main.h                    |    3 +
>  examples/qos_sched/profile.cfg               |  196 ++--
>  lib/sched/meson.build                        |   10 +-
>  lib/sched/rte_pie.c                          |   86 ++
>  lib/sched/rte_pie.h                          |  398 +++++++
>  lib/sched/rte_sched.c                        |  240 ++--
>  lib/sched/rte_sched.h                        |   63 +-
>  lib/sched/version.map                        |    3 +
>  20 files changed, 2161 insertions(+), 276 deletions(-)
>  create mode 100644 app/test/test_pie.c
>  create mode 100644 lib/sched/rte_pie.c
>  create mode 100644 lib/sched/rte_pie.h
> 
> --
> 2.25.1
  
Liguzinski, WojciechX Oct. 19, 2021, 8:26 a.m. UTC | #2
Hi Cristian,

Done.

BR,
Wojtek

-----Original Message-----
From: Dumitrescu, Cristian <cristian.dumitrescu@intel.com> 
Sent: Friday, October 15, 2021 3:57 PM
To: Liguzinski, WojciechX <wojciechx.liguzinski@intel.com>; dev@dpdk.org; Singh, Jasvinder <jasvinder.singh@intel.com>
Cc: Ajmera, Megha <megha.ajmera@intel.com>
Subject: RE: [PATCH v14 0/5] Add PIE support for HQoS library



> -----Original Message-----
> From: Liguzinski, WojciechX <wojciechx.liguzinski@intel.com>
> Sent: Friday, October 15, 2021 9:16 AM
> To: dev@dpdk.org; Singh, Jasvinder <jasvinder.singh@intel.com>; 
> Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Cc: Ajmera, Megha <megha.ajmera@intel.com>
> Subject: [PATCH v14 0/5] Add PIE support for HQoS library
> 
> DPDK sched library is equipped with mechanism that secures it from the 
> bufferbloat problem which is a situation when excess buffers in the 
> network cause high latency and latency variation. Currently, it 
> supports RED for active queue management (which is designed to control 
> the queue length but it does not control latency directly and is now 
> being obsoleted).

Please remove the statement that RED is obsolete, as it is not true. Please refer only to the benefits on the new algorithm without any generic negative statements not supported by data versus other algorithms, thank you!

However, more advanced queue management is required to
> address this problem
> and provide desirable quality of service to users.
> 
> This solution (RFC) proposes usage of new algorithm called "PIE"
> (Proportional Integral
> controller Enhanced) that can effectively and directly control queuing 
> latency to address the bufferbloat problem.
> 
> The implementation of mentioned functionality includes modification of 
> existing and adding a new set of data structures to the library, 
> adding PIE related APIs.
> This affects structures in public API/ABI. That is why deprecation 
> notice is going to be prepared and sent.
> 
> Liguzinski, WojciechX (5):
>   sched: add PIE based congestion management
>   example/qos_sched: add PIE support
>   example/ip_pipeline: add PIE support
>   doc/guides/prog_guide: added PIE
>   app/test: add tests for PIE
> 
>  app/test/meson.build                         |    4 +
>  app/test/test_pie.c                          | 1065 ++++++++++++++++++
>  config/rte_config.h                          |    1 -
>  doc/guides/prog_guide/glossary.rst           |    3 +
>  doc/guides/prog_guide/qos_framework.rst      |   60 +-
>  doc/guides/prog_guide/traffic_management.rst |   13 +-
>  drivers/net/softnic/rte_eth_softnic_tm.c     |    6 +-
>  examples/ip_pipeline/tmgr.c                  |  142 +--
>  examples/qos_sched/app_thread.c              |    1 -
>  examples/qos_sched/cfg_file.c                |  111 +-
>  examples/qos_sched/cfg_file.h                |    5 +
>  examples/qos_sched/init.c                    |   27 +-
>  examples/qos_sched/main.h                    |    3 +
>  examples/qos_sched/profile.cfg               |  196 ++--
>  lib/sched/meson.build                        |   10 +-
>  lib/sched/rte_pie.c                          |   86 ++
>  lib/sched/rte_pie.h                          |  398 +++++++
>  lib/sched/rte_sched.c                        |  240 ++--
>  lib/sched/rte_sched.h                        |   63 +-
>  lib/sched/version.map                        |    3 +
>  20 files changed, 2161 insertions(+), 276 deletions(-)  create mode 
> 100644 app/test/test_pie.c  create mode 100644 lib/sched/rte_pie.c  
> create mode 100644 lib/sched/rte_pie.h
> 
> --
> 2.25.1