Show a cover letter.

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

{
    "id": 64197,
    "url": "http://patches.dpdk.org/api/covers/64197/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20200104013341.19809-1-stephen@networkplumber.org/",
    "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": "<20200104013341.19809-1-stephen@networkplumber.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200104013341.19809-1-stephen@networkplumber.org",
    "date": "2020-01-04T01:33:27",
    "name": "[00/14] cleanup resources on shutdown",
    "submitter": {
        "id": 27,
        "url": "http://patches.dpdk.org/api/people/27/?format=api",
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20200104013341.19809-1-stephen@networkplumber.org/mbox/",
    "series": [
        {
            "id": 7981,
            "url": "http://patches.dpdk.org/api/series/7981/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=7981",
            "date": "2020-01-04T01:33:27",
            "name": "cleanup resources on shutdown",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/7981/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/64197/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 14A08A04DD;\n\tSat,  4 Jan 2020 02:33:53 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 406751D509;\n\tSat,  4 Jan 2020 02:33:52 +0100 (CET)",
            "from mail-pj1-f42.google.com (mail-pj1-f42.google.com\n [209.85.216.42]) by dpdk.org (Postfix) with ESMTP id 7193F1D501\n for <dev@dpdk.org>; Sat,  4 Jan 2020 02:33:50 +0100 (CET)",
            "by mail-pj1-f42.google.com with SMTP id j11so5213826pjs.1\n for <dev@dpdk.org>; Fri, 03 Jan 2020 17:33:50 -0800 (PST)",
            "from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127])\n by smtp.gmail.com with ESMTPSA id j6sm16212934pjv.10.2020.01.03.17.33.47\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 03 Jan 2020 17:33:47 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=networkplumber-org.20150623.gappssmtp.com; s=20150623;\n h=from:to:cc:subject:date:message-id:mime-version\n :content-transfer-encoding;\n bh=FRuUbN1OEE+X7cnfHd4EopovSr5Kjxhs16L2WBMiIdk=;\n b=WT9g1hqaS6suZmib0WUcbAtN91oVaASzkexIJw+mi+FUTiBQp/5wXyp6hIJbuXoHof\n Mw4XQJQXIpCQCHUXHBAauMXLpQtdOzVj4MBNHlfpPvvZHYPoRsRNlLqPSDhancqSKYuw\n qyS7RG7FB3VC3NTCkX8qSuAcYZe1d6goIV3Kh+0y4/iqBkPI26nqu8uxBYls/tdQsw/K\n Hz2kRxP1TSWyrOEsSxRbHmOfpE6bfH6neikS6edF1DI7gov99WeHaYfWdgexZi+Unieo\n OmNVoajYdPCjqkmegEkzOcZNPoH3rXsi66YfKBhAs1DQDTCHsh7sGIOXsD141faSfAts\n T4Gw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n :content-transfer-encoding;\n bh=FRuUbN1OEE+X7cnfHd4EopovSr5Kjxhs16L2WBMiIdk=;\n b=nOyjRcGm1lYo7JGfe3UQNmOqp/ejDi9GG+K3Uniqil1EUh674dcFHBnpwQsxuNYoQk\n FzuB2C8+gdA5N6PyG7OzytnPX0UgfFJQgu0Dd+YnMDMNC8i1LPfzlOWHlz5f4IKJg6Pp\n W0zUa1928iHx6J73CnFBsKjv/dZs3mMkhkTek3KKz4mqBvLjnFK4R+9S5wU7CuHsABR/\n B0CDkJxvsu54llM8ZWOvJiG1mW+vYKveZJ6dqHbe6LG8ssBT2u9yz5iK1KXSmBsV8QMu\n qoJD1mjIzUIhWTYBJEuTp9MbDoNLH/umFGn1hXRTEgiBcRTYTlCgsWeXg3LPgtAUTqr6\n rHGQ==",
        "X-Gm-Message-State": "APjAAAUeshymkyVPKM6BA/JU7FFOelBqStne7lJYMhoujDPjYAFBKQ80\n bQJOQXaebq2TjCsur+uyef9XVB9a/CE=",
        "X-Google-Smtp-Source": "\n APXvYqwxTTYB2H+1rMZ4VswRdt7buKFCjaK2lTA7dpSOp1nUBzhdrVkUfNF2/tQL7Fa+DUI90VaEqw==",
        "X-Received": "by 2002:a17:902:8d95:: with SMTP id\n v21mr94335793plo.61.1578101628883;\n Fri, 03 Jan 2020 17:33:48 -0800 (PST)",
        "From": "Stephen Hemminger <stephen@networkplumber.org>",
        "To": "dev@dpdk.org",
        "Cc": "Stephen Hemminger <stephen@networkplumber.org>",
        "Date": "Fri,  3 Jan 2020 17:33:27 -0800",
        "Message-Id": "<20200104013341.19809-1-stephen@networkplumber.org>",
        "X-Mailer": "git-send-email 2.20.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 00/14] cleanup resources on shutdown",
        "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 <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 <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Recently started using valgrind with DPDK, and the results\nare not clean.\n\nThe DPDK has a function that applications can use to tell it\nto cleanup resources on shutdown (rte_eal_cleanup). But the\ncurrent coverage of that API is spotty. Many internal parts of\nDPDK leave files and allocated memory behind.\n\nThis patch set is a start at getting the sub-parts of\nDPDK to cleanup after themselves. These are the easier ones,\nthe harder and more critical ones are in the drivers\nand the memory subsystem.\n\nThere are no visible API or ABI changes here.\n\nStephen Hemminger (14):\n  eal: log: close on cleanup\n  eal: log: free dynamic state on cleanup\n  eal: alarm: close timerfd on eal cleanup\n  eal: cleanup threads\n  eal: intr: cleanup resources\n  eal: mp: end the multiprocess thread during cleanup\n  eal: interrupts close epoll fd on shutdown\n  eal: vfio: cleanup the mp sync handle\n  eal: close mem config on cleanup\n  tap: close netlink socket on device close\n  eal: cleanup plugins data\n  ethdev: raise priority of old driver warning\n  eal: hotplug: cleanup multiprocess resources\n  eal: malloc: cleanup mp resources\n\n drivers/net/tap/rte_eth_tap.c               |  7 ++++-\n lib/librte_eal/common/eal_common_log.c      | 30 +++++++++++++++++-\n lib/librte_eal/common/eal_common_options.c  | 12 +++++++\n lib/librte_eal/common/eal_common_proc.c     | 17 +++++++---\n lib/librte_eal/common/eal_options.h         |  1 +\n lib/librte_eal/common/eal_private.h         | 30 ++++++++++++++++++\n lib/librte_eal/common/hotplug_mp.c          |  5 +++\n lib/librte_eal/common/hotplug_mp.h          |  6 ++++\n lib/librte_eal/common/malloc_heap.c         |  6 ++++\n lib/librte_eal/common/malloc_heap.h         |  3 ++\n lib/librte_eal/common/malloc_mp.c           | 12 +++++++\n lib/librte_eal/common/malloc_mp.h           |  3 ++\n lib/librte_eal/linux/eal/eal.c              | 28 +++++++++++++++++\n lib/librte_eal/linux/eal/eal_alarm.c        | 11 +++++++\n lib/librte_eal/linux/eal/eal_interrupts.c   | 35 ++++++++++++++++++---\n lib/librte_eal/linux/eal/eal_log.c          | 14 +++++++++\n lib/librte_eal/linux/eal/eal_vfio.h         |  1 +\n lib/librte_eal/linux/eal/eal_vfio_mp_sync.c |  8 +++++\n lib/librte_ethdev/rte_ethdev.c              |  2 +-\n 19 files changed, 218 insertions(+), 13 deletions(-)"
}