Show a cover letter.

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

{
    "id": 64848,
    "url": "http://patchwork.dpdk.org/api/covers/64848/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/cover/20200117145754.11682-1-olivier.matz@6wind.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": "<20200117145754.11682-1-olivier.matz@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200117145754.11682-1-olivier.matz@6wind.com",
    "date": "2020-01-17T14:57:51",
    "name": "[v2,0/3] mempool: fix mempool virt populate with small chunks",
    "submitter": {
        "id": 8,
        "url": "http://patchwork.dpdk.org/api/people/8/?format=api",
        "name": "Olivier Matz",
        "email": "olivier.matz@6wind.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/cover/20200117145754.11682-1-olivier.matz@6wind.com/mbox/",
    "series": [
        {
            "id": 8198,
            "url": "http://patchwork.dpdk.org/api/series/8198/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=8198",
            "date": "2020-01-17T14:57:51",
            "name": "mempool: fix mempool virt populate with small chunks",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/8198/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/64848/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 4E199A051A;\n\tFri, 17 Jan 2020 15:58:16 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 2F02729D6;\n\tFri, 17 Jan 2020 15:58:16 +0100 (CET)",
            "from proxy.6wind.com (host.76.145.23.62.rev.coltfrance.com\n [62.23.145.76]) by dpdk.org (Postfix) with ESMTP id 0E2821AFF;\n Fri, 17 Jan 2020 15:58:15 +0100 (CET)",
            "from glumotte.dev.6wind.com. (unknown [10.16.0.195])\n by proxy.6wind.com (Postfix) with ESMTP id CEECD36DD31;\n Fri, 17 Jan 2020 15:58:14 +0100 (CET)"
        ],
        "From": "Olivier Matz <olivier.matz@6wind.com>",
        "To": "dev@dpdk.org",
        "Cc": "\"Zhang, AlvinX\" <alvinx.zhang@intel.com>,\n \"Burakov, Anatoly\" <anatoly.burakov@intel.com>,\n Andrew Rybchenko <arybchenko@solarflare.com>,\n Bruce Richardson <bruce.richardson@intel.com>,\n David Marchand <david.marchand@redhat.com>, dpdk stable <stable@dpdk.org>",
        "Date": "Fri, 17 Jan 2020 15:57:51 +0100",
        "Message-Id": "<20200117145754.11682-1-olivier.matz@6wind.com>",
        "X-Mailer": "git-send-email 2.20.1",
        "In-Reply-To": "<20200109132720.15664-1-olivier.matz@6wind.com>",
        "References": "<20200109132720.15664-1-olivier.matz@6wind.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v2 0/3] mempool: fix mempool virt populate with\n\tsmall chunks",
        "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": "rte_mempool_populate_virt() sometimes fail, when it calls\nrte_mempool_populate_iova() with an area which is too small to store one\nobject. This should not be an error.\n\nI prepared a v2 which implements an ABI compatibility through symbol\nversioning, as suggested [1]. It looks a bit overkill to me, but it\nwas an interresting exercice.\n\nv2 changes:\n\n- The initial requirement is to fix an issue at mempool creation. As\n  the fix will probably be backported in 19.11.x, the first patch\n  in the patchset does not break API/ABI.\n\n- Using symbol versioning helps to preserve ABI, but for the API\n  the breakage has to be announced 1 release in advance, so there\n  is a separate patch for this.\n\n- There is a 3rd patch for 20.05 that makes the new API public and\n  implements ABI versioning (if ok, I'll remove it from the patchset in\n  next version and send it separately)\n\n- It appears that returning -ENOBUFS instead of -EINVAL is not ideal\n  because, in theory, mempool_ops_alloc_once() could also return\n  -ENOBUFS, and it would be forwarded to the caller by\n  rte_mempool_populate_iova() too, and misinterpreted as \"there is not\n  enough room\".\n\n  Returning 0 instead of -ENOBUFS was initially suggested by Anatoly,\n  and it does not suffer from this problem. It is doable if we properly\n  document that the memory chunk is not added to the mempool when\n  returning 0. It has an impact on populate_virt(), which has to be\n  versioned too.\n\nThere are some checkpatch warnings, but I'm not sure how if I\nshould solve them:\n- it complains about forward declaration in .c, but without it, it does\n  not compile due to additional warnings in cflags\n- it complains that modified symbols should be marked as experimental\n\nThanks to David for helping me to test and fix the ABI part of the\npatchset.\n\n[1] http://patchwork.dpdk.org/patch/64369/\n\nOlivier Matz (3):\n  mempool: fix mempool virt populate with small chunks\n  doc: announce API change for mempool IOVA populate\n  mempool: return 0 if area is too small on populate\n\n doc/guides/rel_notes/deprecation.rst       |  5 ++\n examples/ntb/ntb_fwd.c                     |  2 +-\n lib/librte_mempool/meson.build             |  1 +\n lib/librte_mempool/rte_mempool.c           | 88 ++++++++++++++++++++--\n lib/librte_mempool/rte_mempool.h           | 14 +++-\n lib/librte_mempool/rte_mempool_version.map |  7 ++\n 6 files changed, 105 insertions(+), 12 deletions(-)"
}