Show a cover letter.

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

{
    "id": 41185,
    "url": "http://patchwork.dpdk.org/api/covers/41185/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/cover/cover.1529071026.git.anatoly.burakov@intel.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": "<cover.1529071026.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/cover.1529071026.git.anatoly.burakov@intel.com",
    "date": "2018-06-15T14:25:00",
    "name": "[0/8] Remove IPC threads",
    "submitter": {
        "id": 4,
        "url": "http://patchwork.dpdk.org/api/people/4/?format=api",
        "name": "Burakov, Anatoly",
        "email": "anatoly.burakov@intel.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/cover/cover.1529071026.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 145,
            "url": "http://patchwork.dpdk.org/api/series/145/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=145",
            "date": "2018-06-15T14:25:00",
            "name": "Remove IPC threads",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/145/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/41185/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 B27621D63D;\n\tFri, 15 Jun 2018 16:25:13 +0200 (CEST)",
            "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby dpdk.org (Postfix) with ESMTP id 54FC61D616\n\tfor <dev@dpdk.org>; Fri, 15 Jun 2018 16:25:11 +0200 (CEST)",
            "from orsmga006.jf.intel.com ([10.7.209.51])\n\tby orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t15 Jun 2018 07:25:10 -0700",
            "from irvmail001.ir.intel.com ([163.33.26.43])\n\tby orsmga006.jf.intel.com with ESMTP; 15 Jun 2018 07:25:08 -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\tw5FEP8m5028172; Fri, 15 Jun 2018 15:25:08 +0100",
            "from sivswdev01.ir.intel.com (localhost [127.0.0.1])\n\tby sivswdev01.ir.intel.com with ESMTP id w5FEP8DU019435;\n\tFri, 15 Jun 2018 15:25:08 +0100",
            "(from aburakov@localhost)\n\tby sivswdev01.ir.intel.com with LOCAL id w5FEP8xB019431;\n\tFri, 15 Jun 2018 15:25:08 +0100"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.51,227,1526367600\"; d=\"scan'208\";a=\"50178064\"",
        "From": "Anatoly Burakov <anatoly.burakov@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "konstantin.ananyev@intel.com, thomas@monjalon.net,\n\tbruce.richardson@intel.com",
        "Date": "Fri, 15 Jun 2018 15:25:00 +0100",
        "Message-Id": "<cover.1529071026.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 1.7.0.7",
        "Subject": "[dpdk-dev] [PATCH 0/8] Remove IPC threads",
        "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://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "As previously discussed [1], IPC threads need to be removed and their\nworkload moved to interrupt thread.\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 [2]). 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\n[1] http://dpdk.org/dev/patchwork/patch/36579/\n[2] http://dpdk.org/browse/dpdk/tree/lib/librte_eal/bsdapp/eal/eal.c#n729\n\nAnatoly Burakov (4):\n  ipc: remove IPC thread for async requests\n  eal/bsdapp: add interrupt thread\n  eal/bsdapp: add alarm support\n  ipc: remove main IPC thread\n\nJianfeng Tan (4):\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  eal: add IPC type for interrupt thread\n\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    | 460 +++++++++++++++++-\n lib/librte_eal/common/eal_common_proc.c       | 243 ++++-----\n .../common/include/rte_eal_interrupts.h       |   1 +\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  |  19 +-\n test/test/test_interrupts.c                   |  29 +-\n 10 files changed, 899 insertions(+), 200 deletions(-)\n create mode 100644 lib/librte_eal/bsdapp/eal/eal_alarm_private.h"
}