Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/113896/?format=api
http://patches.dpdk.org/api/patches/113896/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220711105747.3295201-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": "<20220711105747.3295201-1-harry.van.haaren@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20220711105747.3295201-1-harry.van.haaren@intel.com", "date": "2022-07-11T10:57:46", "name": "[v2,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": "http://patches.dpdk.org/api/people/317/?format=api", "name": "Van Haaren, Harry", "email": "harry.van.haaren@intel.com" }, "delegate": { "id": 1, "url": "http://patches.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20220711105747.3295201-1-harry.van.haaren@intel.com/mbox/", "series": [ { "id": 23957, "url": "http://patches.dpdk.org/api/series/23957/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=23957", "date": "2022-07-11T10:57:46", "name": "[v2,1/2] test/service: add perf measurements for with stats mode", "version": 2, "mbox": "http://patches.dpdk.org/series/23957/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/113896/comments/", "check": "warning", "checks": "http://patches.dpdk.org/api/patches/113896/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 84604A0032;\n\tMon, 11 Jul 2022 12:57:56 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 2404540695;\n\tMon, 11 Jul 2022 12:57:56 +0200 (CEST)", "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n by mails.dpdk.org (Postfix) with ESMTP id 953F140223\n for <dev@dpdk.org>; Mon, 11 Jul 2022 12:57:54 +0200 (CEST)", "from fmsmga004.fm.intel.com ([10.253.24.48])\n by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 11 Jul 2022 03:57:53 -0700", "from silpixa00401454.ir.intel.com ([10.55.128.122])\n by fmsmga004.fm.intel.com with ESMTP; 11 Jul 2022 03:57:51 -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=1657537074; x=1689073074;\n h=from:to:cc:subject:date:message-id:mime-version:\n content-transfer-encoding;\n bh=ZApIfADsRhivycTOkLerqw9rsmDtlNURwNLVcLQRiaA=;\n b=bCOTyhC2Zk0K8J79zBUpz+Uagc2jx13yuqpRr4mTNjCTJsqBE2EtydLH\n tOWhe3v8gG98IPd33WrxLRwotrXFnYL92VLBF6bOI3ICO9+7S2rKrRudb\n bZ0JpcwfBk0C+SurnL9NhNZGeXPi7IR8eThBCHqRR0uAWi+q6VIcjNotL\n Uzrzt1EozgQsmcV9cwPW4cMaXuSYywNy1i6+1ah3D+vnOHcOg/sm0orF2\n 9zhFLbLg+mKaTazN5Umjl7VzPB1tB1pQYimqNXjPSgImdjGE7gO0prqaT\n Pa/BwOXqoVTpTMMtDgE3hENB1p1nKib/nDpLt87tYKWBXnuZKM/1cbfSL A==;", "X-IronPort-AV": [ "E=McAfee;i=\"6400,9594,10404\"; a=\"264409400\"", "E=Sophos;i=\"5.92,262,1650956400\"; d=\"scan'208\";a=\"264409400\"", "E=Sophos;i=\"5.92,262,1650956400\"; d=\"scan'208\";a=\"662503002\"" ], "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 v2 1/2] test/service: add perf measurements for with stats\n mode", "Date": "Mon, 11 Jul 2022 10:57:46 +0000", "Message-Id": "<20220711105747.3295201-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 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": [ "v2", "1/2" ] }{ "id": 113896, "url": "