Show a cover letter.

GET /api/covers/112853/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 112853,
    "url": "http://patches.dpdk.org/api/covers/112853/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20220616084154.635508-1-spiked@nvidia.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<20220616084154.635508-1-spiked@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220616084154.635508-1-spiked@nvidia.com",
    "date": "2022-06-16T08:41:48",
    "name": "[v10,0/6] introduce per-queue available descriptor threshold and host shaper",
    "submitter": {
        "id": 2637,
        "url": "http://patches.dpdk.org/api/people/2637/?format=api",
        "name": "Spike Du",
        "email": "spiked@nvidia.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20220616084154.635508-1-spiked@nvidia.com/mbox/",
    "series": [
        {
            "id": 23559,
            "url": "http://patches.dpdk.org/api/series/23559/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=23559",
            "date": "2022-06-16T08:41:48",
            "name": "introduce per-queue available descriptor threshold and host shaper",
            "version": 10,
            "mbox": "http://patches.dpdk.org/series/23559/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/112853/comments/",
    "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 830FCA00BE;\n\tThu, 16 Jun 2022 10:42:22 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 773E14281E;\n\tThu, 16 Jun 2022 10:42:22 +0200 (CEST)",
            "from NAM02-SN1-obe.outbound.protection.outlook.com\n (mail-sn1anam02on2085.outbound.protection.outlook.com [40.107.96.85])\n by mails.dpdk.org (Postfix) with ESMTP id 42A324114F\n for <dev@dpdk.org>; Thu, 16 Jun 2022 10:42:21 +0200 (CEST)",
            "from BN6PR20CA0067.namprd20.prod.outlook.com (2603:10b6:404:151::29)\n by CY4PR1201MB0072.namprd12.prod.outlook.com (2603:10b6:910:1b::19)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.17; Thu, 16 Jun\n 2022 08:42:19 +0000",
            "from BN8NAM11FT023.eop-nam11.prod.protection.outlook.com\n (2603:10b6:404:151:cafe::3b) by BN6PR20CA0067.outlook.office365.com\n (2603:10b6:404:151::29) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.13 via Frontend\n Transport; Thu, 16 Jun 2022 08:42:19 +0000",
            "from mail.nvidia.com (12.22.5.238) by\n BN8NAM11FT023.mail.protection.outlook.com (10.13.177.103) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.5332.12 via Frontend Transport; Thu, 16 Jun 2022 08:42:18 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL105.nvidia.com\n (10.27.9.14) with Microsoft SMTP Server (TLS) id 15.0.1497.32;\n Thu, 16 Jun 2022 08:42:17 +0000",
            "from nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Thu, 16 Jun\n 2022 01:42:13 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=ecUpSy6PSOdkERRdoORU+xfuOLs8igW9E+ihGYrFIUEtGUaza0Etjqt64Vmm/N3zBAeNZHixdlEYpy04E9UMJ9inpXBwDBJrSTME34u9gJwupe6iinTMdW0t/fhpZ1bn1Ixog9n9QdJW9ZI7jBlFsH1iGakNszrUPWte/Q/z1IYSndWMfRBS2YLWlRbmymqT5yzUalky0mwanR6iWRjEZIp3twcARhzZaobIhO2PIrs0KOzI4XXF4StSa2zFcbwMQ0tZHyXbh05TMdGcM6z3BCEMv3/ZX5KeyWWiYJGEEqbCUYZPtPKdDAcaTivjDy59pFpFL8YZJ2ifBJfSaFofqQ==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=7jdzC2hDiqq+G6j+wVVzEu2GMsSjd7EVmtcdD4EVSl4=;\n b=hIcEt2z8Iln6mKx1f1X7hhMGWBMpB1vLoeq67eiezlXwEHCszOIhXMA5/5kKkQmthjG4FBxU0ubUSk2WKs7o28kAoH5I0v0ZEsUIm8Og0cR/17iLD6goo4eYXK0o20lLDVKEYigUBrhtXhVXm1DXm/AByUH0tk4U+mD1ZpTUAmyWPIfo+Rqrj3TIdwm1qag7QQ4nrMRW5WM9t8Ski4HvLIvU4h6IjurOWrTY+zaL/3B7KHj71tgS2xTd3inu2Ost9HwEHxqSbavYQa7NOohnEmYUg2AWpK+L0BOQb9TrodLv4oP8JleEiSPAAys1fEjS6gnHxkgiZg0fk8VuBtedsQ==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 12.22.5.238) smtp.rcpttodomain=smartsharesystems.com\n smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none\n header.from=nvidia.com; dkim=none (message not signed); arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=7jdzC2hDiqq+G6j+wVVzEu2GMsSjd7EVmtcdD4EVSl4=;\n b=gviDXllAG7HU4EKVTynZvdYR5qWbEgTlWiK54oSSaEeweWzRrZ9TGPCIq685XSNzxLxyUDrBRQ2ZnO7IMjpdlsbMK6t1T1fU1LaD7aCZ79my7csrQCkp5TuUc7eAglveLw6n1O2OmpPYuaO3G4Q70WzvgNzMatblNdcKvGfmPrfKmqVMIFDDw1ikOgBRS87ZvjIoPj8SHKZ2jCUe66mVXQ6i02XZP3Xm2UrenYtFEZG4IMTJLlGRSt5e+5ga2Oj2ul3korq0RcRJokLjRc6RpnlY8kgjP0X+bbyNe7T6OXmY+WiAhxG+U6Botzt92gnzuivyrrXNCvLAuKf3G/PUJg==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 12.22.5.238)\n smtp.mailfrom=nvidia.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 12.22.5.238 as permitted sender) receiver=protection.outlook.com;\n client-ip=12.22.5.238; helo=mail.nvidia.com; pr=C",
        "From": "Spike Du <spiked@nvidia.com>",
        "To": "<matan@nvidia.com>, <viacheslavo@nvidia.com>, <orika@nvidia.com>,\n <thomas@monjalon.net>",
        "CC": "<andrew.rybchenko@oktetlabs.ru>, <stephen@networkplumber.org>,\n <mb@smartsharesystems.com>, <dev@dpdk.org>, <rasland@nvidia.com>",
        "Subject": "[PATCH v10 0/6] introduce per-queue available descriptor threshold\n and host shaper",
        "Date": "Thu, 16 Jun 2022 11:41:48 +0300",
        "Message-ID": "<20220616084154.635508-1-spiked@nvidia.com>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20220615144341.399152-2-spiked@nvidia.com>",
        "References": "<20220615144341.399152-2-spiked@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.126.230.35]",
        "X-ClientProxiedBy": "rnnvmail202.nvidia.com (10.129.68.7) To\n rnnvmail201.nvidia.com (10.129.68.8)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "c8e31943-2e47-4260-4380-08da4f741f21",
        "X-MS-TrafficTypeDiagnostic": "CY4PR1201MB0072:EE_",
        "X-LD-Processed": "43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr",
        "X-Microsoft-Antispam-PRVS": "\n <CY4PR1201MB00726085CDE1BBFBB9F56E84A8AC9@CY4PR1201MB0072.namprd12.prod.outlook.com>",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n 60h8apLjZqHgXIXw5tvF6qDNqx/Tk0jDi7UwwT/InMPVB6PEPKvLve9ZZsCK81Onuc+YHPsywqFALVua43f2SieJvPERKZ1I8MbGk2KaNbX5vJpJzOY4QtyiKVhYfLmPESd+2A+n5xs5XRMek51lUaLSz4g5slGaGTjHoa+yRsGZUHhkHpO6fMFL5Tt9IO+BLSZE+1ZEWVejwgTpFj29u8CAhk78LxsdDXvD8YAfLSDUJep16likVkA9dTqjpd8gmKrg02UHUGnKhS7tk85k48FWPA70dtXce9xSypjg61Vfa+ntXaOQ8U8a5N5WPNHRNyzJMu5a/L1mfhnQafDrv+TrNWYDUTDcVHMm66MqBC4ZUZt6tr9sWNuNtkL0zGB+KvkRJ7u49/YFzB/JZES6Llvx2Z4Vy2Kk7gjfxcgUNFuYWlqyVvPe94R48bfKkDuWYeW2dsCC65kkcKoDSJHf5dojYukq1tMMLOe1KpQqKthnX+3NAF0RKmKB6e802nUS4+WW8ESgHs5P3fSAxV7shpBnM6GgtrAFa2NXXn6z0LyKylRxOVfYq3TUPJATgIDb/7C7QxyYLby77g5pB7H4n+Rg5dSjPrKt4ZHnOdklgDziK1WZH9g2A/Xk2Qu7+GSTlMh2/Bl6pJ7HzA4dSpfYGCadXpar3F8qe2KAOhof3Ddt1+DJRwHVN3duXFVNY8gftl9LieF/lxe0xgp81t/Y5aKihm6e/bMBB76Ivvh7196LmbR8naUHoYwPIPT87Qxt",
        "X-Forefront-Antispam-Report": "CIP:12.22.5.238; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE;\n SFS:(13230016)(4636009)(46966006)(36840700001)(40470700004)(55016003)(47076005)(336012)(426003)(7696005)(36756003)(16526019)(83380400001)(110136005)(2616005)(82310400005)(107886003)(81166007)(356005)(8936002)(8676002)(4326008)(36860700001)(6286002)(54906003)(6666004)(70206006)(186003)(26005)(1076003)(5660300002)(316002)(70586007)(2906002)(86362001)(40460700003)(508600001)(131093003)(36900700001);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "16 Jun 2022 08:42:18.1858 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n c8e31943-2e47-4260-4380-08da4f741f21",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.238];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n BN8NAM11FT023.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CY4PR1201MB0072",
        "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"
    },
    "content": "available descriptor threshold(ADT for short) is per RX queue attribute, when RX queue available descriptors for HW is below ADT, HW sends an event to application.\nHost shaper can configure shaper rate and avail_thresh-triggered for a host port.\nThe shaper limits the rate of traffic from host port to embedded ARM rx port on Nvidia BlueField 2 NIC.\nIf avail_thresh-triggered is enabled, a 100Mbps shaper is enabled automatically when one of the host port's Rx queues receives available descriptor threshold event.\n\nThese two features can combine to control traffic from host port to wire port for BlueField 2 NIC.\nThe traffic flows from host to embedded ARM, then to the physical port.\nThe work flow is on the ARM system, configure available descriptor threshold to RX queue and enable avail_thresh-triggered flag in host shaper, after receiving available descriptor threshold event, delay a while until RX queue is empty , then disable the shaper. We recycle this work flow to reduce RX queue drops on ARM system.\n\nAdd new libethdev API to set available descriptor threshold, add rte event RTE_ETH_EVENT_RX_AVAIL_THRESH to handle available descriptor threshold event. For host shaper, because it doesn't align to existing DPDK framework and is specific to Nvidia NIC, use PMD private API.\n\nFor integration with testpmd, put the private cmdline function and available descriptor threshold event handler in mlx5 PMD directory by adding a new file mlx5_testpmd.c. Follow David Marchand's driver specific commands framework to add mlx5 specific commands.\n\nSpike Du (6):\n  net/mlx5: add LWM support for Rxq\n  common/mlx5: share interrupt management\n  net/mlx5: add LWM event handling support\n  net/mlx5: support Rx queue based available descriptor threshold\n  net/mlx5: add private API to config host port shaper\n  app/testpmd: add Host Shaper command\n\n app/test-pmd/testpmd.c                       |   7 +\n doc/guides/nics/mlx5.rst                     |  93 +++++++++\n doc/guides/rel_notes/release_22_07.rst       |   2 +\n drivers/common/mlx5/linux/meson.build        |  13 ++\n drivers/common/mlx5/linux/mlx5_common_os.c   | 131 ++++++++++++\n drivers/common/mlx5/linux/mlx5_common_os.h   |  11 +\n drivers/common/mlx5/mlx5_prm.h               |  26 +++\n drivers/common/mlx5/version.map              |   2 +\n drivers/common/mlx5/windows/mlx5_common_os.h |  24 +++\n drivers/net/mlx5/linux/mlx5_ethdev_os.c      |  71 -------\n drivers/net/mlx5/linux/mlx5_os.c             | 132 +++---------\n drivers/net/mlx5/linux/mlx5_socket.c         |  53 +----\n drivers/net/mlx5/meson.build                 |   3 +\n drivers/net/mlx5/mlx5.c                      |  68 +++++++\n drivers/net/mlx5/mlx5.h                      |  12 +-\n drivers/net/mlx5/mlx5_devx.c                 |  60 +++++-\n drivers/net/mlx5/mlx5_devx.h                 |   1 +\n drivers/net/mlx5/mlx5_rx.c                   | 288 +++++++++++++++++++++++++++\n drivers/net/mlx5/mlx5_rx.h                   |  13 ++\n drivers/net/mlx5/mlx5_testpmd.c              | 205 +++++++++++++++++++\n drivers/net/mlx5/mlx5_testpmd.h              |  26 +++\n drivers/net/mlx5/mlx5_txpp.c                 |  28 +--\n drivers/net/mlx5/rte_pmd_mlx5.h              |  30 +++\n drivers/net/mlx5/version.map                 |   2 +\n drivers/net/mlx5/windows/mlx5_ethdev_os.c    |  22 --\n drivers/vdpa/mlx5/mlx5_vdpa_virtq.c          |  48 +----\n 26 files changed, 1063 insertions(+), 308 deletions(-)\n create mode 100644 drivers/net/mlx5/mlx5_testpmd.c\n create mode 100644 drivers/net/mlx5/mlx5_testpmd.h"
}