From nobody Thu Dec 18 06:47:07 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E511FC71145 for ; Thu, 24 Aug 2023 12:42:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239280AbjHXMmA (ORCPT ); Thu, 24 Aug 2023 08:42:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37968 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239010AbjHXMlm (ORCPT ); Thu, 24 Aug 2023 08:41:42 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9232170C for ; Thu, 24 Aug 2023 05:41:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1692880900; x=1724416900; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=mW1/XHCL8jo5nLcGLbs562k5Z2uxGCBaekuKIwJh7Cg=; b=OVPFwutXec1RDRIWEyu7pZgxY8wez7x7amG0jZywVxrQGu6wITexIq+j 7T+GMMCRuWVgnJYurhkCT94TllMmrMnmjqqmHceH4GceAXua/VrMUati/ DLDZPtU1uGoVrqSlozVyTDZ9IWG5v9r0cgQJ51BDtF5EDO9IoHwUYcRGh 6rTZEsEj5q00uUpMeeFic3RUc4vztXKDzATzepiq1izxhAfXbAJDZagvY 1DKQqRJvSahrl3j43ynjRShJdtc2Hms/E6NQ7T3UngA/hZG3Bk3onboh5 Ava4SSqqY1PDbH/4P9JdnVsw6XJDxDoh7YT5FFA+sYuDQXeaiY5br5YSS g==; X-IronPort-AV: E=McAfee;i="6600,9927,10811"; a="460783945" X-IronPort-AV: E=Sophos;i="6.02,195,1688454000"; d="scan'208";a="460783945" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Aug 2023 05:41:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10811"; a="740161418" X-IronPort-AV: E=Sophos;i="6.02,195,1688454000"; d="scan'208";a="740161418" Received: from mdziurdx-mobl1.ger.corp.intel.com (HELO wieczorr-mobl1.intel.com) ([10.213.11.127]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Aug 2023 05:41:39 -0700 From: "Wieczor-Retman, Maciej" To: linux-kernel@vger.kernel.org, reinette.chatre@intel.com, fenghua.yu@intel.com Cc: ilpo.jarvinen@linux.intel.com Subject: [PATCH 2/3] selftests/resctrl: Move run_benchmark() to a more fitting file Date: Thu, 24 Aug 2023 14:41:25 +0200 Message-ID: <69a1ed7c06c3c34a2e39b50ffcceb9774967203a.1692880423.git.maciej.wieczor-retman@intel.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Resctrlfs.c file contains mostly functions that interact in some way with resctrl FS entries while functions inside resctrl_val.c deal with measurements and benchmarking Run_benchmark() function is located in resctrlfs.c file even though it's purpose is not interacting with the resctrl FS but to execute cache checking logic Move run_benchmark() to resctrl_val.c just before resctrl_val() function that makes use of run_benchmark() Signed-off-by: Wieczor-Retman, Maciej --- tools/testing/selftests/resctrl/resctrl_val.c | 52 +++++++++++++++++++ tools/testing/selftests/resctrl/resctrlfs.c | 52 ------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/= selftests/resctrl/resctrl_val.c index f0f6c5f6e98b..667542c084eb 100644 --- a/tools/testing/selftests/resctrl/resctrl_val.c +++ b/tools/testing/selftests/resctrl/resctrl_val.c @@ -621,6 +621,58 @@ measure_vals(struct resctrl_val_param *param, unsigned= long *bw_resc_start) return 0; } =20 +/* + * run_benchmark - Run a specified benchmark or fill_buf (default benchmar= k) + * in specified signal. Direct benchmark stdio to /dev/null. + * @signum: signal number + * @info: signal info + * @ucontext: user context in signal handling + * + * Return: void + */ +void run_benchmark(int signum, siginfo_t *info, void *ucontext) +{ + int operation, ret, memflush; + char **benchmark_cmd; + size_t span; + bool once; + FILE *fp; + + benchmark_cmd =3D info->si_ptr; + + /* + * Direct stdio of child to /dev/null, so that only parent writes to + * stdio (console) + */ + fp =3D freopen("/dev/null", "w", stdout); + if (!fp) + PARENT_EXIT("Unable to direct benchmark status to /dev/null"); + + if (strcmp(benchmark_cmd[0], "fill_buf") =3D=3D 0) { + /* Execute default fill_buf benchmark */ + span =3D strtoul(benchmark_cmd[1], NULL, 10); + memflush =3D atoi(benchmark_cmd[2]); + operation =3D atoi(benchmark_cmd[3]); + if (!strcmp(benchmark_cmd[4], "true")) + once =3D true; + else if (!strcmp(benchmark_cmd[4], "false")) + once =3D false; + else + PARENT_EXIT("Invalid once parameter"); + + if (run_fill_buf(span, memflush, operation, once)) + fprintf(stderr, "Error in running fill buffer\n"); + } else { + /* Execute specified benchmark */ + ret =3D execvp(benchmark_cmd[0], benchmark_cmd); + if (ret) + perror("wrong\n"); + } + + fclose(stdout); + PARENT_EXIT("Unable to run specified benchmark"); +} + /* * resctrl_val: execute benchmark and measure memory bandwidth on * the benchmark diff --git a/tools/testing/selftests/resctrl/resctrlfs.c b/tools/testing/se= lftests/resctrl/resctrlfs.c index a6d0b632cbc6..e3c94614c086 100644 --- a/tools/testing/selftests/resctrl/resctrlfs.c +++ b/tools/testing/selftests/resctrl/resctrlfs.c @@ -291,58 +291,6 @@ int taskset_benchmark(pid_t bm_pid, int cpu_no) return 0; } =20 -/* - * run_benchmark - Run a specified benchmark or fill_buf (default benchmar= k) - * in specified signal. Direct benchmark stdio to /dev/null. - * @signum: signal number - * @info: signal info - * @ucontext: user context in signal handling - * - * Return: void - */ -void run_benchmark(int signum, siginfo_t *info, void *ucontext) -{ - int operation, ret, memflush; - char **benchmark_cmd; - size_t span; - bool once; - FILE *fp; - - benchmark_cmd =3D info->si_ptr; - - /* - * Direct stdio of child to /dev/null, so that only parent writes to - * stdio (console) - */ - fp =3D freopen("/dev/null", "w", stdout); - if (!fp) - PARENT_EXIT("Unable to direct benchmark status to /dev/null"); - - if (strcmp(benchmark_cmd[0], "fill_buf") =3D=3D 0) { - /* Execute default fill_buf benchmark */ - span =3D strtoul(benchmark_cmd[1], NULL, 10); - memflush =3D atoi(benchmark_cmd[2]); - operation =3D atoi(benchmark_cmd[3]); - if (!strcmp(benchmark_cmd[4], "true")) - once =3D true; - else if (!strcmp(benchmark_cmd[4], "false")) - once =3D false; - else - PARENT_EXIT("Invalid once parameter"); - - if (run_fill_buf(span, memflush, operation, once)) - fprintf(stderr, "Error in running fill buffer\n"); - } else { - /* Execute specified benchmark */ - ret =3D execvp(benchmark_cmd[0], benchmark_cmd); - if (ret) - perror("wrong\n"); - } - - fclose(stdout); - PARENT_EXIT("Unable to run specified benchmark"); -} - /* * create_grp - Create a group only if one doesn't exist * @grp_name: Name of the group --=20 2.42.0