Show a cover letter.

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

{
    "id": 63602,
    "url": "http://patches.dpdk.org/api/covers/63602/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20191205173128.64543-1-ciara.power@intel.com/",
    "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": "<20191205173128.64543-1-ciara.power@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20191205173128.64543-1-ciara.power@intel.com",
    "date": "2019-12-05T17:31:22",
    "name": "[RFC,0/6] replace telemetry with process_info",
    "submitter": {
        "id": 978,
        "url": "http://patches.dpdk.org/api/people/978/?format=api",
        "name": "Ciara Power",
        "email": "ciara.power@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20191205173128.64543-1-ciara.power@intel.com/mbox/",
    "series": [
        {
            "id": 7741,
            "url": "http://patches.dpdk.org/api/series/7741/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=7741",
            "date": "2019-12-05T17:31:22",
            "name": "replace telemetry with process_info",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/7741/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/63602/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 2A52DA04F2;\n\tThu,  5 Dec 2019 18:34:12 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 773C91BF81;\n\tThu,  5 Dec 2019 18:34:11 +0100 (CET)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n by dpdk.org (Postfix) with ESMTP id 8E2511BF7D\n for <dev@dpdk.org>; Thu,  5 Dec 2019 18:34:09 +0100 (CET)",
            "from orsmga002.jf.intel.com ([10.7.209.21])\n by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n 05 Dec 2019 09:34:08 -0800",
            "from silpixa00399953.ir.intel.com (HELO\n silpixa00399953.ger.corp.intel.com) ([10.237.222.53])\n by orsmga002.jf.intel.com with ESMTP; 05 Dec 2019 09:34:07 -0800"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.69,282,1571727600\"; d=\"scan'208\";a=\"223711791\"",
        "From": "Ciara Power <ciara.power@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "Bruce Richardson <bruce.richardson@intel.com>",
        "Date": "Thu,  5 Dec 2019 17:31:22 +0000",
        "Message-Id": "<20191205173128.64543-1-ciara.power@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [RFC 0/6] replace telemetry with process_info",
        "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": "From: Bruce Richardson <bruce.richardson@intel.com>\n\nThis patchset proposes a new library, called \"process-info\" for now, to\nreplace the existing telemetry library in DPDK. (Name subject to change\nif someone can propose a better one).\n\nThe existing telemetry library provides useful capabilities if used:\n  - Creates a unix socket on the system to allow external programs\n    connect and gather stats about the DPDK process.\n  - Supports outputting the xstats for various network cards on the\n    system.\n  - Can be used to output any other information exported to the metrics\n    library, e.g. by applications.\n  - Uses JSON message format, which is widely supported by other\n    languages and systems.\n  - Is supported by a plugin to collectd.\n\nHowever, the library also has some issues and limitations that could be\nimproved upon:\n  - Has a dependency on libjansson for JSON processing, so is disabled\n    by default.\n  - Tied entirely to the metrics library for statistics.\n  - No support for sending non-stats data, e.g. something as simple as\n    DPDK version string.\n  - All data gathering functions are in the library itself, which also\n    means…\n  - No support for libraries or drivers to present their own\n    information via the library.\n\nWe therefore propose to keep the good points of the existing library,\nbut change the way things work to rectify the downsides.\nThis leads to the following design choices in the library:\n  - Keep the existing idea of using a unix socket for connection (just\n    simplifying the connection handling).\n  - We would like to use JSON format, where possible, but the jansson\n    library dependency is problematic. However, creating JSON-encoded\n    data is easier than trying to parse JSON in C code, so we can keep\n    the JSON output format for processing by e.g. collectd and other\n    tools, while simplifying the input to be plain text commands:\n\t- Commands in this RFC are designed to all start with \"/\" for\n\t  consistency\n\t- Any parameters to the commands, e.g. the specific port to get\n\t  stats for, are placed after a comma \",\"\n  - Have the library only handle socket creation and input handling.\n    All data gathering should be provided by functions external to the\n    library registered by other components, e.g. have ethdev library\n    provide the function to query NIC xstats, etc.\n  - Have the library directly initialized by EAL by default, so that\n    unless an app explicitly does not want the support, monitoring is\n    available on all DPDK apps.\n\nThe obvious question that remains to be answered here is: \"why a new\nlibrary rather than just fixing the old one?\"\n\nThe answer is that we have conflicts between the final two design\nchoices above, which require that the library be built early in the\nbuild as other libraries will call into it to register callbacks, and\nthe desire to keep backward compatibility e.g. for use with collectd\nplugin, which requires the existing library code be kept around and\nbuilt - as it is now - at the end of the build process since it calls\ninto other DPDK libraries. We therefore cannot have one library that\nmeets both requirements, hence the replacement which allows us to\nmaintain backward compatibility by just leaving the old lib in place\nuntil e.g. 20.11. \n\nThis is also why the new library is called \"process_info\", since the\nname \"telemetry\" is already taken. Suggestions for a better name\nwelcome.\n\nBruce Richardson (4):\n  process-info: introduce process-info library\n  eal: integrate process-info library\n  usertools: add process-info python script\n  ethdev: add callback support for process-info\n\nCiara Power (2):\n  rawdev: add callback support for process-info\n  examples/l3fwd-power: enable use of process-info\n\n config/common_base                            |   5 +\n examples/l3fwd-power/main.c                   |  83 ++-----\n lib/Makefile                                  |   3 +-\n lib/librte_eal/common/eal_common_options.c    |  75 ++++++\n lib/librte_eal/common/eal_internal_cfg.h      |   1 +\n lib/librte_eal/common/eal_options.h           |   5 +\n lib/librte_eal/freebsd/eal/Makefile           |   1 +\n lib/librte_eal/freebsd/eal/eal.c              |  14 ++\n lib/librte_eal/linux/eal/Makefile             |   1 +\n lib/librte_eal/linux/eal/eal.c                |  15 ++\n lib/librte_eal/meson.build                    |   2 +-\n lib/librte_ethdev/Makefile                    |   2 +-\n lib/librte_ethdev/rte_ethdev.c                |  73 ++++++\n lib/librte_process_info/Makefile              |  26 ++\n lib/librte_process_info/meson.build           |   8 +\n lib/librte_process_info/process_info.c        | 231 ++++++++++++++++++\n lib/librte_process_info/rte_process_info.h    |  25 ++\n .../rte_process_info_version.map              |   6 +\n lib/librte_rawdev/Makefile                    |   3 +-\n lib/librte_rawdev/meson.build                 |   1 +\n lib/librte_rawdev/rte_rawdev.c                |  82 +++++++\n lib/meson.build                               |   1 +\n mk/rte.app.mk                                 |   1 +\n usertools/test_new_telemetry.py               |  28 +++\n 24 files changed, 630 insertions(+), 62 deletions(-)\n create mode 100644 lib/librte_process_info/Makefile\n create mode 100644 lib/librte_process_info/meson.build\n create mode 100644 lib/librte_process_info/process_info.c\n create mode 100644 lib/librte_process_info/rte_process_info.h\n create mode 100644 lib/librte_process_info/rte_process_info_version.map\n create mode 100755 usertools/test_new_telemetry.py"
}