Show a cover letter.

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

{
    "id": 90081,
    "url": "http://patches.dpdk.org/api/covers/90081/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20210330082212.707-1-pbhagavatula@marvell.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": "<20210330082212.707-1-pbhagavatula@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210330082212.707-1-pbhagavatula@marvell.com",
    "date": "2021-03-30T08:22:03",
    "name": "[v9,0/8] Introduce event vectorization",
    "submitter": {
        "id": 1183,
        "url": "http://patches.dpdk.org/api/people/1183/?format=api",
        "name": "Pavan Nikhilesh Bhagavatula",
        "email": "pbhagavatula@marvell.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20210330082212.707-1-pbhagavatula@marvell.com/mbox/",
    "series": [
        {
            "id": 15971,
            "url": "http://patches.dpdk.org/api/series/15971/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=15971",
            "date": "2021-03-30T08:22:03",
            "name": "Introduce event vectorization",
            "version": 9,
            "mbox": "http://patches.dpdk.org/series/15971/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/90081/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 D39D4A034F;\n\tTue, 30 Mar 2021 10:22:25 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 5396B406B4;\n\tTue, 30 Mar 2021 10:22:25 +0200 (CEST)",
            "from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com\n [67.231.148.174])\n by mails.dpdk.org (Postfix) with ESMTP id 70F5D40691\n for <dev@dpdk.org>; Tue, 30 Mar 2021 10:22:23 +0200 (CEST)",
            "from pps.filterd (m0045849.ppops.net [127.0.0.1])\n by mx0a-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id\n 12U8Kf2m025597; Tue, 30 Mar 2021 01:22:22 -0700",
            "from dc5-exch01.marvell.com ([199.233.59.181])\n by mx0a-0016f401.pphosted.com with ESMTP id 37k63bcnk8-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Tue, 30 Mar 2021 01:22:22 -0700",
            "from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com\n (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2;\n Tue, 30 Mar 2021 01:22:20 -0700",
            "from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com\n (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend\n Transport; Tue, 30 Mar 2021 01:22:20 -0700",
            "from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176])\n by maili.marvell.com (Postfix) with ESMTP id D5BD73F703F;\n Tue, 30 Mar 2021 01:22:16 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n h=from : to : cc :\n subject : date : message-id : in-reply-to : references : mime-version :\n content-transfer-encoding : content-type; s=pfpt0220;\n bh=zJMLTeKeiDyFnIOP3uJOr/zV9yR3mINfC4ffApWzV7U=;\n b=iyFTCNUXjNCgqkjQENta19qV31LXBT+N3+YH4ICxLNMi/foimEc/h64zbDm6s8IiT93+\n ZpMxpjT0BQZElAMy1jnY4TXeEvxyqB1vZnLKFIv4vkd2beoM67mGvqld1d57DPuU0A2H\n M+dLl9FGcbGR+MbQdKDSzILV/9JL6uYtnC8WqAr7MKpA2CYNxXscJ3syZfKG3P7rbr3Q\n xb8wr9v+JJIi7cnt0LChG2tRLuUMs5su1L0bIZP33MK14fBVFqfvdtxdUOMP2jWbcIsJ\n fL8aYUoyShBsNCBEVJjqfFEMhaArPCYexP6JFWIJbfBTiwBAo53SXenEuSPhuS8TI1GM 5g==",
        "From": "<pbhagavatula@marvell.com>",
        "To": "<jerinj@marvell.com>, <jay.jayatheerthan@intel.com>,\n <erik.g.carrillo@intel.com>, <abhinandan.gujjar@intel.com>,\n <timothy.mcdaniel@intel.com>, <hemant.agrawal@nxp.com>,\n <harry.van.haaren@intel.com>, <mattias.ronnblom@ericsson.com>,\n <liang.j.ma@intel.com>",
        "CC": "<dev@dpdk.org>, Pavan Nikhilesh <pbhagavatula@marvell.com>",
        "Date": "Tue, 30 Mar 2021 13:52:03 +0530",
        "Message-ID": "<20210330082212.707-1-pbhagavatula@marvell.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20210326140850.7332-1-pbhagavatula@marvell.com>",
        "References": "<20210326140850.7332-1-pbhagavatula@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-ORIG-GUID": "TN4SHaIRdyRH2ZVW3QG5HYH1cxo3E9u6",
        "X-Proofpoint-GUID": "TN4SHaIRdyRH2ZVW3QG5HYH1cxo3E9u6",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761\n definitions=2021-03-30_02:2021-03-26,\n 2021-03-30 signatures=0",
        "Subject": "[dpdk-dev] [PATCH v9 0/8] Introduce event vectorization",
        "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": "From: Pavan Nikhilesh <pbhagavatula@marvell.com>\n\nIn traditional event programming model, events are identified by a\nflow-id and a uintptr_t. The flow-id uniquely identifies a given event\nand determines the order of scheduling based on schedule type, the\nuintptr_t holds a single object.\n\nEvent devices also support burst mode with configurable dequeue depth,\ni.e. each dequeue call would return multiple events and each event\nmight be at a different stage of the pipeline.\nHaving a burst of events belonging to different stages in a dequeue\nburst is not only difficult to vectorize but also increases the scheduler\noverhead and application overhead of pipelining events further.\nUsing event vectors we see a performance gain of ~742.3% as shown in [1].\n\nBy introducing event vectorization, each event will be capable of holding\nmultiple uintptr_t of the same flow thereby allowing applications\nto vectorize their pipeline and reduce the complexity of pipelining\nevents across multiple stages. This also reduces the complexity of handling\nenqueue and dequeue on an event device.\n\nSince event devices are transparent to the events they are scheduling\nso the event producers such as eth_rx_adapter, crypto_adapter , etc..\nare responsible for vectorizing the buffers of the same flow into a single\nevent.\n\nThe series also breaks ABI in the patch [8/8] which is targetted to the\nv21.11 release.\n\nThe dpdk-test-eventdev application has been updated with options to test\nmultiple vector sizes and timeouts.\n\n[1]\nAs for performance improvement, with a ARM Cortex-A72 equivalent processer,\nsoftware event device (--vdev=event_sw0), single worker core, single stage\nand using one service core for Rx adapter, Tx adapter, Scheduling.\n\nWithout this patchset applied:\n    ./build/app/dpdk-test-eventdev -l 7-23 -s 0x700 --vdev=\"event_sw0\" --\n         --prod_type_ethdev --nb_pkts=0 --verbose 2 --test=pipeline_queue\n         --stlist=a --wlcores=20\n    Port[0] using Rx adapter[0] configured\n    Port[0] using Tx adapter[0] Configured\n    5.071 mpps\n\nWith the patchset applied and Without event vectorization:\n    ./build/app/dpdk-test-eventdev -l 7-23 -s 0x700 --vdev=\"event_sw0\" --\n         --prod_type_ethdev --nb_pkts=0 --verbose 2 --test=pipeline_queue\n         --stlist=a --wlcores=20\n    Port[0] using Rx adapter[0] configured\n    Port[0] using Tx adapter[0] Configured\n    5.123 mpps\n\nWith event vectorization:\n    ./build/app/dpdk-test-eventdev -l 7-23 -s 0x700 --vdev=\"event_sw0\" --\n        --prod_type_ethdev --nb_pkts=0 --verbose 2 --test=pipeline_queue\n        --stlist=a --wlcores=20 --enable_vector --nb_eth_queues 1\n        --vector_size 256\n    Port[0] using Rx adapter[0] configured\n    Port[0] using Tx adapter[0] Configured\n    42.715 mpps\n\nHaving dedicated service cores for each Rx queues and tweaking the vector,\ndequeue burst size would further improve performance.\n\nAPI usage is shown below:\n\nConfiguration:\n\n\tstruct rte_event_eth_rx_adapter_event_vector_config vec_conf;\n\n\tvector_pool = rte_event_vector_pool_create(\"vector_pool\",\n\t\t\tnb_elem, 0, vector_size, socket_id);\n\n\trte_event_eth_rx_adapter_create(id, event_id, &adptr_conf);\n\trte_event_eth_rx_adapter_queue_add(id, eth_id, -1, &queue_conf);\n\tif (cap & RTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR) {\n\t\tvec_conf.vector_sz = vector_size;\n\t\tvec_conf.vector_timeout_ns = vector_tmo_nsec;\n\t\tvec_conf.vector_mp = vector_pool;\n\t\trte_event_eth_rx_adapter_queue_event_vector_config(id,\n\t\t\t\teth_id, -1, &vec_conf);\n\t}\n\nFastpath:\n\n\tnum = rte_event_dequeue_burst(event_id, port_id, &ev, 1, 0);\n\tif (!num)\n\t\tcontinue;\n\n\tif (ev.event_type & RTE_EVENT_TYPE_VECTOR) {\n\t\tswitch (ev.event_type) {\n\t\tcase RTE_EVENT_TYPE_ETHDEV_VECTOR:\n\t\tcase RTE_EVENT_TYPE_ETH_RX_ADAPTER_VECTOR:\n\t\t\tstruct rte_mbuf **mbufs;\n\n\t\t\tmbufs = ev.vector_ev->mbufs;\n\t\t\tfor (i = 0; i < ev.vector_ev->nb_elem; i++)\n\t\t\t\t//Process mbufs.\n\t\t\tbreak;\n\t\tcase ...\n\t\t}\n\t}\n\t...\n\nv9 Changes:\n- Update Rx adapter documentation w.r.t SW event vectorizations. (Jay)\n- Push partial vectors to event device on queue delete. (Jay)\n\nv8 Changes:\n- Fix incorrect shift for vector timeout interval.(Jay)\n- Code reallocation.(Jay)\n\nv7 Changes:\n- More doxygen fixes.(Jay)\n- Reduce code duplication in 4/8.(Jay)\n\nv6 Changes:\n- Make rte_errno sign consistant.(Jay)\n- Gramatical and doxygen fixes. (Jay)\n\nv5 Changes:\n- Make `rte_event_vector_pool_create non-inline` to ease ABI stability.(Ray)\n- Move `rte_event_eth_rx_adapter_queue_event_vector_config` and\n  `rte_event_eth_rx_adapter_vector_limits_get` implementation to the patch\n  where they are initially defined.(Ray)\n- Multiple gramatical and style fixes.(Jerin)\n- Add missing release notes.(Jerin)\n\nv4 Changes:\n- Fix missing event vector structure in event structure.(Jay)\n\nv3 Changes:\n- Fix unintended formatting changes.\n\nv2 Changes:\n- Multiple gramatical and style fixes.(Jerin)\n- Add parameter to define vector size in power of 2. (Jerin)\n- Redo patch series w/o breaking ABI till the last patch.(David)\n- Add deprication notice to announce ABI break in 21.11.(David)\n- Add vector limits validation to app/test-eventdev.\n\nPavan Nikhilesh (8):\n  eventdev: introduce event vector capability\n  eventdev: introduce event vector Rx capability\n  eventdev: introduce event vector Tx capability\n  eventdev: add Rx adapter event vector support\n  eventdev: add Tx adapter event vector support\n  app/eventdev: add event vector mode in pipeline test\n  doc: announce event Rx adapter config changes\n  eventdev: simplify Rx adapter event vector config\n\n app/test-eventdev/evt_common.h                |   4 +\n app/test-eventdev/evt_options.c               |  52 +++\n app/test-eventdev/evt_options.h               |   4 +\n app/test-eventdev/test_pipeline_atq.c         | 310 +++++++++++++++--\n app/test-eventdev/test_pipeline_common.c      | 105 +++++-\n app/test-eventdev/test_pipeline_common.h      |  18 +\n app/test-eventdev/test_pipeline_queue.c       | 320 +++++++++++++++--\n .../prog_guide/event_ethernet_rx_adapter.rst  |  49 +++\n .../prog_guide/event_ethernet_tx_adapter.rst  |  12 +\n doc/guides/prog_guide/eventdev.rst            |  36 +-\n doc/guides/rel_notes/deprecation.rst          |   9 +\n doc/guides/rel_notes/release_21_05.rst        |   8 +\n doc/guides/tools/testeventdev.rst             |  45 ++-\n lib/librte_eventdev/eventdev_pmd.h            |  31 +-\n .../rte_event_eth_rx_adapter.c                | 327 +++++++++++++++++-\n .../rte_event_eth_rx_adapter.h                |  78 +++++\n .../rte_event_eth_tx_adapter.c                |  66 +++-\n lib/librte_eventdev/rte_eventdev.c            |  53 ++-\n lib/librte_eventdev/rte_eventdev.h            | 114 +++++-\n lib/librte_eventdev/version.map               |   4 +\n 20 files changed, 1554 insertions(+), 91 deletions(-)\n\n--\n2.17.1"
}