Show a cover letter.

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

{
    "id": 43833,
    "url": "http://patches.dpdk.org/api/covers/43833/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/cover.1535041359.git.anatoly.burakov@intel.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": "<cover.1535041359.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/cover.1535041359.git.anatoly.burakov@intel.com",
    "date": "2018-08-23T16:59:47",
    "name": "[0/8] Improve running DPDK without hugetlbfs mounpoint",
    "submitter": {
        "id": 4,
        "url": "http://patches.dpdk.org/api/people/4/?format=api",
        "name": "Anatoly Burakov",
        "email": "anatoly.burakov@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/cover.1535041359.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 1040,
            "url": "http://patches.dpdk.org/api/series/1040/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1040",
            "date": "2018-08-23T16:59:47",
            "name": "Improve running DPDK without hugetlbfs mounpoint",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/1040/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/43833/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id C2C992C4F;\n\tThu, 23 Aug 2018 18:59:59 +0200 (CEST)",
            "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n\tby dpdk.org (Postfix) with ESMTP id 5721998\n\tfor <dev@dpdk.org>; Thu, 23 Aug 2018 18:59:58 +0200 (CEST)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t23 Aug 2018 09:59:57 -0700",
            "from irvmail001.ir.intel.com ([163.33.26.43])\n\tby FMSMGA003.fm.intel.com with ESMTP; 23 Aug 2018 09:59:56 -0700",
            "from sivswdev01.ir.intel.com (sivswdev01.ir.intel.com\n\t[10.237.217.45])\n\tby irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id\n\tw7NGxtRW025424; Thu, 23 Aug 2018 17:59:55 +0100",
            "from sivswdev01.ir.intel.com (localhost [127.0.0.1])\n\tby sivswdev01.ir.intel.com with ESMTP id w7NGxt66006682;\n\tThu, 23 Aug 2018 17:59:55 +0100",
            "(from aburakov@localhost)\n\tby sivswdev01.ir.intel.com with LOCAL id w7NGxtvT006678;\n\tThu, 23 Aug 2018 17:59:55 +0100"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.53,278,1531810800\"; d=\"scan'208\";a=\"75124323\"",
        "From": "Anatoly Burakov <anatoly.burakov@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "tiwei.bie@intel.com, ray.kinsella@intel.com, zhihong.wang@intel.com,\n\tmaxime.coquelin@redhat.com, kuralamudhan.ramakrishnan@intel.com",
        "Date": "Thu, 23 Aug 2018 17:59:47 +0100",
        "Message-Id": "<cover.1535041359.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 1.7.0.7",
        "Subject": "[dpdk-dev] [PATCH 0/8] Improve running DPDK without hugetlbfs\n\tmounpoint",
        "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This patchset further improves DPDK support for running\nwithout hugetlbfs mountpoints.\n\nFirst of all, it enables using memfd-created hugepages in\nin-memory mode. This way, instead of anonymous hugepages, we\ncan get proper fd's for each page (or for the entire segment,\nif we're using single-file segments). Memfd will be used\nautomatically if support for it was compiled and is available\nat runtime, however DPDK will fall back to using anonymous\nhugepages if such support is not available.\n\nThe other thing this patchset does is exposing segment fd's\nthrough an external API. There is a lot of ugliness in current\nvirtio/vhost code that deals with finding hugepage files\nthrough procfs, while all virtio really needs are fd's\nreferring to the pages. Using this API, virtio will be able\nto access segment fd's directly, without the procfs magic.\n\nAs a bonus, because we enabled use of memfd (given that\nsufficiently recent kernel version is used), once virtio\nsupport for getting segment fd's using the new API is\nimplemented, virtio will also be able to work without having\nhugetlbfs mountpoints.\n\nVirtio support is not provided in this patchset, coordination\nand implementation of it is up to virtio maintainers.\n\nOnce virtio support for this is in place, DPDK will have one\nless barrier for adoption in container space.\n\nAnatoly Burakov (8):\n  fbarray: fix detach in noshconf mode\n  eal: don't allow legacy mode with in-memory mode\n  mem: raise maximum fd limit unconditionally\n  memalloc: rename lock list to fd list\n  memalloc: track page fd's in non-single file mode\n  memalloc: add EAL-internal API to get and set segment fd's\n  mem: add external API to retrieve page fd from EAL\n  mem: support using memfd segments for in-memory mode\n\n lib/librte_eal/bsdapp/eal/eal_memalloc.c   |  12 +\n lib/librte_eal/common/eal_common_fbarray.c |   4 +\n lib/librte_eal/common/eal_common_memory.c  |  55 ++-\n lib/librte_eal/common/eal_common_options.c |  12 +-\n lib/librte_eal/common/eal_memalloc.h       |   6 +\n lib/librte_eal/common/include/rte_memory.h |  44 +++\n lib/librte_eal/linuxapp/eal/eal_memalloc.c | 421 ++++++++++++++++-----\n lib/librte_eal/linuxapp/eal/eal_memory.c   |  60 ++-\n lib/librte_eal/rte_eal_version.map         |   2 +\n 9 files changed, 518 insertions(+), 98 deletions(-)"
}