Show a cover letter.

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

{
    "id": 48598,
    "url": "https://patches.dpdk.org/api/covers/48598/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/cover/1544205180-31546-1-git-send-email-erik.g.carrillo@intel.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<1544205180-31546-1-git-send-email-erik.g.carrillo@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1544205180-31546-1-git-send-email-erik.g.carrillo@intel.com",
    "date": "2018-12-07T17:52:58",
    "name": "[v2,0/2] Timer library changes",
    "submitter": {
        "id": 762,
        "url": "https://patches.dpdk.org/api/people/762/?format=api",
        "name": "Carrillo, Erik G",
        "email": "erik.g.carrillo@intel.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/cover/1544205180-31546-1-git-send-email-erik.g.carrillo@intel.com/mbox/",
    "series": [
        {
            "id": 2699,
            "url": "https://patches.dpdk.org/api/series/2699/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=2699",
            "date": "2018-12-07T17:52:58",
            "name": "Timer library changes",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/2699/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/covers/48598/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 E65EC5F1A;\n\tFri,  7 Dec 2018 18:53:26 +0100 (CET)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n\tby dpdk.org (Postfix) with ESMTP id 12AFC5F17\n\tfor <dev@dpdk.org>; Fri,  7 Dec 2018 18:53:25 +0100 (CET)",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n\tby fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t07 Dec 2018 09:53:25 -0800",
            "from txasoft-yocto.an.intel.com (HELO txasoft-yocto.an.intel.com.)\n\t([10.123.72.192])\n\tby orsmga005.jf.intel.com with ESMTP; 07 Dec 2018 09:53:24 -0800"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.56,327,1539673200\"; d=\"scan'208\";a=\"281807739\"",
        "From": "Erik Gabriel Carrillo <erik.g.carrillo@intel.com>",
        "To": "rsanford@akamai.com",
        "Cc": "jerin.jacob@caviumnetworks.com, pbhagavatula@caviumnetworks.com,\n\tdev@dpdk.org",
        "Date": "Fri,  7 Dec 2018 11:52:58 -0600",
        "Message-Id": "<1544205180-31546-1-git-send-email-erik.g.carrillo@intel.com>",
        "X-Mailer": "git-send-email 1.7.10",
        "In-Reply-To": "<1543534514-183766-1-git-send-email-erik.g.carrillo@intel.com>",
        "References": "<1543534514-183766-1-git-send-email-erik.g.carrillo@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v2 0/2] Timer library changes",
        "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 patch series modifies the timer library in such a way that \nstructures that used to be statically allocated in a process's data\nsegment are now allocated in shared memory.  As these structures contain\nlists of timers, new APIs are introduced that allow a caller to specify\nthe particular structure instance into which a timer should be inserted\nor from which a timer should be removed.  This enables primary and secondary\nprocesses to modify the same timer list, which enables some\nmulti-process use cases that were not previously possible; e.g. a\nsecondary process can start a timer whose expiration is detected in a\nprimary process running a new flavor of timer_manage().\n\nThe original library API is mostly unchanged, though implementations are\nupdated to call into newly added functions with a default structure instance\nID that provides the original behavior.  New functions are introduced to\nenable applications to allocate structure instances to house timer\nlists, and to reference them with an identifier when starting and\nstopping timers, and finally, to manage the timer lists referenced with\nan identifier.\n\nMy initial performance testing with the \"timer_perf_autotest\" test shows\nno performance regression or improvement, and inspection of the\ngenerated optimized code shows that the extra function call gets inlined\nin the functions that now have an extra function call. \n\nDepends on: https://patches.dpdk.org/patch/48417/\n\nChanges in v2:\n - split these changes out into their own series\n - version the symbols where the existing ABI was updated, and\n   provide alternate implementation with behavior equivalent to original\n   behavior. Validate ABI compatibility with validate-abi.sh\n - refactor changes to simplify patches\n\nErik Gabriel Carrillo (2):\n  timer: allow timer management in shared memory\n  timer: add function to stop all timers in a list\n\n lib/librte_timer/Makefile              |   1 +\n lib/librte_timer/rte_timer.c           | 558 ++++++++++++++++++++++++++++++---\n lib/librte_timer/rte_timer.h           | 258 ++++++++++++++-\n lib/librte_timer/rte_timer_version.map |  23 ++\n 4 files changed, 795 insertions(+), 45 deletions(-)"
}