get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/113830/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 113830,
    "url": "https://patches.dpdk.org/api/patches/113830/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20220708125645.3141464-1-harry.van.haaren@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": "<20220708125645.3141464-1-harry.van.haaren@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220708125645.3141464-1-harry.van.haaren@intel.com",
    "date": "2022-07-08T12:56:44",
    "name": "[1/2] test/service: add perf measurements for with stats mode",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "1dc2269b95d2c78f984bd7339c7fadc8a99e3546",
    "submitter": {
        "id": 317,
        "url": "https://patches.dpdk.org/api/people/317/?format=api",
        "name": "Van Haaren, Harry",
        "email": "harry.van.haaren@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20220708125645.3141464-1-harry.van.haaren@intel.com/mbox/",
    "series": [
        {
            "id": 23942,
            "url": "https://patches.dpdk.org/api/series/23942/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=23942",
            "date": "2022-07-08T12:56:44",
            "name": "[1/2] test/service: add perf measurements for with stats mode",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/23942/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/113830/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/113830/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id C853DA00C5;\n\tFri,  8 Jul 2022 14:57:12 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 5EFAA406B4;\n\tFri,  8 Jul 2022 14:57:12 +0200 (CEST)",
            "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n by mails.dpdk.org (Postfix) with ESMTP id D815E4021E\n for <dev@dpdk.org>; Fri,  8 Jul 2022 14:57:10 +0200 (CEST)",
            "from orsmga001.jf.intel.com ([10.7.209.18])\n by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 08 Jul 2022 05:56:54 -0700",
            "from silpixa00401454.ir.intel.com ([10.55.128.122])\n by orsmga001.jf.intel.com with ESMTP; 08 Jul 2022 05:56:52 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1657285031; x=1688821031;\n h=from:to:cc:subject:date:message-id:mime-version:\n content-transfer-encoding;\n bh=I0fDylEP/1qmu51QeBy0fWN3JmzpYZbGZQrsbj5/TLk=;\n b=l66AgK0rCl/QP/s14vwOv0oeSeDx5vahSQezuNO9FIOyrW7D0WFWvL2j\n zixSnuEf4F8wHeXFge3IZxfJGvAtJHX9/VjeNk5Zo9gx72HxFUR1s7hkS\n T2C7WdOTomQ/T1qnYUfmWrShMszkl2TfKuMmDVoyerggcvkwIPZFtUNfn\n ynVG5gb1RxKm5MrLKVZN4eDSj/1/Xi4cM+CkNXQkuuY/E1UyFQp/dxOj7\n Bo5JYQXCZLk3BnEn8V6AuWmEO2fql7BWMAQRcswtTgTdHPsRi+/RHFlmM\n wHKGvAlNkhd7xVYLWU18l0HXZP2gkXlP/tdD22hQdZgKp6d1XMO+pfjL9 g==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6400,9594,10401\"; a=\"264053430\"",
            "E=Sophos;i=\"5.92,255,1650956400\"; d=\"scan'208\";a=\"264053430\"",
            "E=Sophos;i=\"5.92,255,1650956400\"; d=\"scan'208\";a=\"626696690\""
        ],
        "X-ExtLoop1": "1",
        "From": "Harry van Haaren <harry.van.haaren@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "Harry van Haaren <harry.van.haaren@intel.com>, =?utf-8?q?Mattias_R=C3=B6?=\n\t=?utf-8?q?nnblom?= <mattias.ronnblom@ericsson.com>,\n Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>, =?utf-8?q?Morten_Br?=\n\t=?utf-8?q?=C3=B8rup?= <mb@smartsharesystems.com>",
        "Subject": "[PATCH 1/2] test/service: add perf measurements for with stats mode",
        "Date": "Fri,  8 Jul 2022 12:56:44 +0000",
        "Message-Id": "<20220708125645.3141464-1-harry.van.haaren@intel.com>",
        "X-Mailer": "git-send-email 2.32.0",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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"
    },
    "content": "This commit improves the performance reporting of the service\ncores polling loop to show both with and without statistics\ncollection modes. Collecting cycle statistics is costly, due\nto calls to rte_rdtsc() per service iteration.\n\nReported-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>\nSuggested-by: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>\nSuggested-by: Morten Brørup <mb@smartsharesystems.com>\nSigned-off-by: Harry van Haaren <harry.van.haaren@intel.com>\n\n---\n\nThis is split out as a seperate patch from the fix to allow\nmeasuring the before/after of the service stats atomic fixup.\n\n---\n app/test/test_service_cores.c | 36 ++++++++++++++++++++++++-----------\n 1 file changed, 25 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/app/test/test_service_cores.c b/app/test/test_service_cores.c\nindex ced6ed0081..7415b6b686 100644\n--- a/app/test/test_service_cores.c\n+++ b/app/test/test_service_cores.c\n@@ -777,6 +777,22 @@ service_run_on_app_core_func(void *arg)\n \treturn rte_service_run_iter_on_app_lcore(*delay_service_id, 1);\n }\n \n+static float\n+service_app_lcore_perf_measure(uint32_t id)\n+{\n+\t/* Performance test: call in a loop, and measure tsc() */\n+\tconst uint32_t perf_iters = (1 << 12);\n+\tuint64_t start = rte_rdtsc();\n+\tuint32_t i;\n+\tfor (i = 0; i < perf_iters; i++) {\n+\t\tint err = service_run_on_app_core_func(&id);\n+\t\tTEST_ASSERT_EQUAL(0, err, \"perf test: returned run failure\");\n+\t}\n+\tuint64_t end = rte_rdtsc();\n+\n+\treturn (end - start)/(float)perf_iters;\n+}\n+\n static int\n service_app_lcore_poll_impl(const int mt_safe)\n {\n@@ -828,17 +844,15 @@ service_app_lcore_poll_impl(const int mt_safe)\n \t\t\t\t\"MT Unsafe: App core1 didn't return -EBUSY\");\n \t}\n \n-\t/* Performance test: call in a loop, and measure tsc() */\n-\tconst uint32_t perf_iters = (1 << 12);\n-\tuint64_t start = rte_rdtsc();\n-\tuint32_t i;\n-\tfor (i = 0; i < perf_iters; i++) {\n-\t\tint err = service_run_on_app_core_func(&id);\n-\t\tTEST_ASSERT_EQUAL(0, err, \"perf test: returned run failure\");\n-\t}\n-\tuint64_t end = rte_rdtsc();\n-\tprintf(\"perf test for %s: %0.1f cycles per call\\n\", mt_safe ?\n-\t\t\"MT Safe\" : \"MT Unsafe\", (end - start)/(float)perf_iters);\n+\t/* Measure performance of no-stats and with-stats. */\n+\tfloat cyc_no_stats = service_app_lcore_perf_measure(id);\n+\n+\tTEST_ASSERT_EQUAL(0, rte_service_set_stats_enable(id, 1),\n+\t\t\t\t\"failed to enable stats for service.\");\n+\tfloat cyc_with_stats = service_app_lcore_perf_measure(id);\n+\n+\tprintf(\"perf test for %s, no stats: %0.1f, with stats %0.1f cycles/call\\n\",\n+\t\tmt_safe ? \"MT Safe\" : \"MT Unsafe\", cyc_no_stats, cyc_with_stats);\n \n \tunregister_all();\n \treturn TEST_SUCCESS;\n",
    "prefixes": [
        "1/2"
    ]
}