get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/97166/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 97166,
    "url": "http://patchwork.dpdk.org/api/patches/97166/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20210820162834.12544-1-konstantin.ananyev@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20210820162834.12544-1-konstantin.ananyev@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210820162834.12544-1-konstantin.ananyev@intel.com",
    "date": "2021-08-20T16:28:27",
    "name": "[RFC,0/7] hide eth dev related structures",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 33,
        "url": "http://patchwork.dpdk.org/api/people/33/?format=api",
        "name": "Ananyev, Konstantin",
        "email": "konstantin.ananyev@intel.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20210820162834.12544-1-konstantin.ananyev@intel.com/mbox/",
    "series": [],
    "comments": "http://patchwork.dpdk.org/api/patches/97166/comments/",
    "check": "pending",
    "checks": "http://patchwork.dpdk.org/api/patches/97166/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 D9F46A0C4D;\n\tFri, 20 Aug 2021 18:28:59 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 9A62F4013F;\n\tFri, 20 Aug 2021 18:28:59 +0200 (CEST)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n by mails.dpdk.org (Postfix) with ESMTP id 16F114003E;\n Fri, 20 Aug 2021 18:28:57 +0200 (CEST)",
            "from fmsmga008.fm.intel.com ([10.253.24.58])\n by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 20 Aug 2021 09:28:56 -0700",
            "from sivswdev08.ir.intel.com ([10.237.217.47])\n by fmsmga008.fm.intel.com with ESMTP; 20 Aug 2021 09:28:54 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10082\"; a=\"238930248\"",
            "E=Sophos;i=\"5.84,338,1620716400\"; d=\"scan'208\";a=\"238930248\"",
            "E=Sophos;i=\"5.84,338,1620716400\"; d=\"scan'208\";a=\"490551664\""
        ],
        "X-ExtLoop1": "1",
        "From": "Konstantin Ananyev <konstantin.ananyev@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "thomas@monjalon.net, ferruh.yigit@intel.com,\n andrew.rybchenko@oktetlabs.ru,\n qiming.yang@intel.com, qi.z.zhang@intel.com, beilei.xing@intel.com,\n techboard@dpdk.org, Konstantin Ananyev <konstantin.ananyev@intel.com>",
        "Date": "Fri, 20 Aug 2021 17:28:27 +0100",
        "Message-Id": "<20210820162834.12544-1-konstantin.ananyev@intel.com>",
        "X-Mailer": "git-send-email 2.18.0",
        "Subject": "[dpdk-dev] [RFC 0/7] 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": "NOTE: This is just an RFC to start further discussion and collect the feedback.\nDue to significant amount of work, changes required are applied only to two\nPMDs so far: net/i40e and net/ice.\nSo to build it you'll need to add:\n-Denable_drivers='common/*,mempool/*,net/ice,net/i40e'\nto your config options. \n\nThe 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 DPDK\nand 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, though it is an ABI break for sure.\n\nThe work is based on previous discussion at:\nhttps://www.mail-archive.com/dev@dpdk.org/msg211405.html\nand consists of the following main points:\n1. Move public 'fast' function pointers (rx_pkt_burst(), etc.) from\n   rte_eth_dev into a separate flat array. We keep it public to still be\n   able to use inline functions for these 'fast' calls\n   (like rte_eth_rx_burst(), etc.) to avoid/minimize slowdown.\n2. Change prototype within PMDs for these 'fast' functions\n   (pkt_rx_burst(), etc.) to accept pair of <port_id, queue_id>\n   instead of queue pointer.\n3. Also some mechanical changes in function start/finish code is required.\n   Basically to avoid extra level of indirection - PMD required to do some\n   preliminary checks and data retrieval that are currently done at user level\n   by inline rte_eth* functions. \n4. Special _rte_eth_*_prolog(/epilog) inline functions and helper macros\n   are provided to make these changes inside PMDs as straightforward\n   as possible.\n5. Change implementation of 'fast' ethdev functions (rte_eth_rx_burst(), etc.)\n   to use new public flat array. \n6. Move rte_eth_dev, rte_eth_dev_data, rte_eth_rxtx_callback and related things\n   into internal header: <ethdev_driver.h>.\n\nThat approach was selected to avoid(/minimize) possible performance losses.\n \nSo far I done only limited amount functional and performance testing.\nDidn't spot any functional problems, and performance numbers\nremains the same before and after the patch on my box (testpmd, macswap fwd).\n\nRemaining items:\n==============\n- implement required changes for all PMD at drivers/net.\n  So far I done changes only for two drivers, and definitely would use some\n  help from other PMD maintainers. Required changes are mechanical,\n  but we have a lot of drivers these days.\n- <rte_bus_pci.h> contains reference to rte_eth_dev field\n  RTE_ETH_DEV_TO_PCI(eth_dev).\n  Need to move this macro into some internal header.\n- Extra testing\n- checkpatch warnings\n- docs update\n\nKonstantin Ananyev (7):\n  eth: move ethdev 'burst' API into separate structure\n  eth: make drivers to use new API for Rx\n  eth: make drivers to use new API for Tx\n  eth: make drivers to use new API for Tx prepare\n  eth: make drivers to use new API to obtain descriptor status\n  eth: make drivers to use new API for Rx queue count\n  eth: hide eth dev related structures\n\n app/test-pmd/config.c                         |  23 +-\n app/test/virtual_pmd.c                        |  27 +-\n drivers/common/octeontx2/otx2_sec_idev.c      |   2 +-\n drivers/crypto/octeontx2/otx2_cryptodev_ops.c |   2 +-\n drivers/net/i40e/i40e_ethdev.c                |  15 +-\n drivers/net/i40e/i40e_ethdev_vf.c             |  15 +-\n drivers/net/i40e/i40e_rxtx.c                  | 243 ++++---\n drivers/net/i40e/i40e_rxtx.h                  |  68 +-\n drivers/net/i40e/i40e_rxtx_vec_avx2.c         |  11 +-\n drivers/net/i40e/i40e_rxtx_vec_avx512.c       |  12 +-\n drivers/net/i40e/i40e_rxtx_vec_sse.c          |   8 +-\n drivers/net/i40e/i40e_vf_representor.c        |  10 +-\n drivers/net/ice/ice_dcf_ethdev.c              |  10 +-\n drivers/net/ice/ice_dcf_vf_representor.c      |  10 +-\n drivers/net/ice/ice_ethdev.c                  |  15 +-\n drivers/net/ice/ice_rxtx.c                    | 236 ++++---\n drivers/net/ice/ice_rxtx.h                    |  73 +--\n drivers/net/ice/ice_rxtx_vec_avx2.c           |  24 +-\n drivers/net/ice/ice_rxtx_vec_avx512.c         |  24 +-\n drivers/net/ice/ice_rxtx_vec_common.h         |   7 +-\n drivers/net/ice/ice_rxtx_vec_sse.c            |  12 +-\n lib/ethdev/ethdev_driver.h                    | 601 ++++++++++++++++++\n lib/ethdev/ethdev_private.c                   |  74 +++\n lib/ethdev/ethdev_private.h                   |   3 +\n lib/ethdev/rte_ethdev.c                       | 176 ++++-\n lib/ethdev/rte_ethdev.h                       | 194 ++----\n lib/ethdev/rte_ethdev_core.h                  | 182 ++----\n lib/ethdev/version.map                        |  16 +\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 31 files changed, 1488 insertions(+), 611 deletions(-)",
    "diff": null,
    "prefixes": [
        "RFC",
        "0/7"
    ]
}