From: Timothy McDaniel Date: Thu, 5 Nov 2020 21:22:51 +0000 (-0600) Subject: doc: add some features to DLB2 guide X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=95aa7101cd3c4be1e45ace58d1dd9e4aa6f69830;p=dpdk.git doc: add some features to DLB2 guide Add queue depth threshold and class of service sections to DLB2 rst file. Fixes: 5433956 ("event/dlb2: add eventdev probe") Signed-off-by: Timothy McDaniel --- diff --git a/doc/guides/eventdevs/dlb2.rst b/doc/guides/eventdevs/dlb2.rst index b9f57fd8b3..94d2c77ff4 100644 --- a/doc/guides/eventdevs/dlb2.rst +++ b/doc/guides/eventdevs/dlb2.rst @@ -363,3 +363,49 @@ increase a vdev's per-queue atomic-inflight allocation to (for example) 64: --vdev=dlb1_event,atm_inflights=64 +QID Depth Threshold +~~~~~~~~~~~~~~~~~~~ + +DLB2 supports setting and tracking queue depth thresholds. Hardware uses +the thresholds to track how full a queue is compared to its threshold. +Four buckets are used + +- Less than or equal to 50% of queue depth threshold +- Greater than 50%, but less than or equal to 75% of depth threshold +- Greater than 75%, but less than or equal to 100% of depth threshold +- Greater than 100% of depth thresholds + +Per queue threshold metrics are tracked in the DLB2 xstats, and are also +returned in the impl_opaque field of each received event. + +The per qid threshold can be specified as part of the device args, and +can be applied to all queue, a range of queues, or a single queue, as +shown below. + + .. code-block:: console + + --vdev=dlb2_event,qid_depth_thresh=all: + --vdev=dlb2_event,qid_depth_thresh=qidA-qidB: + --vdev=dlb2_event,qid_depth_thresh=qid: + +Class of service +~~~~~~~~~~~~~~~~ + +DLB2 supports provisioning the DLB2 bandwidth into 4 classes of service. + +- Class 4 corresponds to 40% of the DLB2 hardware bandwidth +- Class 3 corresponds to 30% of the DLB2 hardware bandwidth +- Class 2 corresponds to 20% of the DLB2 hardware bandwidth +- Class 1 corresponds to 10% of the DLB2 hardware bandwidth +- Class 0 corresponds to don't care + +The classes are applied globally to the set of ports contained in this +scheduling domain, which is more appropriate for the bifurcated +PMD than for the PF PMD, since the PF PMD supports just 1 scheduling +domain. + +Class of service can be specified in the devargs, as follows + + .. code-block:: console + + --vdev=dlb2_event,cos=<0..4>