Show a cover letter.

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

    "id": 55076,
    "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": "2019-06-19T16:25:57",
    "name": "[v8,0/1] New software event timer adapter",
    "submitter": {
        "id": 762,
        "url": "",
        "name": "Carrillo, Erik G",
        "email": ""
    "mbox": "",
    "series": [
            "id": 5085,
            "url": "",
            "web_url": "",
            "date": "2019-06-19T16:25:57",
            "name": "New software event timer adapter",
            "version": 8,
            "mbox": ""
    "comments": "",
    "headers": {
        "X-Mailer": "git-send-email 1.7.10",
        "List-Id": "DPDK patches and discussions <>",
        "Precedence": "list",
        "List-Help": "<>",
        "Date": "Wed, 19 Jun 2019 11:25:57 -0500",
        "X-Mailman-Version": "2.1.15",
        "Delivered-To": "",
        "List-Unsubscribe": "<>,\n\t<>",
        "List-Subscribe": "<>,\n\t<>",
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "Cc": ",,\n\,",
        "To": "",
        "Errors-To": "",
        "References": "<>",
        "Sender": "\"dev\" <>",
        "From": "Erik Gabriel Carrillo <>",
        "Return-Path": "<>",
        "X-IronPort-AV": "E=Sophos;i=\"5.63,392,1557212400\"; d=\"scan'208\";a=\"358242442\"",
        "List-Post": "<>",
        "Received": [
            "from [] (localhost [])\n\tby (Postfix) with ESMTP id 277131C5B5;\n\tWed, 19 Jun 2019 18:25:57 +0200 (CEST)",
            "from ( [])\n\tby (Postfix) with ESMTP id 9C5AB1C5F0\n\tfor <>; Wed, 19 Jun 2019 18:25:55 +0200 (CEST)",
            "from ([])\n\tby with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t19 Jun 2019 09:25:54 -0700",
            "from ([])\n\tby with ESMTP; 19 Jun 2019 09:25:54 -0700"
        "List-Archive": "<>",
        "X-Amp-File-Uploaded": "False",
        "Subject": "[dpdk-dev] [PATCH v8 0/1] New software event timer adapter",
        "In-Reply-To": "<>",
        "Message-Id": "<>",
        "X-ExtLoop1": "1",
        "X-BeenThere": "",
        "X-Original-To": ""
    "content": "This patch introduces a new version of the event timer adapter software\nPMD [1]. In the original design, timer event producer lcores in the primary\nand secondary processes enqueued event timers into a ring, and a service\ncore in the primary process dequeued them and processed them further.  To\nimprove performance, this version does away with the ring and lets lcores in\nboth primary and secondary processes insert timers directly into timer\nskiplist data structures; the service core directly accesses the lists as\nwell, when looking for timers that have expired.\n\n[1]\n\nChanges in v8:\n - I generated the v7 patch from the wrong commit, so the first two bullets\n   listed in the v7 changes below were not included.  This version includes\n   them.\n\nChanges in v7:\n - Remove unecessary lock protecting array of lcore ids whose timer lists\n   should be processed in service function, and the count of elements\n   in that array.\n - When adding rte_timers to a buffer to be freed later, first check if\n   the buffer is full and empty it before adding a new element.\n - Update commit log with command used to compare performance, and\n   amount of improvement seen. (Jerin)\n\nChanges in v6:\n - Fix implicit type conversion bug that caused full event buffer to \n   sometimes not be correctly detected, resulting in lost events\n - Check return value of alt_timer_reset when resetting timer in event\n   buffer full condition\n - Add timer list corresponding to service core to set of lists to scan\n   when timers are reset by service core in event buffer full condition\n\nChanges in v5:\n - Rebase patch to apply with latest timer library\n - Fix event buffering bug where full buffer was treated as empty\n - Return rte_timer objects back to mempool after service function has\n   returned from timer_manage() call instead of in callback\n\nChanges in v4:\n - Addressed the following comments from Mattias Ronnblom:\n   - remove unnecessary header include\n   - add missing read barrier in timer cancel function\n\nChanges in v3:\n - Addressed comments from Mattias Ronnblom:\n   - remove unnecessary header include\n   - remove unnecessary cast in mempool_put() call\n   - update alignment of elements of array to avoid false sharing issue\n\nChanges in v2:\n - split this change out into its own patch series\n\nErik Gabriel Carrillo (1):\n  eventdev: add new software event timer adapter\n\n lib/librte_eventdev/rte_event_timer_adapter.c | 734 +++++++++++---------------\n 1 file changed, 315 insertions(+), 419 deletions(-)"