get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 113900,
    "url": "http://patches.dpdk.org/api/patches/113900/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220711131825.3373195-1-harry.van.haaren@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": "<20220711131825.3373195-1-harry.van.haaren@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220711131825.3373195-1-harry.van.haaren@intel.com",
    "date": "2022-07-11T13:18:24",
    "name": "[v3,1/2] test/service: add perf measurements for with stats mode",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "1dc2269b95d2c78f984bd7339c7fadc8a99e3546",
    "submitter": {
        "id": 317,
        "url": "http://patches.dpdk.org/api/people/317/?format=api",
        "name": "Van Haaren, Harry",
        "email": "harry.van.haaren@intel.com"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patches.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20220711131825.3373195-1-harry.van.haaren@intel.com/mbox/",
    "series": [
        {
            "id": 23959,
            "url": "http://patches.dpdk.org/api/series/23959/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=23959",
            "date": "2022-07-11T13:18:24",
            "name": "[v3,1/2] test/service: add perf measurements for with stats mode",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/23959/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/113900/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/113900/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 73A5AA0032;\n\tMon, 11 Jul 2022 15:18:37 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 63F3C41611;\n\tMon, 11 Jul 2022 15:18:37 +0200 (CEST)",
            "from mga18.intel.com (mga18.intel.com [134.134.136.126])\n by mails.dpdk.org (Postfix) with ESMTP id 63F3D41156\n for <dev@dpdk.org>; Mon, 11 Jul 2022 15:18:36 +0200 (CEST)",
            "from fmsmga005.fm.intel.com ([10.253.24.32])\n by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 11 Jul 2022 06:18:35 -0700",
            "from silpixa00401454.ir.intel.com ([10.55.128.122])\n by fmsmga005.fm.intel.com with ESMTP; 11 Jul 2022 06:18:33 -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=1657545516; x=1689081516;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=ZApIfADsRhivycTOkLerqw9rsmDtlNURwNLVcLQRiaA=;\n b=hEjuc+okqF8HNQ/y5erhfjlhF9eGa7CuARKuW2wnqIWln6skA4g/Gv1c\n NH7FtAbmkI5brvYceB3g0Pg6v+vNttGxkm3HOCCOIXhwcN0wQvEVPV4yo\n 75ksX9sj2UTcQdBjKJnBpOUNnKpO1DeLoj4SyqXfMpcadEulYegU8hvWR\n bM53qHGy1WYbihHplST0JSiksx37YKHXX52XXiihMh0ZCN/ivvo5N/CXC\n UXNFrcDXA0yj+R9hXD7ynGx1apt0QRais2OhVOHYR1ckRTiE1nUaI2L58\n Lh/7N83QdAugxpIpNguG3GpD+G1ukfNh2x9qGOMhK9ZtZMEbs+962S40Z g==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6400,9594,10404\"; a=\"267697814\"",
            "E=Sophos;i=\"5.92,262,1650956400\"; d=\"scan'208\";a=\"267697814\"",
            "E=Sophos;i=\"5.92,262,1650956400\"; d=\"scan'208\";a=\"921778879\""
        ],
        "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 v3 1/2] test/service: add perf measurements for with stats\n mode",
        "Date": "Mon, 11 Jul 2022 13:18:24 +0000",
        "Message-Id": "<20220711131825.3373195-1-harry.van.haaren@intel.com>",
        "X-Mailer": "git-send-email 2.32.0",
        "In-Reply-To": "<20220711105747.3295201-1-harry.van.haaren@intel.com>",
        "References": "<20220711105747.3295201-1-harry.van.haaren@intel.com>",
        "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 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": [
        "v3",
        "1/2"
    ]
}