> -----Original Message-----
> From: Singh, Jasvinder
> Sent: Wednesday, July 17, 2019 4:43 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitre...@intel.com>
> Subject: [PATCH v5 00/11] sched: feature enhancements
>
> This patchset refactors the dpdk qos sched library to allow flexibile
> configuration of the pipe traffic classes and queue sizes.
>
> Currently, each pipe has 16 queues hardwired into 4 TCs scheduled with
> strict priority, and each TC has exactly with 4 queues that are
> scheduled with Weighted Fair Queuing (WFQ).
>
> Instead of hardwiring queues to traffic class within the specific pipe,
> the new implementation allows more flexible/configurable split of pipe
> queues between strict priority (SP) and best-effort (BE) traffic classes
> along with the support of more number of traffic classes i.e. max 16.
>
> All the high priority TCs (TC1, TC2, ...) have exactly 1 queue, while
> the lowest priority BE TC, has 1, 4 or 8 queues. This is justified by
> the fact that all the high priority TCs are fully provisioned (small to
> medium traffic rates), while most of the traffic fits into the BE class,
> which is typically oversubscribed.
>
> Furthermore, this change allows to use less than 16 queues per pipe when
> not all the 16 queues are needed. Therefore, no memory will be allocated
> to the queues that are not needed.
>
> v5:
> - fix traffic class and queue mapping in api function
> - remove n_be_queues parameter from internal pipe profile and pipe struct
> - replace int multiplication in grinder_schedule func with bitwise & operation
> - remove TC_OV logic flag from all the configuration/initialization code
> - fix traffic qsize per traffic class instead of individual queue of the pipe
>
> v4:
> - fix build errors
> - fix checkpatch errors
>
> v3:
> - remove code related to subport level configuration of the pipe
> - remove tc oversubscription flag from struct rte_sched_pipe_params
> - replace RTE_SCHED_PIPE_PROFILES_PER_PORT with port param field
>
> v2:
> - fix bug in subport parameters check
> - remove redundant RTE_SCHED_SUBPORT_PER_PORT macro
> - fix bug in grinder_scheduler function
> - improve doxygen comments
> - add error log information
>
> Jasvinder Singh (11):
> sched: remove wrr from strict priority tc queues
> sched: add config flexibility to tc queue sizes
> sched: add max pipe profiles config in run time
> sched: rename tc3 params to best-effort tc
> sched: improve error log messages
> sched: improve doxygen comments
> net/softnic: add config flexibility to softnic tm
> test_sched: modify tests for config flexibility
> examples/ip_pipeline: add config flexibility to tm function
> examples/qos_sched: add tc and queue config flexibility
> sched: remove redundant macros
>
> app/test/test_sched.c | 15 +-
> doc/guides/rel_notes/release_19_08.rst | 10 +-
> drivers/net/softnic/rte_eth_softnic.c | 98 ++
> drivers/net/softnic/rte_eth_softnic_cli.c | 448 +++++++++-
> .../net/softnic/rte_eth_softnic_internals.h | 6 +-
> drivers/net/softnic/rte_eth_softnic_tm.c | 121 ++-
> examples/ip_pipeline/cli.c | 43 +-
> examples/ip_pipeline/tmgr.h | 4 +-
> examples/qos_sched/app_thread.c | 11 +-
> examples/qos_sched/cfg_file.c | 130 ++-
> examples/qos_sched/init.c | 65 +-
> examples/qos_sched/main.h | 4 +
> examples/qos_sched/profile.cfg | 67 +-
> examples/qos_sched/profile_ov.cfg | 54 +-
> examples/qos_sched/stats.c | 517 ++++++-----
> lib/librte_pipeline/rte_table_action.c | 1 -
> lib/librte_pipeline/rte_table_action.h | 4 +-
> lib/librte_sched/Makefile | 2 +-
> lib/librte_sched/meson.build | 2 +-
> lib/librte_sched/rte_sched.c | 835 +++++++++++-------
> lib/librte_sched/rte_sched.h | 183 ++--
> 21 files changed, 1847 insertions(+), 773 deletions(-)
>
> --
> 2.21.0
Series-acked-by: Cristian Dumitrescu <cristian.dumitre...@intel.com>
See the replies on some individual patches for a few details that we should fix
for RC3 if we cannot get them done in time for RC2.