Show a cover letter.

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

{
    "id": 99429,
    "url": "https://patches.dpdk.org/api/covers/99429/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/cover/20210922140953.19388-1-konstantin.ananyev@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": "<20210922140953.19388-1-konstantin.ananyev@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210922140953.19388-1-konstantin.ananyev@intel.com",
    "date": "2021-09-22T14:09:48",
    "name": "[RFC,v2,0/5] hide eth dev related structures",
    "submitter": {
        "id": 33,
        "url": "https://patches.dpdk.org/api/people/33/?format=api",
        "name": "Ananyev, Konstantin",
        "email": "konstantin.ananyev@intel.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/cover/20210922140953.19388-1-konstantin.ananyev@intel.com/mbox/",
    "series": [
        {
            "id": 19084,
            "url": "https://patches.dpdk.org/api/series/19084/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=19084",
            "date": "2021-09-22T14:09:48",
            "name": "hide eth dev related structures",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/19084/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/covers/99429/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 65F57A0C45;\n\tWed, 22 Sep 2021 16:10:52 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 41FDA41198;\n\tWed, 22 Sep 2021 16:10:51 +0200 (CEST)",
            "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n by mails.dpdk.org (Postfix) with ESMTP id 311EF41196\n for <dev@dpdk.org>; Wed, 22 Sep 2021 16:10:41 +0200 (CEST)",
            "from fmsmga008.fm.intel.com ([10.253.24.58])\n by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 22 Sep 2021 07:10:35 -0700",
            "from sivswdev08.ir.intel.com ([10.237.217.47])\n by fmsmga008.fm.intel.com with ESMTP; 22 Sep 2021 07:10:21 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10114\"; a=\"203094897\"",
            "E=Sophos;i=\"5.85,314,1624345200\"; d=\"scan'208\";a=\"203094897\"",
            "E=Sophos;i=\"5.85,314,1624345200\"; d=\"scan'208\";a=\"512990022\""
        ],
        "X-ExtLoop1": "1",
        "From": "Konstantin Ananyev <konstantin.ananyev@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "xiaoyun.li@intel.com, anoobj@marvell.com, jerinj@marvell.com,\n ndabilpuram@marvell.com, adwivedi@marvell.com,\n shepard.siegel@atomicrules.com, ed.czeck@atomicrules.com,\n john.miller@atomicrules.com, irusskikh@marvell.com,\n ajit.khaparde@broadcom.com, somnath.kotur@broadcom.com,\n rahul.lakkireddy@chelsio.com, hemant.agrawal@nxp.com,\n sachin.saxena@oss.nxp.com, haiyue.wang@intel.com, johndale@cisco.com,\n hyonkim@cisco.com, qi.z.zhang@intel.com, xiao.w.wang@intel.com,\n humin29@huawei.com, yisen.zhuang@huawei.com, oulijun@huawei.com,\n beilei.xing@intel.com, jingjing.wu@intel.com, qiming.yang@intel.com,\n matan@nvidia.com, viacheslavo@nvidia.com, sthemmin@microsoft.com,\n longli@microsoft.com, heinrich.kuhn@corigine.com, kirankumark@marvell.com,\n andrew.rybchenko@oktetlabs.ru, mczekaj@marvell.com,\n jiawenwu@trustnetic.com, jianwang@trustnetic.com,\n maxime.coquelin@redhat.com, chenbo.xia@intel.com, thomas@monjalon.net,\n ferruh.yigit@intel.com, mdr@ashroe.eu, jay.jayatheerthan@intel.com,\n Konstantin Ananyev <konstantin.ananyev@intel.com>",
        "Date": "Wed, 22 Sep 2021 15:09:48 +0100",
        "Message-Id": "<20210922140953.19388-1-konstantin.ananyev@intel.com>",
        "X-Mailer": "git-send-email 2.18.0",
        "In-Reply-To": "<20210820162834.12544-1-konstantin.ananyev@intel.com>",
        "References": "<20210820162834.12544-1-konstantin.ananyev@intel.com>",
        "Subject": "[dpdk-dev] [RFC v2 0/5] hide eth dev related structures",
        "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": "The aim of these patch series is to make rte_ethdev core data structures\n(rte_eth_dev, rte_eth_dev_data, rte_eth_rxtx_callback, etc.) internal to\nDPDK and not visible to the user.\nThat should allow future possible changes to core ethdev related structures\nto be transparent to the user and help to improve ABI/API stability.\nNote that current ethdev API is preserved, but it is a formal ABI break.\n\nThe work is based on previous discussions at:\nhttps://www.mail-archive.com/dev@dpdk.org/msg211405.html\nhttps://www.mail-archive.com/dev@dpdk.org/msg216685.html\nand consists of the following main points:\n1. Copy public 'fast' function pointers (rx_pkt_burst(), etc.) and\n   related data pointer from rte_eth_dev into a separate flat array.\n   We keep it public to still be able to use inline functions for these\n   'fast' calls (like rte_eth_rx_burst(), etc.) to avoid/minimize slowdown.\n   Note that apart from function pointers itself, each element of this\n   flat array also contains two opaque pointers for each ethdev:\n   1) a pointer to an array of internal queue data pointers\n   2)  points to array of queue callback data pointers.\n   Note that exposing this extra information allows us to avoid extra\n   changes inside PMD level, plus should help to avoid possible\n   performance degradation.\n2. Change implementation of 'fast' inline ethdev functions\n   (rte_eth_rx_burst(), etc.) to use new public flat array.\n   While it is an ABI breakage, this change is intended to be transparent\n   for both users (no changes in user app is required) and PMD developers\n   (no changes in PMD is required).\n   One extra note - with new implementation RX/TX callback invocation\n   will cost one extra function call with this changes. That might cause\n   some slowdown for code-path with RX/TX callbacks heavily involved.\n   Hope such tradeoff is acceptable for the community.\n3. Move rte_eth_dev, rte_eth_dev_data, rte_eth_rxtx_callback and related\n   things into internal header: <ethdev_driver.h>.\n\nThat approach was selected to:\n  - Avoid(/minimize) possible performance losses.\n  - Minimize required changes inside PMDs.\n \nPerformance testing results (ICX 2.0GHz):\n - testpmd macswap fwd mode, plus\n   a) no RX/TX callbacks:\n      performance numbers remains the same before and after the patch\n   b) bpf-load rx 0 0 JM ./dpdk.org/examples/bpf/t3.o:\n      ~2% slowdown\n\nWould like to thank Ferruh and Jerrin for reviewing and testing previous\nversion of this RFC.\nAll interested parties please provide your feedback for v2.\nIf there would be no major objections, I plan to submit a proper v3\npatch in next few days.\n\nKonstantin Ananyev (5):\n  ethdev: allocate max space for internal queue array\n  ethdev: change input parameters for rx_queue_count\n  ethdev: copy ethdev 'burst' API into separate structure\n  ethdev: make burst functions to use new flat array\n  ethdev: hide eth dev related structures\n\n app/test-pmd/config.c                         |  23 +-\n drivers/common/octeontx2/otx2_sec_idev.c      |   2 +-\n drivers/crypto/octeontx2/otx2_cryptodev_ops.c |   2 +-\n drivers/net/ark/ark_ethdev_rx.c               |   4 +-\n drivers/net/ark/ark_ethdev_rx.h               |   3 +-\n drivers/net/atlantic/atl_ethdev.h             |   2 +-\n drivers/net/atlantic/atl_rxtx.c               |   9 +-\n drivers/net/bnxt/bnxt_ethdev.c                |   8 +-\n drivers/net/cxgbe/base/adapter.h              |   2 +-\n drivers/net/dpaa/dpaa_ethdev.c                |   9 +-\n drivers/net/dpaa2/dpaa2_ethdev.c              |   9 +-\n drivers/net/dpaa2/dpaa2_ptp.c                 |   2 +-\n drivers/net/e1000/e1000_ethdev.h              |   6 +-\n drivers/net/e1000/em_rxtx.c                   |   4 +-\n drivers/net/e1000/igb_rxtx.c                  |   4 +-\n drivers/net/enic/enic_ethdev.c                |  12 +-\n drivers/net/fm10k/fm10k.h                     |   2 +-\n drivers/net/fm10k/fm10k_rxtx.c                |   4 +-\n drivers/net/hns3/hns3_rxtx.c                  |   7 +-\n drivers/net/hns3/hns3_rxtx.h                  |   2 +-\n drivers/net/i40e/i40e_rxtx.c                  |   4 +-\n drivers/net/i40e/i40e_rxtx.h                  |   3 +-\n drivers/net/iavf/iavf_rxtx.c                  |   4 +-\n drivers/net/iavf/iavf_rxtx.h                  |   2 +-\n drivers/net/ice/ice_rxtx.c                    |   4 +-\n drivers/net/ice/ice_rxtx.h                    |   2 +-\n drivers/net/igc/igc_txrx.c                    |   5 +-\n drivers/net/igc/igc_txrx.h                    |   3 +-\n drivers/net/ixgbe/ixgbe_ethdev.h              |   3 +-\n drivers/net/ixgbe/ixgbe_rxtx.c                |   4 +-\n drivers/net/mlx5/mlx5_rx.c                    |  26 +-\n drivers/net/mlx5/mlx5_rx.h                    |   2 +-\n drivers/net/netvsc/hn_rxtx.c                  |   4 +-\n drivers/net/netvsc/hn_var.h                   |   3 +-\n drivers/net/nfp/nfp_rxtx.c                    |   4 +-\n drivers/net/nfp/nfp_rxtx.h                    |   3 +-\n drivers/net/octeontx2/otx2_ethdev.h           |   2 +-\n drivers/net/octeontx2/otx2_ethdev_ops.c       |   8 +-\n drivers/net/sfc/sfc_ethdev.c                  |  12 +-\n drivers/net/thunderx/nicvf_ethdev.c           |   3 +-\n drivers/net/thunderx/nicvf_rxtx.c             |   4 +-\n drivers/net/thunderx/nicvf_rxtx.h             |   2 +-\n drivers/net/txgbe/txgbe_ethdev.h              |   3 +-\n drivers/net/txgbe/txgbe_rxtx.c                |   4 +-\n drivers/net/vhost/rte_eth_vhost.c             |   4 +-\n lib/ethdev/ethdev_driver.h                    | 152 +++++++++\n lib/ethdev/ethdev_private.c                   |  84 +++++\n lib/ethdev/ethdev_private.h                   |   7 +\n lib/ethdev/rte_ethdev.c                       |  78 +++--\n lib/ethdev/rte_ethdev.h                       | 288 ++++++++++++------\n lib/ethdev/rte_ethdev_core.h                  | 168 +++-------\n lib/ethdev/version.map                        |   6 +\n lib/eventdev/rte_event_eth_rx_adapter.c       |   2 +-\n lib/eventdev/rte_event_eth_tx_adapter.c       |   2 +-\n lib/eventdev/rte_eventdev.c                   |   2 +-\n 55 files changed, 643 insertions(+), 380 deletions(-)"
}