Show a cover letter.

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

{
    "id": 84748,
    "url": "http://patches.dpdk.org/api/covers/84748/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20201204075109.14694-1-yamashita.hideyuki@ntt-tx.co.jp/",
    "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": "<20201204075109.14694-1-yamashita.hideyuki@ntt-tx.co.jp>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201204075109.14694-1-yamashita.hideyuki@ntt-tx.co.jp",
    "date": "2020-12-04T07:51:04",
    "name": "[0/5] add apistats function",
    "submitter": {
        "id": 1450,
        "url": "http://patches.dpdk.org/api/people/1450/?format=api",
        "name": "Hideyuki Yamashita",
        "email": "yamashita.hideyuki@ntt-tx.co.jp"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20201204075109.14694-1-yamashita.hideyuki@ntt-tx.co.jp/mbox/",
    "series": [
        {
            "id": 14187,
            "url": "http://patches.dpdk.org/api/series/14187/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=14187",
            "date": "2020-12-04T07:51:04",
            "name": "add apistats function",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/14187/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/84748/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 2472BA04B0;\n\tFri,  4 Dec 2020 08:51:43 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 72968375B;\n\tFri,  4 Dec 2020 08:51:41 +0100 (CET)",
            "from dish-sg.nttdocomo.co.jp (dish-sg.nttdocomo.co.jp\n [202.19.227.74]) by dpdk.org (Postfix) with ESMTP id 62C8634F3\n for <dev@dpdk.org>; Fri,  4 Dec 2020 08:51:39 +0100 (CET)",
            "from zssg-mailmd103.ddreams.local (zssg-mailmd900.ddreams.local\n [10.160.172.63])\n by zssg-mailou103.ddreams.local (Postfix) with ESMTP id A281F120107\n for <dev@dpdk.org>; Fri,  4 Dec 2020 16:51:37 +0900 (JST)",
            "from zssg-mailmf101.ddreams.local\n (zssg-mailmf900.ddreams.local [10.160.172.84]) by\n zssg-mailmd103.ddreams.local\n (dDREAMS) with ESMTP id <0QKT00JM91TXFD60@dDREAMS>; Fri,\n 04 Dec 2020 16:51:37 +0900 (JST)",
            "from zssg-mailmf101.ddreams.local (unknown [127.0.0.1])\n by zssg-mailmf101.ddreams.local (Postfix) with ESMTP id 7114D7E603B;\tFri,\n 4 Dec 2020 16:51:37 +0900 (JST)",
            "from zssg-mailmf101.ddreams.local (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 703C38E605C;\tFri,\n 4 Dec 2020 16:51:37 +0900 (JST)",
            "from localhost (unknown [127.0.0.1])\tby IMSVA (Postfix)\n with SMTP id 6E4168E6058;\tFri,  4 Dec 2020 16:51:37 +0900 (JST)",
            "from zssg-mailmf101.ddreams.local (unknown [127.0.0.1])\n by IMSVA (Postfix) with ESMTP id 7C16F8E6058;\tFri,\n 4 Dec 2020 16:51:36 +0900 (JST)",
            "from davinci.ntt-tx.co.jp (unknown [10.160.183.139])\n by zssg-mailmf101.ddreams.local (Postfix) with ESMTP;\tFri,\n 4 Dec 2020 16:51:36 +0900 (JST)"
        ],
        "X-dD-Source": "Outbound",
        "X-IMSS-HAND-OFF-DIRECTIVE": "localhost:10026",
        "From": "Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>",
        "To": "",
        "Cc": "dev@dpdk.org, Hideyuki Yamashita <yamashita.hideyuki@ntt-tx.co.jp>",
        "Date": "Fri, 04 Dec 2020 16:51:04 +0900",
        "Message-id": "<20201204075109.14694-1-yamashita.hideyuki@ntt-tx.co.jp>",
        "X-Mailer": "git-send-email 2.28.0",
        "MIME-version": "1.0",
        "Content-transfer-encoding": "8bit",
        "X-TM-AS-GCONF": "00",
        "Subject": "[dpdk-dev] [PATCH 0/5] add apistats function",
        "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": "In general, DPDK application consumes CPU usage because it polls\nincoming packets using rx_burst API in infinite loop.\nThis makes difficult to estimate how much CPU usage is really\nused to send/receive packets by the DPDK application.\n\nFor example, even if no incoming packets arriving, CPU usage\nlooks nearly 100% when observed by top command.\n\nIt is beneficial if developers can observe real CPU usage of the\nDPDK application.\nSuch information can be exported to monitoring application like\nprometheus/graphana and shows CPU usage graphically.\n\nTo achieve above, this patch set provides apistats functionality.\napistats provides the followiing two counters for each lcore.\n- rx_burst_counts[RTE_MAX_LCORE]\n- tx_burst_counts[RTE_MAX_LCORE]\nThose accumulates rx_burst/tx_burst counts since the application starts.\n\nBy using those values, developers can roughly estimate CPU usage.\nLet us assume a DPDK application is simply forwarding packets.\nIt calls tx_burst only if it receive packets.\nIf rx_burst_counts=1000 and tx_burst_count=1000 during certain\nperiod of time, one can assume CPU usage is 100%.\nIf rx_burst_counts=1000 and tx_burst_count=100 during certain\nperiod of time, one can assume CPU usage is 10%.\nHere we assumes that tx_burst_count equals counts which rx_burst function\nreally receives incoming packets.\n\n\nThis patch set provides the following.\n- basic API counting functionality(apistats) into librte_ethdev\n- add code to testpmd to accumulate counter information\n- add code to proc-info to retrieve above mentioned counter information\n- add description in proc-info document about --apistats parameter\n- modify MAINTAINERS file for apistats.c and apistats.h\n\nHideyuki Yamashita (5):\n  maintainers: update maintainers file for apistats\n  app/proc-info: add to use apistats\n  app/test-pmd: add to use apistats\n  docs: add description of apistats parameter into proc-info\n  librte_ethdev: add to use apistats\n\n MAINTAINERS                      |  3 ++\n app/proc-info/main.c             | 46 +++++++++++++++++++++++\n app/test-pmd/testpmd.c           |  4 ++\n doc/guides/tools/proc_info.rst   | 10 ++++-\n lib/librte_ethdev/meson.build    |  6 ++-\n lib/librte_ethdev/rte_apistats.c | 64 ++++++++++++++++++++++++++++++++\n lib/librte_ethdev/rte_apistats.h | 64 ++++++++++++++++++++++++++++++++\n lib/librte_ethdev/rte_ethdev.h   |  7 ++++\n lib/librte_ethdev/version.map    |  5 +++\n 9 files changed, 205 insertions(+), 4 deletions(-)\n create mode 100644 lib/librte_ethdev/rte_apistats.c\n create mode 100644 lib/librte_ethdev/rte_apistats.h"
}