From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 68A09A04BC; Fri, 9 Oct 2020 14:39:35 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BB23D1D60A; Fri, 9 Oct 2020 14:39:33 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id AA1511D600 for ; Fri, 9 Oct 2020 14:39:31 +0200 (CEST) IronPort-SDR: T690tJmHA2HGkZ3M9PCIixZsYEoynNsR8XT5O9eZlAUr0wFz2AVFB1GWwcJIDu439H3M93pdUt s3DykMNHKN6A== X-IronPort-AV: E=McAfee;i="6000,8403,9768"; a="152397565" X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="152397565" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 05:39:29 -0700 IronPort-SDR: u1sfSSn4EbtvZaRcNMDnBoGLI5BK2TPN5la5tRZ7ZQa51MhQvwuaIYMfIsnfwbdaG6jGw+9kXz WMkfVHTyoUqg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,355,1596524400"; d="scan'208";a="528914482" Received: from silpixa00400629.ir.intel.com ([10.237.214.112]) by orsmga005.jf.intel.com with ESMTP; 09 Oct 2020 05:39:28 -0700 From: Savinay Dharmappa To: cristian.dumitrescu@intel.com, jasvinder.singh@intel.com, dev@dpdk.org Cc: savinay.dharmappa@intel.com Date: Fri, 9 Oct 2020 13:39:11 +0100 Message-Id: <20201009123919.43004-1-savinay.dharmappa@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201007140915.19491-1-savinay.dharmappa@intel.com> References: <20201007140915.19491-1-savinay.dharmappa@intel.com> Subject: [dpdk-dev] [PATCH v9 0/8] Enable dynamic config of subport bandwidth X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 -- 2.17.1