Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/113900/?format=api
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" ] }{ "id": 113900, "url": "