Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/90143/?format=api
https://patches.dpdk.org/api/patches/90143/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/1617132940-24800-27-git-send-email-timothy.mcdaniel@intel.com/", "project": { "id": 1, "url": "https://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<1617132940-24800-27-git-send-email-timothy.mcdaniel@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1617132940-24800-27-git-send-email-timothy.mcdaniel@intel.com", "date": "2021-03-30T19:35:39", "name": "[v2,26/27] doc/dlb2: update documentation for v2.5", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "0c13c21fedaf752d7ad1d00db2447cc8d1b5479b", "submitter": { "id": 826, "url": "https://patches.dpdk.org/api/people/826/?format=api", "name": "Timothy McDaniel", "email": "timothy.mcdaniel@intel.com" }, "delegate": { "id": 310, "url": "https://patches.dpdk.org/api/users/310/?format=api", "username": "jerin", "first_name": "Jerin", "last_name": "Jacob", "email": "jerinj@marvell.com" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/1617132940-24800-27-git-send-email-timothy.mcdaniel@intel.com/mbox/", "series": [ { "id": 15987, "url": "https://patches.dpdk.org/api/series/15987/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=15987", "date": "2021-03-30T19:35:14", "name": "Add DLB V2.5", "version": 2, "mbox": "https://patches.dpdk.org/series/15987/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/90143/comments/", "check": "success", "checks": "https://patches.dpdk.org/api/patches/90143/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id A2FB6A034F;\n\tTue, 30 Mar 2021 21:39:54 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 9FCA5140F9C;\n\tTue, 30 Mar 2021 21:37:23 +0200 (CEST)", "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by mails.dpdk.org (Postfix) with ESMTP id 9628D140F0F\n for <dev@dpdk.org>; Tue, 30 Mar 2021 21:36:55 +0200 (CEST)", "from orsmga008.jf.intel.com ([10.7.209.65])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 30 Mar 2021 12:36:52 -0700", "from txasoft-yocto.an.intel.com ([10.123.72.192])\n by orsmga008.jf.intel.com with ESMTP; 30 Mar 2021 12:36:51 -0700" ], "IronPort-SDR": [ "\n tjM5+/4c1pM/VktwFEvpxKLRNWYZcBeAg+D1YDyIjUbj2SoFy0nOzoTbBpjPAvy8rN3samUEsw\n WxHCi+PG8aeQ==", "\n uc/ULXxzpu6SNGRulBbeIaJypQCtBw+EuGYIp6e/SAZnYHoipFAJU4hD8xV1psdYOHSperWZEx\n /RuhOmsVzfjA==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9939\"; a=\"191315891\"", "E=Sophos;i=\"5.81,291,1610438400\"; d=\"scan'208\";a=\"191315891\"", "E=Sophos;i=\"5.81,291,1610438400\"; d=\"scan'208\";a=\"418309802\"" ], "X-ExtLoop1": "1", "From": "Timothy McDaniel <timothy.mcdaniel@intel.com>", "To": "", "Cc": "dev@dpdk.org, erik.g.carrillo@intel.com, gage.eads@intel.com,\n harry.van.haaren@intel.com, jerinj@marvell.com, thomas@monjalon.net", "Date": "Tue, 30 Mar 2021 14:35:39 -0500", "Message-Id": "<1617132940-24800-27-git-send-email-timothy.mcdaniel@intel.com>", "X-Mailer": "git-send-email 1.7.10", "In-Reply-To": "<1617132940-24800-1-git-send-email-timothy.mcdaniel@intel.com>", "References": "<20210316221857.2254-2-timothy.mcdaniel@intel.com>\n <1617132940-24800-1-git-send-email-timothy.mcdaniel@intel.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] =?utf-8?q?=5BPATCH_v2_26/27=5D_doc/dlb2=3A_update_docume?=\n\t=?utf-8?q?ntation_for_v2=2E5?=", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <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>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "Update the dlb documentation for v2.5. Notable differences include\nthe new cobined credit scheme. Also cleaned up a couple of sections,\nand removed a duplicate section.\n\nSigned-off-by: Timothy McDaniel <timothy.mcdaniel@intel.com>\n---\n doc/guides/eventdevs/dlb2.rst | 75 +++++++++++++----------------------\n 1 file changed, 27 insertions(+), 48 deletions(-)", "diff": "diff --git a/doc/guides/eventdevs/dlb2.rst b/doc/guides/eventdevs/dlb2.rst\nindex 94d2c77ff..94e46ea7d 100644\n--- a/doc/guides/eventdevs/dlb2.rst\n+++ b/doc/guides/eventdevs/dlb2.rst\n@@ -4,7 +4,8 @@\n Driver for the Intel® Dynamic Load Balancer (DLB2)\n ==================================================\n \n-The DPDK dlb poll mode driver supports the Intel® Dynamic Load Balancer.\n+The DPDK dlb poll mode driver supports the Intel® Dynamic Load Balancer,\n+hardware versions 2.0 and 2.5.\n \n Prerequisites\n -------------\n@@ -35,7 +36,7 @@ eventdev API and DLB2 misalign.\n Scheduling Domain Configuration\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n-There are 32 scheduling domainis the DLB2.\n+DLB2 supports 32 scheduling domains.\n When one is configured, it allocates load-balanced and\n directed queues, ports, credits, and other hardware resources. Some\n resource allocations are user-controlled -- the number of queues, for example\n@@ -67,42 +68,7 @@ If the ``RTE_EVENT_QUEUE_CFG_ALL_TYPES`` flag is not set, schedule_type\n dictates the queue's scheduling type.\n \n The ``nb_atomic_order_sequences`` queue configuration field sets the ordered\n-queue's reorder buffer size. DLB2 has 4 groups of ordered queues, where each\n-group is configured to contain either 1 queue with 1024 reorder entries, 2\n-queues with 512 reorder entries, and so on down to 32 queues with 32 entries.\n-\n-When a load-balanced queue is created, the PMD will configure a new sequence\n-number group on-demand if num_sequence_numbers does not match a pre-existing\n-group with available reorder buffer entries. If all sequence number groups are\n-in use, no new group will be created and queue configuration will fail. (Note\n-that when the PMD is used with a virtual DLB2 device, it cannot change the\n-sequence number configuration.)\n-\n-The queue's ``nb_atomic_flows`` parameter is ignored by the DLB2 PMD, because\n-the DLB2 does not limit the number of flows a queue can track. In the DLB2, all\n-load-balanced queues can use the full 16-bit flow ID range.\n-\n-Load-Balanced Queues\n-~~~~~~~~~~~~~~~~~~~~\n-\n-A load-balanced queue can support atomic and ordered scheduling, or atomic and\n-unordered scheduling, but not atomic and unordered and ordered scheduling. A\n-queue's scheduling types are controlled by the event queue configuration.\n-\n-If the user sets the ``RTE_EVENT_QUEUE_CFG_ALL_TYPES`` flag, the\n-``nb_atomic_order_sequences`` determines the supported scheduling types.\n-With non-zero ``nb_atomic_order_sequences``, the queue is configured for atomic\n-and ordered scheduling. In this case, ``RTE_SCHED_TYPE_PARALLEL`` scheduling is\n-supported by scheduling those events as ordered events. Note that when the\n-event is dequeued, its sched_type will be ``RTE_SCHED_TYPE_ORDERED``. Else if\n-``nb_atomic_order_sequences`` is zero, the queue is configured for atomic and\n-unordered scheduling. In this case, ``RTE_SCHED_TYPE_ORDERED`` is unsupported.\n-\n-If the ``RTE_EVENT_QUEUE_CFG_ALL_TYPES`` flag is not set, schedule_type\n-dictates the queue's scheduling type.\n-\n-The ``nb_atomic_order_sequences`` queue configuration field sets the ordered\n-queue's reorder buffer size. DLB2 has 4 groups of ordered queues, where each\n+queue's reorder buffer size. DLB2 has 2 groups of ordered queues, where each\n group is configured to contain either 1 queue with 1024 reorder entries, 2\n queues with 512 reorder entries, and so on down to 32 queues with 32 entries.\n \n@@ -157,6 +123,11 @@ type (atomic, ordered, or parallel) is not preserved, and an event's sched_type\n will be set to ``RTE_SCHED_TYPE_ATOMIC`` when it is dequeued from a directed\n port.\n \n+Finally, even though all 3 event types are supported on the same QID by\n+converting unordered events to ordered, such use should be discouraged as much\n+as possible, since mixing types on the same queue uses valuable reorder\n+resources, and orders events which do not require ordering.\n+\n Flow ID\n ~~~~~~~\n \n@@ -169,13 +140,15 @@ Hardware Credits\n DLB2 uses a hardware credit scheme to prevent software from overflowing hardware\n event storage, with each unit of storage represented by a credit. A port spends\n a credit to enqueue an event, and hardware refills the ports with credits as the\n-events are scheduled to ports. Refills come from credit pools, and each port is\n-a member of a load-balanced credit pool and a directed credit pool. The\n-load-balanced credits are used to enqueue to load-balanced queues, and directed\n-credits are used for directed queues.\n+events are scheduled to ports. Refills come from credit pools.\n \n-A DLB2 eventdev contains one load-balanced and one directed credit pool. These\n-pools' sizes are controlled by the nb_events_limit field in struct\n+For DLB v2.5, there is a single credit pool used for both load balanced and\n+directed traffic.\n+\n+For DLB v2.0, each port is a member of both a load-balanced credit pool and a\n+directed credit pool. The load-balanced credits are used to enqueue to\n+load-balanced queues, and directed credits are used for directed queues.\n+These pools' sizes are controlled by the nb_events_limit field in struct\n rte_event_dev_config. The load-balanced pool is sized to contain\n nb_events_limit credits, and the directed pool is sized to contain\n nb_events_limit/4 credits. The directed pool size can be overridden with the\n@@ -276,10 +249,16 @@ The DLB2 supports event priority and per-port queue service priority, as\n described in the eventdev header file. The DLB2 does not support 'global' event\n queue priority established at queue creation time.\n \n-DLB2 supports 8 event and queue service priority levels. For both priority\n-types, the PMD uses the upper three bits of the priority field to determine the\n-DLB2 priority, discarding the 5 least significant bits. The 5 least significant\n-event priority bits are not preserved when an event is enqueued.\n+DLB2 supports 4 event and queue service priority levels. For both priority types,\n+the PMD uses the upper three bits of the priority field to determine the DLB2\n+priority, discarding the 5 least significant bits. But least significant bit out\n+of 3 priority bits is effectively ignored for binning into 4 priorities. The\n+discarded 5 least significant event priority bits are not preserved when an event\n+is enqueued.\n+\n+Note that event priority only works within the same event type.\n+When atomic and ordered or unordered events are enqueued to same QID, priority\n+across the types is always equal, and both types are served in a round robin manner.\n \n Reconfiguration\n ~~~~~~~~~~~~~~~\n", "prefixes": [ "v2", "26/27" ] }{ "id": 90143, "url": "