Show a cover letter.

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

{
    "id": 64626,
    "url": "http://patches.dpdk.org/api/covers/64626/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/1578993305-15165-1-git-send-email-viacheslavo@mellanox.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": "<1578993305-15165-1-git-send-email-viacheslavo@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1578993305-15165-1-git-send-email-viacheslavo@mellanox.com",
    "date": "2020-01-14T09:15:01",
    "name": "[v3,0/4] mbuf: detach mbuf with pinned external buffer",
    "submitter": {
        "id": 1102,
        "url": "http://patches.dpdk.org/api/people/1102/?format=api",
        "name": "Slava Ovsiienko",
        "email": "viacheslavo@mellanox.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/1578993305-15165-1-git-send-email-viacheslavo@mellanox.com/mbox/",
    "series": [
        {
            "id": 8105,
            "url": "http://patches.dpdk.org/api/series/8105/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=8105",
            "date": "2020-01-14T09:15:01",
            "name": "mbuf: detach mbuf with pinned external buffer",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/8105/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/64626/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 4E231A04FD;\n\tTue, 14 Jan 2020 10:15:17 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id C92661C25E;\n\tTue, 14 Jan 2020 10:15:16 +0100 (CET)",
            "from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])\n by dpdk.org (Postfix) with ESMTP id 35BBF1C25E\n for <dev@dpdk.org>; Tue, 14 Jan 2020 10:15:15 +0100 (CET)",
            "from Internal Mail-Server by MTLPINE1 (envelope-from\n viacheslavo@mellanox.com)\n with ESMTPS (AES256-SHA encrypted); 14 Jan 2020 11:15:11 +0200",
            "from pegasus11.mtr.labs.mlnx (pegasus11.mtr.labs.mlnx\n [10.210.16.104])\n by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 00E9FBIM026279;\n Tue, 14 Jan 2020 11:15:11 +0200",
            "from pegasus11.mtr.labs.mlnx (localhost [127.0.0.1])\n by pegasus11.mtr.labs.mlnx (8.14.7/8.14.7) with ESMTP id 00E9FB9Q015220;\n Tue, 14 Jan 2020 09:15:11 GMT",
            "(from viacheslavo@localhost)\n by pegasus11.mtr.labs.mlnx (8.14.7/8.14.7/Submit) id 00E9F9OG015219;\n Tue, 14 Jan 2020 09:15:09 GMT"
        ],
        "X-Authentication-Warning": "pegasus11.mtr.labs.mlnx: viacheslavo set sender to\n viacheslavo@mellanox.com using -f",
        "From": "Viacheslav Ovsiienko <viacheslavo@mellanox.com>",
        "To": "dev@dpdk.org",
        "Cc": "matan@mellanox.com, rasland@mellanox.com, orika@mellanox.com,\n shahafs@mellanox.com, olivier.matz@6wind.com, stephen@networkplumber.org",
        "Date": "Tue, 14 Jan 2020 09:15:01 +0000",
        "Message-Id": "<1578993305-15165-1-git-send-email-viacheslavo@mellanox.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<20191118094938.192850-1-shahafs@mellanox.com>",
        "References": "<20191118094938.192850-1-shahafs@mellanox.com>",
        "Subject": "[dpdk-dev] [PATCH v3 0/4] mbuf: detach mbuf with pinned external\n\tbuffer",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "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": "Today's pktmbuf pool contains only mbufs with no external buffers.\nThis means data buffer for the mbuf should be placed right after the\nmbuf structure (+ the private data when enabled).\n\nOn some cases, the application would want to have the buffers allocated\nfrom a different device in the platform. This is in order to do zero\ncopy for the packet directly to the device memory. Examples for such\ndevices can be GPU or storage device. For such cases the native pktmbuf\npool does not fit since each mbuf would need to point to external\nbuffer.\n\nTo support above, the pktmbuf pool will be populated with mbuf pointing\nto the device buffers using the mbuf external buffer feature.\nThe PMD will populate its receive queues with those buffer, so that\nevery packet received will be scattered directly to the device memory.\non the other direction, embedding the buffer pointer to the transmit\nqueues of the NIC, will make the DMA to fetch device memory\nusing peer to peer communication.\n\nSuch mbuf with external buffer should be handled with care when mbuf is\nfreed. Mainly The external buffer should not be detached, so that it can\nbe reused for the next packet receive.\n\nThis patch introduce a new flag on the rte_pktmbuf_pool_private\nstructure to specify this mempool is for mbuf with pinned external\nbuffer. Upon detach this flag is validated and buffer is not detached.\nA new mempool create wrapper is also introduced to help application to\ncreate and populate such mempool.\n\nSigned-off-by: Shahaf Shuler <shahafs@mellanox.com>\nSigned-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>\n\nRFC: http://patches.dpdk.org/patch/63077\nv1: http://patches.dpdk.org/cover/64424\nv2: - fix rte_experimantal issue on comment addressing\n    - rte_mbuf_has_pinned_extbuf return type is uint32_t\n    - fix Power9 compilation issue\nv3: - fix \"#include <stdbool.h> leftover\n\nViacheslav Ovsiienko (4):\n  mbuf: detach mbuf with pinned external buffer\n  mbuf: create packet pool with external memory buffers\n  app/testpmd: add mempool with external data buffers\n  net/mlx5: allow use allocated mbuf with external buffer\n\n app/test-pmd/config.c                    |   2 +\n app/test-pmd/flowgen.c                   |   3 +-\n app/test-pmd/parameters.c                |   2 +\n app/test-pmd/testpmd.c                   |  81 +++++++++++++++++\n app/test-pmd/testpmd.h                   |   4 +-\n app/test-pmd/txonly.c                    |   3 +-\n drivers/net/mlx5/mlx5_rxq.c              |   7 +-\n drivers/net/mlx5/mlx5_rxtx.c             |   2 +-\n drivers/net/mlx5/mlx5_rxtx.h             |   2 +-\n drivers/net/mlx5/mlx5_rxtx_vec.h         |  14 +--\n drivers/net/mlx5/mlx5_rxtx_vec_altivec.h |   5 +-\n drivers/net/mlx5/mlx5_rxtx_vec_neon.h    |  29 +++---\n drivers/net/mlx5/mlx5_rxtx_vec_sse.h     |   2 +-\n lib/librte_mbuf/rte_mbuf.c               | 144 ++++++++++++++++++++++++++++-\n lib/librte_mbuf/rte_mbuf.h               | 150 +++++++++++++++++++++++++++++--\n lib/librte_mbuf/rte_mbuf_version.map     |   1 +\n 16 files changed, 410 insertions(+), 41 deletions(-)"
}