From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id 44868A046B
	for <public@inbox.dpdk.org>; Tue, 25 Jun 2019 17:32:03 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 1641E1B9F7;
	Tue, 25 Jun 2019 17:32:02 +0200 (CEST)
Received: from mga05.intel.com (mga05.intel.com [192.55.52.43])
 by dpdk.org (Postfix) with ESMTP id 46F851B9F4
 for <dev@dpdk.org>; Tue, 25 Jun 2019 17:32:01 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga006.jf.intel.com ([10.7.209.51])
 by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 25 Jun 2019 08:32:00 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.63,416,1557212400"; d="scan'208";a="166711353"
Received: from silpixa00381635.ir.intel.com (HELO
 silpixa00381635.ger.corp.intel.com) ([10.237.223.4])
 by orsmga006.jf.intel.com with ESMTP; 25 Jun 2019 08:31:58 -0700
From: Jasvinder Singh <jasvinder.singh@intel.com>
To: dev@dpdk.org
Cc: cristian.dumitrescu@intel.com
Date: Tue, 25 Jun 2019 16:31:49 +0100
Message-Id: <20190625153217.24301-1-jasvinder.singh@intel.com>
X-Mailer: git-send-email 2.21.0
In-Reply-To: <20190528120553.2992-2-lukaszx.krakowiak@intel.com>
References: <20190528120553.2992-2-lukaszx.krakowiak@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: [dpdk-dev] [PATCH v2 00/28] sched: feature enhancements
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

This patchset refactors the dpdk qos sched library to add
following features to enhance the scheduler functionality.

1. flexibile configuration of the pipe traffic classes and queues;

   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.

2. Subport level configuration of pipe nodes;

   Currently, all parameters for the pipe nodes (subscribers) configuration
   are part of the port level structure which forces all groups of
   subscribers (i.e. pipes) in different subports to have similar
   configurations in terms of their number, queue sizes, traffic-classes,
   etc.

   The new implementation moves pipe nodes configuration parameters from
   port level to subport level structure. Therefore, different subports of
   the same port can have different configuration for the pipe nodes
   (subscribers), for examples- number of pipes, queue sizes, queues to
   traffic-class mapping, etc.

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 (27):
  sched: update macros for flexible config
  sched: update subport and pipe data structures
  sched: update internal data structures
  sched: update port config API
  sched: update port free API
  sched: update subport config API
  sched: update pipe profile add API
  sched: update pipe config API
  sched: update pkt read and write API
  sched: update subport and tc queue stats
  sched: update port memory footprint API
  sched: update packet enqueue API
  sched: update grinder pipe and tc cache
  sched: update grinder next pipe and tc functions
  sched: update pipe and tc queues prefetch
  sched: update grinder wrr compute function
  sched: modify credits update function
  sched: update mbuf prefetch function
  sched: update grinder schedule function
  sched: update grinder handle function
  sched: update packet dequeue API
  sched: update sched queue stats API
  test/sched: update unit test
  net/softnic: update softnic tm function
  examples/qos_sched: update qos sched sample app
  examples/ip_pipeline: update ip pipeline sample app
  sched: code cleanup

Lukasz Krakowiak (1):
  sched: add release note

 app/test/test_sched.c                         |   39 +-
 doc/guides/rel_notes/deprecation.rst          |    6 -
 doc/guides/rel_notes/release_19_08.rst        |    7 +-
 drivers/net/softnic/rte_eth_softnic.c         |  131 +
 drivers/net/softnic/rte_eth_softnic_cli.c     |  286 ++-
 .../net/softnic/rte_eth_softnic_internals.h   |    8 +-
 drivers/net/softnic/rte_eth_softnic_tm.c      |   89 +-
 examples/ip_pipeline/cli.c                    |   85 +-
 examples/ip_pipeline/tmgr.c                   |   22 +-
 examples/ip_pipeline/tmgr.h                   |    3 -
 examples/qos_sched/app_thread.c               |   11 +-
 examples/qos_sched/cfg_file.c                 |  283 ++-
 examples/qos_sched/init.c                     |  111 +-
 examples/qos_sched/main.h                     |    7 +-
 examples/qos_sched/profile.cfg                |   59 +-
 examples/qos_sched/profile_ov.cfg             |   47 +-
 examples/qos_sched/stats.c                    |  483 ++--
 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                  | 2133 ++++++++++-------
 lib/librte_sched/rte_sched.h                  |  229 +-
 lib/librte_sched/rte_sched_common.h           |   41 +
 24 files changed, 2634 insertions(+), 1455 deletions(-)

-- 
2.21.0