Received: by 2002:ab2:3350:0:b0:1f4:6588:b3a7 with SMTP id o16csp1466137lqe; Mon, 8 Apr 2024 09:35:27 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUiVCBF1AaRrpnSsKDEPkw6leko5PNRZlKRo1FodZRL/uX/Zy3kk7cRShJ4ADltm+GYVSAMqYAJfm2TyEaosYB1itnOH3lio0w3CRSQ4Q== X-Google-Smtp-Source: AGHT+IHeqfhp30rRa/3MIIT6s1fO9SN0zK/Nnqf9VQ5uRNis0qMjp06NzfBmjDbxHP+n5gkkAbiN X-Received: by 2002:a17:906:4094:b0:a4a:3b6e:1fa9 with SMTP id u20-20020a170906409400b00a4a3b6e1fa9mr174837ejj.15.1712594127541; Mon, 08 Apr 2024 09:35:27 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712594127; cv=pass; d=google.com; s=arc-20160816; b=N1ZyMX/hS/ig4tRK4eQ/LO4yPnhKfO+iK2GhhO3twDwdfLgxk4XO7d+lRLA9n2bbH+ e1D7pa4x90YUd3QmYijSePEbF0Cv7S3BcQ4or2luFoCXEi/lhKbfqTbTkt+uGOtENewI DDqEPjPoV5DfdPEsI2AyxOmukO5eFK33Mc3Fnp7ykCPLatezc4ql0X+51jgqt9s5nOxq jqGdv1F0Buyk5acIbctXNDBVZZF+wvRutPZ5FE6peTPt0HFIeMawkSHX/bEeWEMO0MtY 6BzSvHld0STKBDwltnQls4VFBqRfqXD1y0EKSfjkp43VwFVE4Q6z49ZgeyC02vk3cDXg LVjA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=DgeFbWr54p+PO9nymeNCBodfzUoimU/zm2Xnw8udqt4=; fh=G8k5KLlKAeFR9xe9SXCzJ3g7WPs151bJx6zrec4c8hI=; b=ryn7RL8bYQYAS1mSV3yAMpwrDJQCbzFaFjaTW3KgIvGSyIghULRSJgxZefEZ4Qzai9 gkh7akljumM9vWnNnKS5oQuKghziQgHj8n98Y837cS8JPgTFI0I7isM1SQxEOk8IdD/S dpNjjc68rjN+0Zfu/VxpVqRPOLuSYT0XsVf5rUsUe1lx7j6xpIs/80Ch+W5fmezBylWG d/Xg0OFrVU1hbqHWIzOW45KBDBPOQoeiLbAJVOoKr+nYP+OAflCZntxvPQa2rKVNbJgy T4zSCgkxdwWcLWLsQq4RCriLSFFwJI8FptqDrreOwMcmCOUQiNW1XshmNQru4WupbCtz 9p0A==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=P+adrHRL; arc=pass (i=1 dkim=pass dkdomain=intel.com dmarc=pass fromdomain=linux.intel.com); spf=pass (google.com: domain of linux-kernel+bounces-135681-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-135681-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id p23-20020a17090653d700b00a4e7c56f6basi3743722ejo.600.2024.04.08.09.35.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Apr 2024 09:35:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-135681-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=P+adrHRL; arc=pass (i=1 dkim=pass dkdomain=intel.com dmarc=pass fromdomain=linux.intel.com); spf=pass (google.com: domain of linux-kernel+bounces-135681-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-135681-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 161881F26740 for ; Mon, 8 Apr 2024 16:35:27 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 902E8143C5F; Mon, 8 Apr 2024 16:34:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="P+adrHRL" Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 002AE142E6D; Mon, 8 Apr 2024 16:34:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712594071; cv=none; b=J8dGTOMxqtS9ljSntXXksl+neu5Atmfb56r40T2K1LOfBu3+BO2rvdPpJ/S9JKnkS/M3jN8vZcN/SFpkjbZahcqOcONsDbNO/EJ+augcG2yhqeueZIVhEPFnQy8fs84yrGDBAiH4akZdga02Cc5aXRDZ4nkpZgr7fYcgJXpQyyc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712594071; c=relaxed/simple; bh=iFMcF4sxF33XR0Lkc9Cq46XcFGCgzur5ZS+neQp1wWE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=hU3L0Yc+Ms78spJ91MU2zd341vghuE4pgz4uA8k+0cY1pACxvImxWIuST8J8mhE9mEgvFwrtMg3wkiwYMlTy0S/7MTSQxR7H2mqEjsEhzy3LakLayEkYp/vbqHVDsNq0/rHjavV29rbeCFgsJK++CnpiM7j5SdPuipkrdTzfr/8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=P+adrHRL; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1712594071; x=1744130071; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=iFMcF4sxF33XR0Lkc9Cq46XcFGCgzur5ZS+neQp1wWE=; b=P+adrHRLZl6H9xRP9qLJHdufvLVPRC3VjxeehokucKLM6EE7fyzVj8P0 iKXAx7TosY06e5Oe3anE/RWnQJ+n4tWJAlBIfunR4FV5nGkFTEqT64uLA kfwS64m/Y/XVquDh2yZVtAc/itQCtVo4thYcXQG2ahOJrRERYOHoPdvC/ flqrJm8Tn7QhE00Bw47PqVupCPmwnlTgGd3X91uAqqciFKXYzJYPOGwm9 Z2EtmrmENG4JdhqS9lEBk9D1wgg/6b4lrHMLUsvac2uNjLGtZvQqJ/t4z kBvGb9v/GbJNHI7Fh0u6b5j6vpGf2eHMKO9GN4zwfciG6EzzrZ1hhpaSS Q==; X-CSE-ConnectionGUID: cBiNJ4h8QoGR87sOU/L18g== X-CSE-MsgGUID: wjjGYG3WRhOJczl2CjsCxQ== X-IronPort-AV: E=McAfee;i="6600,9927,11038"; a="19315363" X-IronPort-AV: E=Sophos;i="6.07,187,1708416000"; d="scan'208";a="19315363" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Apr 2024 09:33:59 -0700 X-CSE-ConnectionGUID: LT2GzFtkS7qSQ3N55rtxKg== X-CSE-MsgGUID: iY1ZCACeRRaG7V1N+76N+w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,187,1708416000"; d="scan'208";a="43113598" Received: from ijarvine-desk1.ger.corp.intel.com (HELO localhost) ([10.245.247.28]) by fmviesa002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Apr 2024 09:33:54 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-kselftest@vger.kernel.org, Reinette Chatre , Shuah Khan , Babu Moger , =?UTF-8?q?Maciej=20Wiecz=C3=B3r-Retman?= Cc: Fenghua Yu , linux-kernel@vger.kernel.org, =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH v3 07/16] selftests/resctrl: Cleanup bm_pid and ppid usage & limit scope Date: Mon, 8 Apr 2024 19:32:38 +0300 Message-Id: <20240408163247.3224-8-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240408163247.3224-1-ilpo.jarvinen@linux.intel.com> References: <20240408163247.3224-1-ilpo.jarvinen@linux.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 'bm_pid' and 'ppid' are global variables. As they are used by different processes and in signal handler, they cannot be entirely converted into local variables. The scope of those variables can still be reduced into resctrl_val.c only. As PARENT_EXIT() macro is using 'ppid', make it a function in resctrl_val.c and pass ppid to it as an argument because it is easier to understand than using the global variable directly. Pass 'bm_pid' into measure_val() instead of relying on the global variable which helps to make the call signatures of measure_val() and measure_llc_resctrl() more similar to each other. Signed-off-by: Ilpo Järvinen --- tools/testing/selftests/resctrl/resctrl.h | 9 -------- tools/testing/selftests/resctrl/resctrl_val.c | 23 ++++++++++++------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/tools/testing/selftests/resctrl/resctrl.h b/tools/testing/selftests/resctrl/resctrl.h index e6f221236c79..e4b6dc672ecc 100644 --- a/tools/testing/selftests/resctrl/resctrl.h +++ b/tools/testing/selftests/resctrl/resctrl.h @@ -43,13 +43,6 @@ #define DEFAULT_SPAN (250 * MB) -#define PARENT_EXIT() \ - do { \ - kill(ppid, SIGKILL); \ - umount_resctrlfs(); \ - exit(EXIT_FAILURE); \ - } while (0) - /* * user_params: User supplied parameters * @cpu: CPU number to which the benchmark will be bound to @@ -127,8 +120,6 @@ struct perf_event_read { */ extern volatile int *value_sink; -extern pid_t bm_pid, ppid; - extern char llc_occup_path[1024]; int get_vendor(void); diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c index 5ef97d171cef..928c31903af2 100644 --- a/tools/testing/selftests/resctrl/resctrl_val.c +++ b/tools/testing/selftests/resctrl/resctrl_val.c @@ -496,7 +496,7 @@ static int get_mem_bw_resctrl(unsigned long *mbm_total) return 0; } -pid_t bm_pid, ppid; +static pid_t bm_pid, ppid; void ctrlc_handler(int signum, siginfo_t *info, void *ptr) { @@ -554,6 +554,13 @@ void signal_handler_unregister(void) } } +static void parent_exit(pid_t ppid) +{ + kill(ppid, SIGKILL); + umount_resctrlfs(); + exit(EXIT_FAILURE); +} + /* * print_results_bw: the memory bandwidth results are stored in a file * @filename: file that stores the results @@ -622,7 +629,7 @@ static void initialize_llc_occu_resctrl(const char *ctrlgrp, const char *mongrp, } static int measure_vals(const struct user_params *uparams, - struct resctrl_val_param *param) + struct resctrl_val_param *param, pid_t bm_pid) { unsigned long bw_resc, bw_resc_start, bw_resc_end; float bw_imc; @@ -682,7 +689,7 @@ static void run_benchmark(int signum, siginfo_t *info, void *ucontext) fp = freopen("/dev/null", "w", stdout); if (!fp) { ksft_perror("Unable to direct benchmark status to /dev/null"); - PARENT_EXIT(); + parent_exit(ppid); } if (strcmp(benchmark_cmd[0], "fill_buf") == 0) { @@ -696,7 +703,7 @@ static void run_benchmark(int signum, siginfo_t *info, void *ucontext) once = false; } else { ksft_print_msg("Invalid once parameter\n"); - PARENT_EXIT(); + parent_exit(ppid); } if (run_fill_buf(span, memflush, operation, once)) @@ -710,7 +717,7 @@ static void run_benchmark(int signum, siginfo_t *info, void *ucontext) fclose(stdout); ksft_print_msg("Unable to run specified benchmark\n"); - PARENT_EXIT(); + parent_exit(ppid); } /* @@ -789,7 +796,7 @@ int resctrl_val(const struct resctrl_test *test, /* Register for "SIGUSR1" signal from parent */ if (sigaction(SIGUSR1, &sigact, NULL)) { ksft_perror("Can't register child for signal"); - PARENT_EXIT(); + parent_exit(ppid); } /* Tell parent that child is ready */ @@ -807,7 +814,7 @@ int resctrl_val(const struct resctrl_test *test, sigsuspend(&sigact.sa_mask); ksft_perror("Child is done"); - PARENT_EXIT(); + parent_exit(ppid); } ksft_print_msg("Benchmark PID: %d\n", bm_pid); @@ -877,7 +884,7 @@ int resctrl_val(const struct resctrl_test *test, if (!strncmp(resctrl_val, MBM_STR, sizeof(MBM_STR)) || !strncmp(resctrl_val, MBA_STR, sizeof(MBA_STR))) { - ret = measure_vals(uparams, param); + ret = measure_vals(uparams, param, bm_pid); if (ret) break; } else if (!strncmp(resctrl_val, CMT_STR, sizeof(CMT_STR))) { -- 2.39.2