Show a cover letter.

GET /api/covers/41557/?format=api
Content-Type: application/json
Vary: Accept

    "id": 41557,
    "url": "",
    "web_url": "",
    "project": {
        "id": 1,
        "url": "",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "",
        "list_email": "",
        "web_url": "",
        "scm_url": "git://",
        "webscm_url": ""
    "msgid": "<>",
    "date": "2018-06-26T10:53:11",
    "name": "[v2,0/7] Remove asynchronous IPC thread",
    "submitter": {
        "id": 4,
        "url": "",
        "name": "Burakov, Anatoly",
        "email": ""
    "mbox": "",
    "series": [
            "id": 238,
            "url": "",
            "web_url": "",
            "date": "2018-06-26T10:53:12",
            "name": "Remove asynchronous IPC thread",
            "version": 2,
            "mbox": ""
    "comments": "",
    "headers": {
        "Return-Path": "<>",
        "References": "<>",
        "X-Mailman-Version": "2.1.15",
        "X-IronPort-AV": "E=Sophos;i=\"5.51,274,1526367600\"; d=\"scan'208\";a=\"67358854\"",
        "From": "Anatoly Burakov <>",
        "List-Post": "<>",
        "List-Help": "<>",
        "X-ExtLoop1": "1",
        "X-BeenThere": "",
        "Message-Id": "<>",
        "X-Original-To": "",
        "Received": [
            "from [] (localhost [])\n\tby (Postfix) with ESMTP id 7835F1B546;\n\tTue, 26 Jun 2018 12:53:33 +0200 (CEST)",
            "from ( [])\n\tby (Postfix) with ESMTP id DAE251B45C\n\tfor <>; Tue, 26 Jun 2018 12:53:23 +0200 (CEST)",
            "from ([])\n\tby with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t26 Jun 2018 03:53:23 -0700",
            "from ([])\n\tby with ESMTP; 26 Jun 2018 03:53:19 -0700",
            "from (\n\t[])\n\tby (8.14.3/8.13.6/MailSET/Hub) with ESMTP id\n\tw5QArJXO026432; Tue, 26 Jun 2018 11:53:19 +0100",
            "from (localhost [])\n\tby with ESMTP id w5QArIqV021174;\n\tTue, 26 Jun 2018 11:53:18 +0100",
            "(from aburakov@localhost)\n\tby with LOCAL id w5QArIWY021170;\n\tTue, 26 Jun 2018 11:53:18 +0100"
        "X-Mailer": "git-send-email",
        "Sender": "\"dev\" <>",
        "Subject": "[dpdk-dev] [PATCH v2 0/7] Remove asynchronous IPC thread",
        "Precedence": "list",
        "Date": "Tue, 26 Jun 2018 11:53:11 +0100",
        "List-Archive": "<>",
        "X-Amp-File-Uploaded": "False",
        "List-Subscribe": "<>,\n\t<>",
        "Cc": ",,\n\,",
        "List-Id": "DPDK patches and discussions <>",
        "Delivered-To": "",
        "In-Reply-To": "<>",
        "List-Unsubscribe": "<>,\n\t<>",
        "To": "",
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "Errors-To": ""
    "content": "As previously discussed [1], IPC threads need to be removed and their\nworkload moved to interrupt thread. However, due to upcoming changes\nfor multiprocess hotplug, it was decided to leave one IPC thread in\nplace for now to avoid deadlocks on memory allocation attempts [2].\n\nFreeBSD did not have an interrupt thread, nor did it support alarm\nAPI. This patchset adds support for both on FreeBSD. FreeBSD interrupt\nthread is based on kevent, FreeBSD's native event multiplexing\nmechanism similar to Linux's epoll.\n\nThe patchset makes FreeBSD's interrupts and alarm work just enough to\nsuffice for purposes of IPC, however there are really weird problems\nobserved. Specifically, FreeBSD's kevent timers are really slow to\ntrigger for some reason, sleeping on a 10ms timer as much as 200ms\nbefore waking up. Interrupt handling on fd's is also a bit flaky.\n\nIt has also been observed that both problems go away if we do not\naffinitize master lcore (by commenting relevant code out [3]). It is\nnot known why these problems are observed, nor it is clear what a\nsolution might entail.\n\nFor the purposes of making IPC work and having rudimentary support\nfor alarm and interrupt API's, this patchset works fine. However,\nbecause of the above described issues, documentation will not be\nupdated to indicate support for interrupts on FreeBSD at this time.\n\nv1->v2:\n- Leave IPC thread in place and only remove asynchronous IPC thread\n\nRFC->v1:\n- FreeBSD support\n\n[1]\n[2]\n[3]\n\nAnatoly Burakov (4):\n  eal/bsdapp: add interrupt thread\n  eal/bsdapp: add alarm support\n  ipc: remove IPC thread for async requests\n  doc: document IPC callback limitations\n\nJianfeng Tan (3):\n  eal/linux: use glibc malloc in alarm\n  eal/linux: use glibc malloc in interrupt handling\n  eal: bring forward init of interrupt handling\n\n doc/guides/prog_guide/multi_proc_support.rst  |  17 +-\n lib/librte_eal/bsdapp/eal/eal.c               |  10 +-\n lib/librte_eal/bsdapp/eal/eal_alarm.c         | 299 +++++++++++-\n lib/librte_eal/bsdapp/eal/eal_alarm_private.h |  19 +\n lib/librte_eal/bsdapp/eal/eal_interrupts.c    | 455 +++++++++++++++++-\n lib/librte_eal/common/eal_common_proc.c       | 201 +++-----\n lib/librte_eal/linuxapp/eal/eal.c             |  10 +-\n lib/librte_eal/linuxapp/eal/eal_alarm.c       |   9 +-\n lib/librte_eal/linuxapp/eal/eal_interrupts.c  |  14 +-\n 9 files changed, 852 insertions(+), 182 deletions(-)\n create mode 100644 lib/librte_eal/bsdapp/eal/eal_alarm_private.h"