Show a cover letter.

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

{
    "id": 112774,
    "url": "http://patches.dpdk.org/api/covers/112774/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20220615144341.399152-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": "<20220615144341.399152-1-spiked@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220615144341.399152-1-spiked@nvidia.com",
    "date": "2022-06-15T14:43:35",
    "name": "[v9,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/20220615144341.399152-1-spiked@nvidia.com/mbox/",
    "series": [
        {
            "id": 23541,
            "url": "http://patches.dpdk.org/api/series/23541/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=23541",
            "date": "2022-06-15T14:43:36",
            "name": "introduce per-queue available descriptor threshold and host shaper",
            "version": 9,
            "mbox": "http://patches.dpdk.org/series/23541/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/112774/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 1481DA0548;\n\tWed, 15 Jun 2022 16:44:11 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id D800342B79;\n\tWed, 15 Jun 2022 16:44:06 +0200 (CEST)",
            "from NAM02-DM3-obe.outbound.protection.outlook.com\n (mail-dm3nam02on2040.outbound.protection.outlook.com [40.107.95.40])\n by mails.dpdk.org (Postfix) with ESMTP id 3706140F19\n for <dev@dpdk.org>; Wed, 15 Jun 2022 16:44:05 +0200 (CEST)",
            "from MW4PR04CA0305.namprd04.prod.outlook.com (2603:10b6:303:82::10)\n by BN8PR12MB3185.namprd12.prod.outlook.com (2603:10b6:408:9a::32)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.14; Wed, 15 Jun\n 2022 14:44:00 +0000",
            "from CO1NAM11FT054.eop-nam11.prod.protection.outlook.com\n (2603:10b6:303:82:cafe::71) by MW4PR04CA0305.outlook.office365.com\n (2603:10b6:303:82::10) 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; Wed, 15 Jun 2022 14:44:00 +0000",
            "from mail.nvidia.com (12.22.5.236) by\n CO1NAM11FT054.mail.protection.outlook.com (10.13.174.70) 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; Wed, 15 Jun 2022 14:43:59 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL109.nvidia.com\n (10.27.9.19) with Microsoft SMTP Server (TLS) id 15.0.1497.32;\n Wed, 15 Jun 2022 14:43:58 +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; Wed, 15 Jun\n 2022 07:43:55 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=SIdimIC97CoivqCAgoOWXZpaME780pJSuVT4tnOO8i2roPczETdLHJ4n0dkFQWaUMOq83gVUzY2+gvSn3ULFIx/k//TMAovN1ZFLH83uLB9W4MAmnbAauNKA7kXnMZrROZ413Pw7FvyUbuR1FEbo772YcnS+C32TWIUVcnZeAWwpp4PC8OAyU+50K85eRfnc/wfOaQH9Te/rbiM3920ot3EnjBupr6alLdixXm8b/G/l12xvYpZugq3db5aNdg5YjL+Gx158M6qM48kMszD9nOA0+rkOmLatq7OOcW5lQiNYLLeFejTY8mzYKRNROJ41dNDl3ZHst4zjNpWDEQNrhQ==",
        "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=e7dieo0iKntbsoyyRsE7GqfPv+ghGHRn4EUF1ndlK98=;\n b=XvFyse3Pt86P78ZpUgTb+rqRTO2lLQ6p18DHvKJIP9tc7BXjVbBSl+wxPQGr6IokC3vafNnPGSlCEBSt5zyKqrkVGf9QJVUeO9/kYum1Ge4muzcJ1MUXoYgBeWLHpjNvSu7SalLGu2gU8BLKUh5RqLKdUT/ATSBN/ARDKqvIcUb/QAT6t9uPerJhX/JDjdFckOvkFL21QCyNP5wyxuRmxc1bqDXOjz6F+AifNvJo4dKl6qEa8b3miFPUitu7QqaX4FjYSz78zG3i6/EkFBZn3VPZlhazpPRssjNa08S7YYUbjZBygHL9TAzfjTAsG6B6p4R0Eyb7tJ6HWf4ubGstzQ==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 12.22.5.236) 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=e7dieo0iKntbsoyyRsE7GqfPv+ghGHRn4EUF1ndlK98=;\n b=DlSVfvEes0h9tMKrqKV+iq8D23kHJVsNEfYtUjXbu4Gw24XF1QtYpHIr8v3riZfnfGmiB3dK2LYzBaE+0a0T4wrnQBatmgWb8sgIoiRt3puBQnaNNPndI4SG3FjkkusH4xw8CIWyS4faaX2ptpx99zzUGbDuw5yMWivWdlmjMVRomRtYnZFi6cBDk1G/EW2O9I3pWHhKf0ZTBm1GkEIRg2kt0DGVM+vy7ESRctmOuXWy3vKKkG09g3GphCVwzlkKjbr54RDbGIGp1NPBlc6jbX36bVvZWzk1xC5iBXnNJzB1SRPyQqi0iZXiqSZMFcbtV4NXYhzzDt/EKWP+QN2waA==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 12.22.5.236)\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.236 as permitted sender) receiver=protection.outlook.com;\n client-ip=12.22.5.236; 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 v9 0/6] introduce per-queue available descriptor threshold and\n host shaper",
        "Date": "Wed, 15 Jun 2022 17:43:35 +0300",
        "Message-ID": "<20220615144341.399152-1-spiked@nvidia.com>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20220615125836.391771-2-spiked@nvidia.com>",
        "References": "<20220615125836.391771-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": "55535179-42c1-4439-1119-08da4edd7b6d",
        "X-MS-TrafficTypeDiagnostic": "BN8PR12MB3185:EE_",
        "X-LD-Processed": "43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr",
        "X-Microsoft-Antispam-PRVS": "\n <BN8PR12MB3185E9619DE2CCF03820D548A8AD9@BN8PR12MB3185.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 gcHlSMw+vHeZexT5YmdkzujH7gmCeQki+J8wBFhSG9XgpZJPBUazhp9CgMzL+oHNbHpuSTLHWSlPa1FPs0SzG/CmGT70VZVX0G0fg0ueksgk8U2RkC2Zup9v2nx8fXVJRQ/Ag6hNAzRriXwyfETpp3v9c7cIlXIJtfN4uvjKA3S5zksC4Ji10UGkVC95cODZaJDrR1YN3S+PvDbCuuT277d5DvJNY09PjcFJXlB/H5mlYAtd6cRrwRRKqWbfSHTIqz/IK0XN7A2ybNb8nd8yJntWz08hijAIyuGGVls8rplChqpIzyDhYza0ydeOSb4yqYvnarhcWKjk5vpiExEYWpN75At88O2TEMa7XNDvc5Eni7cln4BknK9eYBh0B7Y+WPzv6nUP/XsE06esEH6Gfg4PXoEoC7X0zj+Lr4zndWkyBZY91Jx0uCJSCoRilK9bR+IRPYYuGCUy/moazhvcKOWS0lkQtGliI6fswVJk1CKsYLi80nbMu1xNe/HfZUc6FzXRMyIJbT34xeHLo3mbn8lgjbKJDqy2w92ejQLF8IhbjuLeOXxg0K6Iu0DcniDyomG5ycLlofCix0IMppCYfpVMFqSVwWEeoUDKEfVaAOZ30ywBfJbBRQTiEUxG7ReF8B5L24mitgIP1fTmcbVDFT7yMvocsI0eGxIQjSunrblxmSyRPxWid4fTp88336d+Zi/umq+Uxs0Q2vDfBlAuyBtJ/YBnEoH1rL2KtkbFbGEgW7AYYHl7j/Q4z9PVGQPz",
        "X-Forefront-Antispam-Report": "CIP:12.22.5.236; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE;\n SFS:(13230016)(4636009)(36840700001)(40470700004)(46966006)(54906003)(36756003)(356005)(55016003)(186003)(36860700001)(6286002)(5660300002)(26005)(82310400005)(8936002)(110136005)(316002)(8676002)(81166007)(70586007)(70206006)(2616005)(426003)(83380400001)(336012)(86362001)(40460700003)(6666004)(16526019)(107886003)(7696005)(47076005)(508600001)(4326008)(2906002)(1076003)(131093003)(36900700001);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "15 Jun 2022 14:43:59.0737 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 55535179-42c1-4439-1119-08da4edd7b6d",
        "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.236];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n CO1NAM11FT054.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BN8PR12MB3185",
        "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                 |   4 +\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, 1064 insertions(+), 308 deletions(-)\n create mode 100644 drivers/net/mlx5/mlx5_testpmd.c\n create mode 100644 drivers/net/mlx5/mlx5_testpmd.h"
}