From patchwork Mon Oct 2 09:48:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 147292 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2a8e:b0:403:3b70:6f57 with SMTP id in14csp1419939vqb; Mon, 2 Oct 2023 06:17:21 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG9bjVZ1H3iDjmGCyNyow8RdmfxF3S8PEPds9OKJ+b1tYZrMdESgzCtcjJ2eauOneFF+qss X-Received: by 2002:a9d:67cb:0:b0:6c4:9ca1:f13a with SMTP id c11-20020a9d67cb000000b006c49ca1f13amr12029772otn.35.1696252640793; Mon, 02 Oct 2023 06:17:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696252640; cv=none; d=google.com; s=arc-20160816; b=QgeMN240sYIVQmZU3ZM+nK30evnlLPhRGANvHif5KVsdDCwoDcxZWZLg52/ZXPaqqb lcbndETCvU7m33Rs+lfG/ESVt79CgoBqzcqregN+meRNqo8rX9E6j5TDsIVfHLEhMocG PzbXZo/DlleGm40DFPh9Feo010ZsD4cPU2sseZkkfTU9gEuscNiQ6DZUioLzabHblJbo cVIqxyfT9ZAHvh4me4GsFgfpgjFmKgPd9fsUiw6Yw27834JKU+Wvcs4XoriNRNGvUU3b /bqotsOXoOaXRkxOOeIzaQWaLI8p/rnmT3ktRvvWI744GkPsf3yav8MkXtSuTLbKngnn PUcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=0grpHKBKriuHPUQJKdYHq+f4X7zkqio3MOAI4rFyzJc=; fh=0zBAjxShfumhVJgCQ7/PrZqZq2D8mhtAJK1GC38L6Jc=; b=VUYg/dxeQDjiPTQb9I5HGpJQy12V/Rs5Jr06zIS/Pl81Sl6Z3JugCTnoW2PLDNS7Yn QI9DXGcNEkk4VN7eaWTd/GGP+shaPdqnx6RbC2eXj73Ae73PMtaHXigX1c70ftfFKe+R 2AsT6fNmN92DHJlIMF/tv0inBYnH7p3Inv/RIJotYx3jlZxjiHsKtCBCNjeeoVjRaBiW grTWgIY/iOUlYcQlKhfwKQ7/yyZU5BC5a0mtFuIz5MCh9+JMJhtcUuBrGTvmZ2xQmbId Y/zGOjdXu0jFn6liGjsBDAPs31eP5qv6w0vEWBYMDZDIFypY60AABJdoJhiwe/y8pvLI Po5g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=GM98pN79; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id r5-20020a63fc45000000b0057744d09d1bsi27288707pgk.251.2023.10.02.06.17.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 06:17:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=GM98pN79; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 7FEF180417FB; Mon, 2 Oct 2023 02:49:04 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236208AbjJBJsk (ORCPT + 16 others); Mon, 2 Oct 2023 05:48:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236246AbjJBJsi (ORCPT ); Mon, 2 Oct 2023 05:48:38 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E3AA5BD; Mon, 2 Oct 2023 02:48:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696240114; x=1727776114; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8pmtfWXMI20eJN8ahNBeDBXwc3u2yQV2h67SqlOWlpQ=; b=GM98pN79RLVzYkQeYQe5HRrIA0yGrz13YMwe1IX6ODD0xCuyfrOb1MBs Ow/pOfF6ObmgzF2phOpifosbbKgpg2uVuQQgqyhg+m+oH1f3pnABsil10 CSr0A12ZGeBFoO/P7Bv3bvGTb94vjLNU+jvQZCPvjqQjwOBGxlTHiu1Xg IpOWdqQ0Q6oYA0KNPOnhk3fMwO8Po1wT8v05vgowvUR0dO4bMiM/z4RaA /Nop38L5A0QehXrYf0ft5NN/jGhuZWOeyKNhQR0IXLnlCMPF/oFMxTccc fVG/urisyefso4Vo1/yRkzZ1SgNJEbzrlSvL8Vpf3gP3XxJY0lRTOdsio Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="382517286" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="382517286" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:48:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="1081593242" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="1081593242" Received: from aanantha-mobl.gar.corp.intel.com (HELO localhost) ([10.251.221.191]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:48:30 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-kselftest@vger.kernel.org, Shuah Khan , Reinette Chatre , =?utf-8?q?Maciej_Wiecz=C3=B3r-?= =?utf-8?q?Retman?= , Shaopeng Tan Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org, =?utf-8?q?Ilpo_J?= =?utf-8?q?=C3=A4rvinen?= Subject: [PATCH v4 1/7] selftests/resctrl: Fix uninitialized .sa_flags Date: Mon, 2 Oct 2023 12:48:07 +0300 Message-Id: <20231002094813.6633-2-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> References: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Mon, 02 Oct 2023 02:49:04 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778649808613292891 X-GMAIL-MSGID: 1778649808613292891 signal_handler_unregister() calls sigaction() with uninitializing sa_flags in the struct sigaction. Make sure sa_flags is always initialized in signal_handler_unregister() by initializing the struct sigaction when declaring it. Also add the initialization to signal_handler_register() even if there are no know bugs in there because correctness is then obvious from the code itself. Fixes: 73c55fa5ab55 ("selftests/resctrl: Commonize the signal handler register/unregister for all tests") Suggested-by: Reinette Chatre Signed-off-by: Ilpo Järvinen Cc: Reviewed-by: Reinette Chatre --- tools/testing/selftests/resctrl/resctrl_val.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c index 51963a6f2186..01bbe11a8983 100644 --- a/tools/testing/selftests/resctrl/resctrl_val.c +++ b/tools/testing/selftests/resctrl/resctrl_val.c @@ -482,7 +482,7 @@ void ctrlc_handler(int signum, siginfo_t *info, void *ptr) */ int signal_handler_register(void) { - struct sigaction sigact; + struct sigaction sigact = {}; int ret = 0; sigact.sa_sigaction = ctrlc_handler; @@ -504,7 +504,7 @@ int signal_handler_register(void) */ void signal_handler_unregister(void) { - struct sigaction sigact; + struct sigaction sigact = {}; sigact.sa_handler = SIG_DFL; sigemptyset(&sigact.sa_mask); From patchwork Mon Oct 2 09:48:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 147226 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2a8e:b0:403:3b70:6f57 with SMTP id in14csp1310386vqb; Mon, 2 Oct 2023 02:51:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHkwDEddLJVGJXxct9WzFiy/EeoPNecqoUabRLbPJc7Y0gD0l6FVRWyF6yCUaKzZlNLUDrR X-Received: by 2002:a17:903:24d:b0:1c3:4b24:d89d with SMTP id j13-20020a170903024d00b001c34b24d89dmr15050946plh.40.1696240281604; Mon, 02 Oct 2023 02:51:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696240281; cv=none; d=google.com; s=arc-20160816; b=hlU4h5atuxS9OQGKTCrsFsI4Au0CRGW11gk5Np/4fD7BqNYTOi/+G6Ddx8ok/W3hA7 J50BcsVfcrISvw281neAxyniT1+UAMWhj1Kp7LJbx5XbZOjpC3YD7sUIgoIIBPDBEWl6 qYgmDzAbz47nUwb9FwZ5nnQQAcBE3vD/rZe82CF+abNv4E0Z1OxFda0SMP6XqAz0DRla U2opeLRP11Z5Li0GxWRpzveKizpLua1Gcj3Hkf8Km74RHF8aqQ/1za+meCMUGdabazat R7HCBr/6zABH910c9PIY7DAEBDedy8HSkv1kQn4uhOIp9FjwgtvcGV6u3S9s+SYFOeO7 +Idg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=oYs3sB0pusok8n9Xn2NcVLNnHl5XzKRyTwDsARuYSoo=; fh=0zBAjxShfumhVJgCQ7/PrZqZq2D8mhtAJK1GC38L6Jc=; b=CTVcnK5efIxPyJcpe7INL1OubDQpuN0jE2vm7z6E/kEmwL2GN4DQpcSvWLTcB8SaBC YaB0L1Trl7F/TZL2OcH5TEKTPUaIzXxa3OW0w3nsu2DJvrKaqOGyFguL3vsw5J9okBnt xHxkn7X+LI7YAkXuMSbBpSx9UviVrqCC/TOjQRXDAU9y1++5eUZXYgeqQijmZBbqJDli 6XQYuy1Le9XZW/7mzCroNMwK0pdOYQwIcoTrhZSulhRg4L0519c6psUDw2agPYULQhkd hl8zdHtBs+64gcBXYVh2b2CtGb2FGdEhU8XBw1ggg8XTih9GX7e7ZrEuN+TsykUFcSAa p9HQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=C38ZoD63; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id y6-20020a17090322c600b001c35cccca33si28045132plg.448.2023.10.02.02.51.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 02:51:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=C38ZoD63; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id E522280B79F7; Mon, 2 Oct 2023 02:49:08 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236258AbjJBJsv (ORCPT + 16 others); Mon, 2 Oct 2023 05:48:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38096 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236234AbjJBJss (ORCPT ); Mon, 2 Oct 2023 05:48:48 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 72022E3; Mon, 2 Oct 2023 02:48:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696240125; x=1727776125; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=V6NGUFOV4/L30qAqYGMzkQyhi7PS4nNcDwt0pLhNUu4=; b=C38ZoD63PuAPSykCbApLtdtziGUcm2PfHMge1LTvGx/iSij7E2EZ+y0p 94sGrUAq3D7rrv+UDt1jq5tfTfSvQdnfWBLa0E5cgrfFddhrNZqaD5FCj 9ZI9nUR93jzNgZgOp73cMY+YkNpuMJnW9svNlTOX5HOOSip5M40Z6Wbp2 c1V4ji2+DTtH79COLy/aIObeGeXoUdRKiAIHJXgO9bT6bzTzh26mFoDIk jBqNbm+h5ZB5+kI14IJ9V+QA6dUi+2SNlH9Buzo2GxzSnzvnvWqj8UXHR RnvGeDw/aXm6EiZ5sx6jOL9MqhiRBdNML21I1tHzM6b/o1ulPVcBdwf2k Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="413523721" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="413523721" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:48:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="874301922" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="874301922" Received: from aanantha-mobl.gar.corp.intel.com (HELO localhost) ([10.251.221.191]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:48:41 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-kselftest@vger.kernel.org, Shuah Khan , Reinette Chatre , =?utf-8?q?Maciej_Wiecz=C3=B3r-?= =?utf-8?q?Retman?= , Shaopeng Tan Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org, =?utf-8?q?Ilpo_J?= =?utf-8?q?=C3=A4rvinen?= Subject: [PATCH v4 2/7] selftests/resctrl: Extend signal handler coverage to unmount on receiving signal Date: Mon, 2 Oct 2023 12:48:08 +0300 Message-Id: <20231002094813.6633-3-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> References: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Mon, 02 Oct 2023 02:49:09 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778636848998160024 X-GMAIL-MSGID: 1778636848998160024 Unmounting resctrl FS has been moved into the per test functions in resctrl_tests.c by commit caddc0fbe495 ("selftests/resctrl: Move resctrl FS mount/umount to higher level"). In case a signal (SIGINT, SIGTERM, or SIGHUP) is received, the running selftest is aborted by ctrlc_handler() which then unmounts resctrl fs before exiting. The current section between signal_handler_register() and signal_handler_unregister(), however, does not cover the entire duration when resctrl FS is mounted. Move signal_handler_register() and signal_handler_unregister() calls from per test files into resctrl_tests.c to properly unmount resctrl fs. In order to not add signal_handler_register()/unregister() n times, create helpers test_prepare() and test_cleanup(). Do not call ksft_exit_fail_msg() in test_prepare() but only in the per test function to keep the control flow cleaner without adding calls to exit() deep into the call chain. Adjust child process kill() call in ctrlc_handler() to only be invoked if the child was already forked. Fixes: caddc0fbe495 ("selftests/resctrl: Move resctrl FS mount/umount to higher level") Signed-off-by: Ilpo Järvinen Tested-by: Shaopeng Tan Reviewed-by: Shaopeng Tan Reviewed-by: Reinette Chatre Cc: --- tools/testing/selftests/resctrl/cat_test.c | 8 --- .../testing/selftests/resctrl/resctrl_tests.c | 69 ++++++++++++------- tools/testing/selftests/resctrl/resctrl_val.c | 22 +++--- 3 files changed, 55 insertions(+), 44 deletions(-) diff --git a/tools/testing/selftests/resctrl/cat_test.c b/tools/testing/selftests/resctrl/cat_test.c index 97b87285ab2a..224ba8544d8a 100644 --- a/tools/testing/selftests/resctrl/cat_test.c +++ b/tools/testing/selftests/resctrl/cat_test.c @@ -167,12 +167,6 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type) strcpy(param.filename, RESULT_FILE_NAME1); param.num_of_runs = 0; param.cpu_no = sibling_cpu_no; - } else { - ret = signal_handler_register(); - if (ret) { - kill(bm_pid, SIGKILL); - goto out; - } } remove(param.filename); @@ -209,10 +203,8 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type) } close(pipefd[0]); kill(bm_pid, SIGKILL); - signal_handler_unregister(); } -out: cat_test_cleanup(); return ret; diff --git a/tools/testing/selftests/resctrl/resctrl_tests.c b/tools/testing/selftests/resctrl/resctrl_tests.c index 823672a20a43..495aeee5b734 100644 --- a/tools/testing/selftests/resctrl/resctrl_tests.c +++ b/tools/testing/selftests/resctrl/resctrl_tests.c @@ -67,21 +67,45 @@ void tests_cleanup(void) cat_test_cleanup(); } -static void run_mbm_test(const char * const *benchmark_cmd, int cpu_no) +static int test_prepare(void) { int res; - ksft_print_msg("Starting MBM BW change ...\n"); + res = signal_handler_register(); + if (res) { + ksft_print_msg("Failed to register signal handler\n"); + return res; + } res = mount_resctrlfs(); if (res) { - ksft_exit_fail_msg("Failed to mount resctrl FS\n"); + signal_handler_unregister(); + ksft_print_msg("Failed to mount resctrl FS\n"); + return res; + } + return 0; +} + +static void test_cleanup(void) +{ + umount_resctrlfs(); + signal_handler_unregister(); +} + +static void run_mbm_test(const char * const *benchmark_cmd, int cpu_no) +{ + int res; + + ksft_print_msg("Starting MBM BW change ...\n"); + + if (test_prepare()) { + ksft_exit_fail_msg("Abnormal failure when preparing for the test\n"); return; } if (!validate_resctrl_feature_request(MBM_STR) || (get_vendor() != ARCH_INTEL)) { ksft_test_result_skip("Hardware does not support MBM or MBM is disabled\n"); - goto umount; + goto cleanup; } res = mbm_bw_change(cpu_no, benchmark_cmd); @@ -89,8 +113,8 @@ static void run_mbm_test(const char * const *benchmark_cmd, int cpu_no) if ((get_vendor() == ARCH_INTEL) && res) ksft_print_msg("Intel MBM may be inaccurate when Sub-NUMA Clustering is enabled. Check BIOS configuration.\n"); -umount: - umount_resctrlfs(); +cleanup: + test_cleanup(); } static void run_mba_test(const char * const *benchmark_cmd, int cpu_no) @@ -99,22 +123,21 @@ static void run_mba_test(const char * const *benchmark_cmd, int cpu_no) ksft_print_msg("Starting MBA Schemata change ...\n"); - res = mount_resctrlfs(); - if (res) { - ksft_exit_fail_msg("Failed to mount resctrl FS\n"); + if (test_prepare()) { + ksft_exit_fail_msg("Abnormal failure when preparing for the test\n"); return; } if (!validate_resctrl_feature_request(MBA_STR) || (get_vendor() != ARCH_INTEL)) { ksft_test_result_skip("Hardware does not support MBA or MBA is disabled\n"); - goto umount; + goto cleanup; } res = mba_schemata_change(cpu_no, benchmark_cmd); ksft_test_result(!res, "MBA: schemata change\n"); -umount: - umount_resctrlfs(); +cleanup: + test_cleanup(); } static void run_cmt_test(const char * const *benchmark_cmd, int cpu_no) @@ -123,15 +146,14 @@ static void run_cmt_test(const char * const *benchmark_cmd, int cpu_no) ksft_print_msg("Starting CMT test ...\n"); - res = mount_resctrlfs(); - if (res) { - ksft_exit_fail_msg("Failed to mount resctrl FS\n"); + if (test_prepare()) { + ksft_exit_fail_msg("Abnormal failure when preparing for the test\n"); return; } if (!validate_resctrl_feature_request(CMT_STR)) { ksft_test_result_skip("Hardware does not support CMT or CMT is disabled\n"); - goto umount; + goto cleanup; } res = cmt_resctrl_val(cpu_no, 5, benchmark_cmd); @@ -139,8 +161,8 @@ static void run_cmt_test(const char * const *benchmark_cmd, int cpu_no) if ((get_vendor() == ARCH_INTEL) && res) ksft_print_msg("Intel CMT may be inaccurate when Sub-NUMA Clustering is enabled. Check BIOS configuration.\n"); -umount: - umount_resctrlfs(); +cleanup: + test_cleanup(); } static void run_cat_test(int cpu_no, int no_of_bits) @@ -149,22 +171,21 @@ static void run_cat_test(int cpu_no, int no_of_bits) ksft_print_msg("Starting CAT test ...\n"); - res = mount_resctrlfs(); - if (res) { - ksft_exit_fail_msg("Failed to mount resctrl FS\n"); + if (test_prepare()) { + ksft_exit_fail_msg("Abnormal failure when preparing for the test\n"); return; } if (!validate_resctrl_feature_request(CAT_STR)) { ksft_test_result_skip("Hardware does not support CAT or CAT is disabled\n"); - goto umount; + goto cleanup; } res = cat_perf_miss_val(cpu_no, no_of_bits, "L3"); ksft_test_result(!res, "CAT: test\n"); -umount: - umount_resctrlfs(); +cleanup: + test_cleanup(); } int main(int argc, char **argv) diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c index 01bbe11a8983..b8ca6fa40b3b 100644 --- a/tools/testing/selftests/resctrl/resctrl_val.c +++ b/tools/testing/selftests/resctrl/resctrl_val.c @@ -468,7 +468,9 @@ pid_t bm_pid, ppid; void ctrlc_handler(int signum, siginfo_t *info, void *ptr) { - kill(bm_pid, SIGKILL); + /* Only kill child after bm_pid is set after fork() */ + if (bm_pid) + kill(bm_pid, SIGKILL); umount_resctrlfs(); tests_cleanup(); ksft_print_msg("Ending\n\n"); @@ -485,6 +487,8 @@ int signal_handler_register(void) struct sigaction sigact = {}; int ret = 0; + bm_pid = 0; + sigact.sa_sigaction = ctrlc_handler; sigemptyset(&sigact.sa_mask); sigact.sa_flags = SA_SIGINFO; @@ -706,10 +710,6 @@ int resctrl_val(const char * const *benchmark_cmd, struct resctrl_val_param *par ksft_print_msg("Benchmark PID: %d\n", bm_pid); - ret = signal_handler_register(); - if (ret) - goto out; - /* * The cast removes constness but nothing mutates benchmark_cmd within * the context of this process. At the receiving process, it becomes @@ -721,19 +721,19 @@ int resctrl_val(const char * const *benchmark_cmd, struct resctrl_val_param *par /* Taskset benchmark to specified cpu */ ret = taskset_benchmark(bm_pid, param->cpu_no); if (ret) - goto unregister; + goto out; /* Write benchmark to specified control&monitoring grp in resctrl FS */ ret = write_bm_pid_to_resctrl(bm_pid, param->ctrlgrp, param->mongrp, resctrl_val); if (ret) - goto unregister; + goto out; if (!strncmp(resctrl_val, MBM_STR, sizeof(MBM_STR)) || !strncmp(resctrl_val, MBA_STR, sizeof(MBA_STR))) { ret = initialize_mem_bw_imc(); if (ret) - goto unregister; + goto out; initialize_mem_bw_resctrl(param->ctrlgrp, param->mongrp, param->cpu_no, resctrl_val); @@ -748,7 +748,7 @@ int resctrl_val(const char * const *benchmark_cmd, struct resctrl_val_param *par sizeof(pipe_message)) { perror("# failed reading message from child process"); close(pipefd[0]); - goto unregister; + goto out; } } close(pipefd[0]); @@ -757,7 +757,7 @@ int resctrl_val(const char * const *benchmark_cmd, struct resctrl_val_param *par if (sigqueue(bm_pid, SIGUSR1, value) == -1) { perror("# sigqueue SIGUSR1 to child"); ret = errno; - goto unregister; + goto out; } /* Give benchmark enough time to fully run */ @@ -786,8 +786,6 @@ int resctrl_val(const char * const *benchmark_cmd, struct resctrl_val_param *par } } -unregister: - signal_handler_unregister(); out: kill(bm_pid, SIGKILL); From patchwork Mon Oct 2 09:48:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 147229 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2a8e:b0:403:3b70:6f57 with SMTP id in14csp1320485vqb; Mon, 2 Oct 2023 03:13:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHKfAQoun+oqCqHtrqMayrcSCyEeQqLIEKJknJ6b7sUGty9JkuKlyiU14L77pTUmVbFVp0S X-Received: by 2002:a05:6870:560e:b0:1d6:790f:25a0 with SMTP id m14-20020a056870560e00b001d6790f25a0mr14399563oao.4.1696241603274; Mon, 02 Oct 2023 03:13:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696241603; cv=none; d=google.com; s=arc-20160816; b=MLN0la4uE1Vw2DkYZ8B7mMbCOjtKf+wT/fM068opwqaXzJXFvQc8aH31BmrESZzGNJ vJbTCNBfTxRhrBlAalRvo4ifCpvAibtfUdNpaOP7UDZpgUvpi10qE2FEc4omtcvB90U8 hNWGhwWh8UUATna9j8F39vKFwpMjUC2srG9J21zsyg3tDs5ve0NNYQKA8TmTcOOJc3G3 wo7hykm7Fphbw2TJiADIeUNeyCi71uwn2rwSt7wN593DhtqHp5xckc7xWLnGzJl4MQfM xtGzbXybOTDZObXcnj+XOan0sA5sqygMCapVXveIxkiy3+k6zi7/7rCw1eSGpVF8hDSE liOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=r+zdzvBg4rjAKR+9Y2qsnR5AAzcl6NrQpn5fsGhTiOA=; fh=0zBAjxShfumhVJgCQ7/PrZqZq2D8mhtAJK1GC38L6Jc=; b=LsW0z6ZNq/f290uhw9otIi3rhCWuZwoRuWxH2mcIHl0vJOduHjyDeM0hC0fZ4lBeK/ kK63miohfOmL/eYVmv9L19qZK24VVkcS6ozsANvN/kN8AH27bqHnNmBOM9ZH5QERV5+L oSvjrH90UuNVhcdiZicN6Ko4eOgqv5hxLCVqMzmRkLfvZBm1NEO2u3OIiQJMuFwNuSTU pJtrUjY2n3eNL4path8raYLMODCN00lq4v262f2w/KBjFVVVoShKDiB6WU1FJTjWuPTK R+O3rB7PVAmOcU5MlGceNWTEbArryXUFPDkU6kHbL85jib4wBqSA+E+3R5sdWtsklGo3 KxWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=WWRJc0Jl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id p19-20020a639513000000b00573f786103dsi24587936pgd.754.2023.10.02.03.13.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 03:13:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=WWRJc0Jl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id B7B408091C5A; Mon, 2 Oct 2023 02:49:22 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236265AbjJBJtF (ORCPT + 16 others); Mon, 2 Oct 2023 05:49:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42612 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236253AbjJBJtD (ORCPT ); Mon, 2 Oct 2023 05:49:03 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B2394C6; Mon, 2 Oct 2023 02:48:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696240134; x=1727776134; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ou58BhmUDES8CEg+FgG6IR/42js/OkGnyYaFV5Nw5Zo=; b=WWRJc0Jlj358T6MEDfzSdSIWRIAyXfBANa4vgIcuAY8aVcGTp5zsL2Jv WInJHuA7TqHnbTxEjIki/SdaJ/5b/OIlwxzKxRSYt2dCrz/Fzfg7fj6vV yfUcas5gGpcUYt8ojcMGV5IeXfmx7wXFz0zyEfUe/B/cqhhy+D6MCSiKd FUVHcKqRPuVHOJZykHCAYMuWTgAguwviPTKAObGBSoxdUnn3/nYbtCOd4 VY5UGS+TRm4IhQv+XEttlhlw/QTHUkeL6397hNC05vhN0TL/kHvpcvJyy dgwEgQpvA1UyxFqtvieen3xIlSOUwwG1rB+Wv/I17HrTez/gi0Ibo7rOQ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="381495396" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="381495396" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:48:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="820840345" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="820840345" Received: from aanantha-mobl.gar.corp.intel.com (HELO localhost) ([10.251.221.191]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:48:50 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-kselftest@vger.kernel.org, Shuah Khan , Reinette Chatre , =?utf-8?q?Maciej_Wiecz=C3=B3r-?= =?utf-8?q?Retman?= , Shaopeng Tan Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org, =?utf-8?q?Ilpo_J?= =?utf-8?q?=C3=A4rvinen?= Subject: [PATCH v4 3/7] selftests/resctrl: Remove duplicate feature check from CMT test Date: Mon, 2 Oct 2023 12:48:09 +0300 Message-Id: <20231002094813.6633-4-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> References: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Mon, 02 Oct 2023 02:49:22 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778638235663213429 X-GMAIL-MSGID: 1778638235663213429 The test runner run_cmt_test() in resctrl_tests.c checks for CMT feature and does not run cmt_resctrl_val() if CMT is not supported. Then cmt_resctrl_val() also check is CMT is supported. Remove the duplicated feature check for CMT from cmt_resctrl_val(). Signed-off-by: Ilpo Järvinen Tested-by: Shaopeng Tan Reviewed-by: Reinette Chatre Reviewed-by: Shaopeng Tan Cc: --- tools/testing/selftests/resctrl/cmt_test.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/tools/testing/selftests/resctrl/cmt_test.c b/tools/testing/selftests/resctrl/cmt_test.c index cf2f5e92dea6..50bdbce9fba9 100644 --- a/tools/testing/selftests/resctrl/cmt_test.c +++ b/tools/testing/selftests/resctrl/cmt_test.c @@ -80,9 +80,6 @@ int cmt_resctrl_val(int cpu_no, int n, const char * const *benchmark_cmd) size_t span; int ret, i; - if (!validate_resctrl_feature_request(CMT_STR)) - return -1; - ret = get_cbm_mask("L3", cbm_mask); if (ret) return ret; From patchwork Mon Oct 2 09:48:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 147227 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2a8e:b0:403:3b70:6f57 with SMTP id in14csp1310536vqb; Mon, 2 Oct 2023 02:51:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEKgNmeaMpjNzcHabrsRWwwwdLqK6axK5XbhE4r43tzw8o8R4Ovl/yAM0KD3M1vBDYIU8xr X-Received: by 2002:a05:6870:40c8:b0:1be:c87d:c670 with SMTP id l8-20020a05687040c800b001bec87dc670mr15258467oal.47.1696240304798; Mon, 02 Oct 2023 02:51:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696240304; cv=none; d=google.com; s=arc-20160816; b=up9VwXL6AlBHciYyQKCpQsWE8OtgKYiCK2yQtaWlYViRyFEpGKzCO8/lCDG2pUfTl9 AbGa4vY3seW1R8+ub2nINwkxqyzdDxYQ9v+ExI0j+Qv1/OeO0cqiseO3MuQSqZN2LJn0 nba8f/1SvUFUlVL76lIKfu9ztgBUw1jMgki6PL3gfSgLpVplkaotJURBK+fu0C8TOckl hp4YMeZ7uRnXsZesUuK1g1/LE36bfT4A8urbxD3PNhOYoymrsKRwaBGFk+FpOTD5StMq 0k6MlIESD/mcYAPheRAtGGJXwO+RPdwFugIbaCZ8T0XzNtF7xIqB9wg1SJDjURd1Fp+5 vsqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=GnO/lvc/kh/QYffXPKp9m3qqkSWAxHDrd542m6ZW9x0=; fh=0zBAjxShfumhVJgCQ7/PrZqZq2D8mhtAJK1GC38L6Jc=; b=hwUCaEQyTw41P8IblPyAMy6z1XAk9m8bjye60s/jBCRBMNsMfm4A/KwAZ0swuUeD8L QH9TSSALyeqlx810ePN0b71Yw7lb6bXNlASP4VG5EWMamEhDQKN/wyAyqUP2ZjFuuzSr Tw7B0Mxb/mZ02cRCFopQM86AqN/DPnRb8dnvZAf/5LAySggl9tQ/Ivt+2ezyyz9eoifs SmA5YI1Pk5lKW5JDKsmMZwe0f3yYUjJiTrrsBYerbbGinL+mmHQZYsuzyytKAmJgNMxQ F9Frhq2qTje0ffK0u7i+pK91c/qS2sw+ExAINzifQwYJLggHFR0T4mfrzDp80RXnAI4I BqpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="dvpec/0H"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id v3-20020a655c43000000b00565e386ff44si27396500pgr.702.2023.10.02.02.51.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 02:51:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="dvpec/0H"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 4AA8F80B79F8; Mon, 2 Oct 2023 02:49:22 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236220AbjJBJtK (ORCPT + 16 others); Mon, 2 Oct 2023 05:49:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42808 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236208AbjJBJtG (ORCPT ); Mon, 2 Oct 2023 05:49:06 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB0808E; Mon, 2 Oct 2023 02:49:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696240143; x=1727776143; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=h2w4jLDwnHjcUapV1jkntv5pgIa6zmfErB3TZ/IGgk8=; b=dvpec/0Hl2zo6uRGNXfo2EJOZpQCk1NpFhuG/O+7kFxR+p3D+bgPI/G2 yyLRU63/rmyjEwlOWmO3A7pTYMQScDllXrb3c8ikYqlPl8fFyToyqn27n 9LBibQQ2l7zu+jaAKMPJRhDJZ4ytK+wjsBB/CmYWqUUitOjDyfohx+aqI e1klEH1Xg3LueA29bm19oWYVU0rMne3K9iGUxCUnVdonUutgY+RPrQiz9 2Q5Ug6KgRNpoaZ5XGq7+xLHU0cOemf16mNUEPpQs+RfB/UJh9X6MyT0KM Vq2jlDyo58c6A9zpRg4PefyJH6QontK1yMZoP06oAlOYHCN91Fcc1HgOB g==; X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="381495416" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="381495416" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:49:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="820840348" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="820840348" Received: from aanantha-mobl.gar.corp.intel.com (HELO localhost) ([10.251.221.191]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:48:59 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-kselftest@vger.kernel.org, Shuah Khan , Reinette Chatre , =?utf-8?q?Maciej_Wiecz=C3=B3r-?= =?utf-8?q?Retman?= , Shaopeng Tan Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org, =?utf-8?q?Ilpo_J?= =?utf-8?q?=C3=A4rvinen?= Subject: [PATCH v4 4/7] selftests/resctrl: Move _GNU_SOURCE define into Makefile Date: Mon, 2 Oct 2023 12:48:10 +0300 Message-Id: <20231002094813.6633-5-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> References: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Mon, 02 Oct 2023 02:49:22 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778636873762835164 X-GMAIL-MSGID: 1778636873762835164 _GNU_SOURCE is defined in resctrl.h. Defining _GNU_SOURCE has a large impact on what gets defined when including headers either before or after it. This can result in compile failures if .c file decides to include a standard header file before resctrl.h. It is safer to define _GNU_SOURCE in Makefile so it is always defined regardless of in which order includes are done. Signed-off-by: Ilpo Järvinen Tested-by: Shaopeng Tan Reviewed-by: Reinette Chatre Reviewed-by: Shaopeng Tan Cc: --- tools/testing/selftests/resctrl/Makefile | 2 +- tools/testing/selftests/resctrl/resctrl.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/testing/selftests/resctrl/Makefile b/tools/testing/selftests/resctrl/Makefile index 5073dbc96125..2deac2031de9 100644 --- a/tools/testing/selftests/resctrl/Makefile +++ b/tools/testing/selftests/resctrl/Makefile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 -CFLAGS = -g -Wall -O2 -D_FORTIFY_SOURCE=2 +CFLAGS = -g -Wall -O2 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE CFLAGS += $(KHDR_INCLUDES) TEST_GEN_PROGS := resctrl_tests diff --git a/tools/testing/selftests/resctrl/resctrl.h b/tools/testing/selftests/resctrl/resctrl.h index dd07463cdf48..d9b5df95849d 100644 --- a/tools/testing/selftests/resctrl/resctrl.h +++ b/tools/testing/selftests/resctrl/resctrl.h @@ -1,5 +1,4 @@ /* SPDX-License-Identifier: GPL-2.0 */ -#define _GNU_SOURCE #ifndef RESCTRL_H #define RESCTRL_H #include From patchwork Mon Oct 2 09:48:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 147318 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2a8e:b0:403:3b70:6f57 with SMTP id in14csp1466604vqb; Mon, 2 Oct 2023 07:30:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFn2Zz7H+HZLzL4ZhTNt8H+3nKPw8gQH4o4tSmTcHPMCPIiFU2HE2grESs9J+ACDGi0Ms7Z X-Received: by 2002:a05:6a00:2d87:b0:68f:ca4a:efd with SMTP id fb7-20020a056a002d8700b0068fca4a0efdmr11009524pfb.9.1696257005101; Mon, 02 Oct 2023 07:30:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696257005; cv=none; d=google.com; s=arc-20160816; b=bjPVGSiPF9MqbuiMLwb1/e67ro4h/iz8qXr/Z6OERBJn6rUOZkrEcecX1e6WZ+Pk9J spTr7BQo8JucKK4/v4VvXUNeaI+59vuOBUcNEzw1rPdZoisi/7WkFLj+lG8dzmxdbtdV MNe7hN9zOxrrIcgRFV6sA+sqXfQoYzGCAIiAaWKg+3j5GPu8zji5KC5MbC85aemXE7F6 2W90haIPJhV0hTs0qsLAUM0aGjs9ear2BdR2blk6NfpfsabIWNn6YG9YjehFn1iCUXyD 00d5KUWxDmLdf90HPPXxM6Np/XmlXLHZwJmEjkfR8T7cYUqS36XKSdYVhTLYTpvZGATn 5FkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=uTzbsA3XSL60PTtO3v2gyocShWCdtbbO2YwXTRP3qJI=; fh=0zBAjxShfumhVJgCQ7/PrZqZq2D8mhtAJK1GC38L6Jc=; b=0VOGrUjss7GB22NUEak/o16ikkoq067zTTE04hU+XWfN6LWs+vp13/D8q5KVYWEJsy W1Jjj+vqhbNrSHMB0AWvGLjR6sZaxqpQANGUE0Cw+sliHSfOXns/1cgRiCfeo5BU8vev 3DyaGhvfFBrbJiCffcXiZ3Nooj++KFhIWuRaqhv3cRovYYKZOq46m3Bm8Mrl/PuS5IA3 Vm04YOPqq1/oq6k7IR15v+Xk5VvnkfX8BmHzIhV4fl0AsTeOMdTiVYJyZow+dz1lN5Sx qRGWyMoAt6Yc9SPJ1aIox0Ov3303g462FoElIoHvYpqM84r72R2DDRGMa1RfS35Q/aFI eUxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=gugDNUAX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id n40-20020a056a000d6800b0068a590d803csi25243774pfv.361.2023.10.02.07.30.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 07:30:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=gugDNUAX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 312548040386; Mon, 2 Oct 2023 02:49:48 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236255AbjJBJt1 (ORCPT + 16 others); Mon, 2 Oct 2023 05:49:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55766 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236112AbjJBJt0 (ORCPT ); Mon, 2 Oct 2023 05:49:26 -0400 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 10D8591; Mon, 2 Oct 2023 02:49:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696240163; x=1727776163; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=gtwyZgytTIaaChtlJoTwXsMFAKDmK3uaauBiKS3o2Es=; b=gugDNUAXOEb2meHw1eB3tCY5DIHVVxgFuUGF8tRBfWqfuHAJqtNod31w nb5bhg+DUQJmrSb2b7vxhPIhgMImo2d49LOHpLGm/N5uqS15UBSEMT5n7 NZ7u+Xh0J8rGwIKm+DjcSKFhWm0tPopBciKea+GkOKR54PlHep7LADAwn c/mZcQb7+kQvLl+bZCK7GcF951r+R7Nht8A6UwL1gE6Eyql9t6sdOJdnb h32UftlYLpcsFvELYeISB1tpxeK97qau90ECYN3V3ZnSfnH5Nadk5i8Vv bV6wpUr33GBCdbVa71iywqMfQ5T9uIreey90BqhlIpOYZoGH7Bv2o7ODw A==; X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="372960649" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="372960649" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:49:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="754005522" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="754005522" Received: from aanantha-mobl.gar.corp.intel.com (HELO localhost) ([10.251.221.191]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:49:18 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-kselftest@vger.kernel.org, Shuah Khan , Reinette Chatre , =?utf-8?q?Maciej_Wiecz=C3=B3r-?= =?utf-8?q?Retman?= , Shaopeng Tan Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org, =?utf-8?q?Ilpo_J?= =?utf-8?q?=C3=A4rvinen?= Subject: [PATCH v4 5/7] selftests/resctrl: Refactor feature check to use resource and feature name Date: Mon, 2 Oct 2023 12:48:11 +0300 Message-Id: <20231002094813.6633-6-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> References: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Mon, 02 Oct 2023 02:49:48 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778654385783470088 X-GMAIL-MSGID: 1778654385783470088 Feature check in validate_resctrl_feature_request() takes in the test name string and maps that to what to check per test. Pass resource and feature names to validate_resctrl_feature_request() directly rather than deriving them from the test name inside the function which makes the feature check easier to extend for new test cases. Use !! in the return statement to make the boolean conversion more obvious even if it is not strictly necessary from correctness point of view (to avoid it looking like the function is returning a freed pointer). Signed-off-by: Ilpo Järvinen Tested-by: Shaopeng Tan Reviewed-by: Reinette Chatre Reviewed-by: Shaopeng Tan Cc: # selftests/resctrl: Remove duplicate feature check from CMT test Cc: # selftests/resctrl: Move _GNU_SOURCE define into Makefile --- tools/testing/selftests/resctrl/resctrl.h | 6 +- .../testing/selftests/resctrl/resctrl_tests.c | 10 +-- tools/testing/selftests/resctrl/resctrlfs.c | 69 ++++++++----------- 3 files changed, 34 insertions(+), 51 deletions(-) diff --git a/tools/testing/selftests/resctrl/resctrl.h b/tools/testing/selftests/resctrl/resctrl.h index d9b5df95849d..8578a8b4e145 100644 --- a/tools/testing/selftests/resctrl/resctrl.h +++ b/tools/testing/selftests/resctrl/resctrl.h @@ -27,10 +27,6 @@ #define RESCTRL_PATH "/sys/fs/resctrl" #define PHYS_ID_PATH "/sys/devices/system/cpu/cpu" #define INFO_PATH "/sys/fs/resctrl/info" -#define L3_PATH "/sys/fs/resctrl/info/L3" -#define MB_PATH "/sys/fs/resctrl/info/MB" -#define L3_MON_PATH "/sys/fs/resctrl/info/L3_MON" -#define L3_MON_FEATURES_PATH "/sys/fs/resctrl/info/L3_MON/mon_features" #define ARCH_INTEL 1 #define ARCH_AMD 2 @@ -87,7 +83,7 @@ int get_resource_id(int cpu_no, int *resource_id); int mount_resctrlfs(void); int umount_resctrlfs(void); int validate_bw_report_request(char *bw_report); -bool validate_resctrl_feature_request(const char *resctrl_val); +bool validate_resctrl_feature_request(const char *resource, const char *feature); char *fgrep(FILE *inf, const char *str); int taskset_benchmark(pid_t bm_pid, int cpu_no); void run_benchmark(int signum, siginfo_t *info, void *ucontext); diff --git a/tools/testing/selftests/resctrl/resctrl_tests.c b/tools/testing/selftests/resctrl/resctrl_tests.c index 495aeee5b734..a19dcc3f8fb0 100644 --- a/tools/testing/selftests/resctrl/resctrl_tests.c +++ b/tools/testing/selftests/resctrl/resctrl_tests.c @@ -103,7 +103,9 @@ static void run_mbm_test(const char * const *benchmark_cmd, int cpu_no) return; } - if (!validate_resctrl_feature_request(MBM_STR) || (get_vendor() != ARCH_INTEL)) { + if (!validate_resctrl_feature_request("L3_MON", "mbm_total_bytes") || + !validate_resctrl_feature_request("L3_MON", "mbm_local_bytes") || + (get_vendor() != ARCH_INTEL)) { ksft_test_result_skip("Hardware does not support MBM or MBM is disabled\n"); goto cleanup; } @@ -128,7 +130,7 @@ static void run_mba_test(const char * const *benchmark_cmd, int cpu_no) return; } - if (!validate_resctrl_feature_request(MBA_STR) || (get_vendor() != ARCH_INTEL)) { + if (!validate_resctrl_feature_request("MB", NULL) || (get_vendor() != ARCH_INTEL)) { ksft_test_result_skip("Hardware does not support MBA or MBA is disabled\n"); goto cleanup; } @@ -151,7 +153,7 @@ static void run_cmt_test(const char * const *benchmark_cmd, int cpu_no) return; } - if (!validate_resctrl_feature_request(CMT_STR)) { + if (!validate_resctrl_feature_request("L3_MON", "llc_occupancy")) { ksft_test_result_skip("Hardware does not support CMT or CMT is disabled\n"); goto cleanup; } @@ -176,7 +178,7 @@ static void run_cat_test(int cpu_no, int no_of_bits) return; } - if (!validate_resctrl_feature_request(CAT_STR)) { + if (!validate_resctrl_feature_request("L3", NULL)) { ksft_test_result_skip("Hardware does not support CAT or CAT is disabled\n"); goto cleanup; } diff --git a/tools/testing/selftests/resctrl/resctrlfs.c b/tools/testing/selftests/resctrl/resctrlfs.c index bd36ee206602..3a8111362d26 100644 --- a/tools/testing/selftests/resctrl/resctrlfs.c +++ b/tools/testing/selftests/resctrl/resctrlfs.c @@ -8,6 +8,8 @@ * Sai Praneeth Prakhya , * Fenghua Yu */ +#include + #include "resctrl.h" static int find_resctrl_mount(char *buffer) @@ -604,63 +606,46 @@ char *fgrep(FILE *inf, const char *str) /* * validate_resctrl_feature_request - Check if requested feature is valid. - * @resctrl_val: Requested feature + * @resource: Required resource (e.g., MB, L3, L2, L3_MON, etc.) + * @feature: Required monitor feature (in mon_features file). Can only be + * set for L3_MON. Must be NULL for all other resources. * - * Return: True if the feature is supported, else false. False is also - * returned if resctrl FS is not mounted. + * Return: True if the resource/feature is supported, else false. False is + * also returned if resctrl FS is not mounted. */ -bool validate_resctrl_feature_request(const char *resctrl_val) +bool validate_resctrl_feature_request(const char *resource, const char *feature) { + char res_path[PATH_MAX]; struct stat statbuf; - bool found = false; char *res; FILE *inf; int ret; - if (!resctrl_val) + if (!resource) return false; ret = find_resctrl_mount(NULL); if (ret) return false; - if (!strncmp(resctrl_val, CAT_STR, sizeof(CAT_STR))) { - if (!stat(L3_PATH, &statbuf)) - return true; - } else if (!strncmp(resctrl_val, MBA_STR, sizeof(MBA_STR))) { - if (!stat(MB_PATH, &statbuf)) - return true; - } else if (!strncmp(resctrl_val, MBM_STR, sizeof(MBM_STR)) || - !strncmp(resctrl_val, CMT_STR, sizeof(CMT_STR))) { - if (!stat(L3_MON_PATH, &statbuf)) { - inf = fopen(L3_MON_FEATURES_PATH, "r"); - if (!inf) - return false; - - if (!strncmp(resctrl_val, CMT_STR, sizeof(CMT_STR))) { - res = fgrep(inf, "llc_occupancy"); - if (res) { - found = true; - free(res); - } - } - - if (!strncmp(resctrl_val, MBM_STR, sizeof(MBM_STR))) { - res = fgrep(inf, "mbm_total_bytes"); - if (res) { - free(res); - res = fgrep(inf, "mbm_local_bytes"); - if (res) { - found = true; - free(res); - } - } - } - fclose(inf); - } - } + snprintf(res_path, sizeof(res_path), "%s/%s", INFO_PATH, resource); + + if (stat(res_path, &statbuf)) + return false; + + if (!feature) + return true; + + snprintf(res_path, sizeof(res_path), "%s/%s/mon_features", INFO_PATH, resource); + inf = fopen(res_path, "r"); + if (!inf) + return false; + + res = fgrep(inf, feature); + free(res); + fclose(inf); - return found; + return !!res; } int filter_dmesg(void) From patchwork Mon Oct 2 09:48:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 147317 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2a8e:b0:403:3b70:6f57 with SMTP id in14csp1465383vqb; Mon, 2 Oct 2023 07:28:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH8MUuVJSX4VuYXf5RU5w/Dti12DTTvDldsOjiu7JiJEYlI8taz46KIeTdcF39ECqi8w4W5 X-Received: by 2002:a17:903:1109:b0:1c6:17a4:afae with SMTP id n9-20020a170903110900b001c617a4afaemr13710502plh.4.1696256881670; Mon, 02 Oct 2023 07:28:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696256881; cv=none; d=google.com; s=arc-20160816; b=SoaJdLip12bqr5bexy0KyUZ9ueXJ6iMOCmifUJwzsywezMzrJoq+3d5RNEhZhNjM0M krxRpVNSWTozz0Ms7CfGEYrJ1My530ozcH6zCK0EoR1yAUDaSsesdb1dWlCL1qfu/aZ0 TlnL1n36e+dDEKTyM8u27TJ7DkfrAc7BAuFq+c0LAHXf5HjdsKJ+XSDtN3IHOODU1tCd +z6G8Cn4JEppU+AH1aFR/1yKDG/KUVIM63SsmVVvnGdxoqxeQLQR15kFyDiDKZXsPGh6 8q5THwsjVQVxgSKGhBMADNf2DPDNshNr/PzXljo0M57/T2Raesrz8MX6stBkb2WjKgCx SE0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=8frexNrSmqr+3APsrehSj53WZhLYTX9yXPkDqN7c1Mc=; fh=0zBAjxShfumhVJgCQ7/PrZqZq2D8mhtAJK1GC38L6Jc=; b=mUfwFmKRP0Ntp0P70wii9OkQdW1VAS2KbJGif7sFreak9AD2VXhp+C3B+FR+Bbk9JD amNVpyECGlcJRPyjKmEUvpzWx7EVw9I9u1uXwq73BG9VrKUDebKQT8BWBL4gCuqDRX+P kYPhf7a+8tgn1pqNa2KL6506QXWz/4AW3flICkURI6smxwFJ/2MlfRTBxWViwaM5918J PoMYqzJnbEJZHc3McbhiWxsugaX3c9cYnLYkjPvX8t23OlhjXSMZD5tygEUqYBkCeJZ2 J+rc48hijx8A3HPHXDFgQSr2JB+6GtOuPZ5Kzk+TZHua22ALN1HG80ORUMeg/7KNzMT6 tp0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Rw4xOaGs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id z14-20020a1709027e8e00b001c5fb45613dsi21485066pla.318.2023.10.02.07.28.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 07:28:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Rw4xOaGs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id A6589809778A; Mon, 2 Oct 2023 02:49:44 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236265AbjJBJtg (ORCPT + 16 others); Mon, 2 Oct 2023 05:49:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41286 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236263AbjJBJte (ORCPT ); Mon, 2 Oct 2023 05:49:34 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 15B02AC; Mon, 2 Oct 2023 02:49:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696240172; x=1727776172; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=74ZZ/564V4oDiXOyHfqgSxaGtj8l14K+TxF0BdYOyXM=; b=Rw4xOaGsK3ECrjctpWCSRWGZe849jkgHcFD1YdvgNJD1HXAXmM/hcD7L 5ok8f7r/uhJpE4Z/AeVLhi0jYN3LfC1ezK4Yd6Y23a+Zd2TGxLS9Q72bJ fnDRI3LsMG6Qx699qEwxkOe577iglHcxM2SS4XwLQSe7IFwIeTGO6f+Lf Q8QeAPQMS2bOXCH+s1mV2r6iAHkZ6nG5/Tuf8VU1WWLeQbGVfA0RqXi3P o7Wc7lDMIUOpFHrGcNJqDLpMzD1+sTytLuPMcIt25U6MeyJqbwjP1JOoK Sza0tjYIgmZtDokhUQJjweKmXkdBi6So4HyCk8BdVPBPc8pDNQYN9KKZn w==; X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="381495440" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="381495440" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:49:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="866456931" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="866456931" Received: from aanantha-mobl.gar.corp.intel.com (HELO localhost) ([10.251.221.191]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:49:28 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-kselftest@vger.kernel.org, Shuah Khan , Reinette Chatre , =?utf-8?q?Maciej_Wiecz=C3=B3r-?= =?utf-8?q?Retman?= , Shaopeng Tan Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org, =?utf-8?q?Ilpo_J?= =?utf-8?q?=C3=A4rvinen?= Subject: [PATCH v4 6/7] selftests/resctrl: Fix feature checks Date: Mon, 2 Oct 2023 12:48:12 +0300 Message-Id: <20231002094813.6633-7-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> References: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Mon, 02 Oct 2023 02:49:44 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778654255668717598 X-GMAIL-MSGID: 1778654255668717598 The MBA and CMT tests expect support of other features to be able to run. When platform only supports MBA but not MBM, MBA test will fail with: Failed to open total bw file: No such file or directory When platform only supports CMT but not CAT, CMT test will fail with: Failed to open bit mask file '/sys/fs/resctrl/info/L3/cbm_mask': No such file or directory It leads to the test reporting test fail (even if no test was run at all). Extend feature checks to cover these two conditions to show these tests were skipped rather than failed. Fixes: ee0415681eb6 ("selftests/resctrl: Use resctrl/info for feature detection") Signed-off-by: Ilpo Järvinen Tested-by: Shaopeng Tan Reviewed-by: Reinette Chatre Reviewed-by: Shaopeng Tan Cc: # selftests/resctrl: Refactor feature check to use resource and feature name --- tools/testing/selftests/resctrl/resctrl_tests.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/resctrl/resctrl_tests.c b/tools/testing/selftests/resctrl/resctrl_tests.c index a19dcc3f8fb0..2bbe3045a018 100644 --- a/tools/testing/selftests/resctrl/resctrl_tests.c +++ b/tools/testing/selftests/resctrl/resctrl_tests.c @@ -130,7 +130,9 @@ static void run_mba_test(const char * const *benchmark_cmd, int cpu_no) return; } - if (!validate_resctrl_feature_request("MB", NULL) || (get_vendor() != ARCH_INTEL)) { + if (!validate_resctrl_feature_request("MB", NULL) || + !validate_resctrl_feature_request("L3_MON", "mbm_local_bytes") || + (get_vendor() != ARCH_INTEL)) { ksft_test_result_skip("Hardware does not support MBA or MBA is disabled\n"); goto cleanup; } @@ -153,7 +155,8 @@ static void run_cmt_test(const char * const *benchmark_cmd, int cpu_no) return; } - if (!validate_resctrl_feature_request("L3_MON", "llc_occupancy")) { + if (!validate_resctrl_feature_request("L3_MON", "llc_occupancy") || + !validate_resctrl_feature_request("L3", NULL)) { ksft_test_result_skip("Hardware does not support CMT or CMT is disabled\n"); goto cleanup; } From patchwork Mon Oct 2 09:48:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 147297 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2a8e:b0:403:3b70:6f57 with SMTP id in14csp1428016vqb; Mon, 2 Oct 2023 06:30:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF6125HsDpMV3Ir+7JktTYquOFiI3Y9xYZxU6J2M9bVbJLW6nU0lgCMq2OlSRAkyYkIKLLa X-Received: by 2002:a17:902:7404:b0:1c5:a49e:7aa with SMTP id g4-20020a170902740400b001c5a49e07aamr12620567pll.27.1696253429441; Mon, 02 Oct 2023 06:30:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696253429; cv=none; d=google.com; s=arc-20160816; b=r6VhFcKaAXzn5sSIWHIYuuaV4GONWq3sPzjkh3qISqsX/DCj4eDvgtdZNMOEdlDIgg ND2CmbNpHcxLzSWTFP4GW63ZwHzgCf0c2Vf+5lGlqE1C/EU5U2ZMgxBzyfX9L/CJMGML TaxpW/C5LAy0XfQ2r0bJ5LCOhDBbxFnhxisl0OVmgWwtzoUoZ9OGyM0cxfKkFNvaE0lP g0xsQIIbP1tHCjLaPIEWlir39rQdjub3Z8w8PKOS4Cs/Z+55Q7ufUe9dLVF2KC3N6Rqd 4/3JTaV+vR3Otitlw+/Nn2e3MGKKxaQtfDmQIf0fVXSkXPJqholujpsC1rwRtmpuONrI dmdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=2keUNVMQ34QaH0CuypKQEHCSwkkwyFQ1/fjpoCwhFU8=; fh=0zBAjxShfumhVJgCQ7/PrZqZq2D8mhtAJK1GC38L6Jc=; b=0rfLg+3zf9EpBHWhqTqKcpMgDOCGDwh0avS23I8DdAZ3JBy2alQRksvioSgTbMy5aq BK/PI7OyLqVO9qy5s8PEQ6A0yptRxb3KjDuueJJnG699Xgpq7Kh0s7fQONoFjVqQ4h+c SRBX1qOud4O1viSFCnBl7uDtVyd8zpnnVllcJdWDwYRbCMhNJ3P6VMuup3DiPTnXMY5t HKJLAPmOmAOyuaSp8Bp3F+KzGAS1XtCxynpHu3rAHiYGgGIjcfsNNplUkbUi0A2c1keg jmof9thKjLZ3xra2gJIP/j+Nyalg1fN4p/pIOmIymDiTCPvz3/A7ucwlSvnU1mLh5zpO 5AkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Axn64ntU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id l16-20020a170903121000b001c62e465391si5062697plh.147.2023.10.02.06.30.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 06:30:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Axn64ntU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id DAA1F809AF8E; Mon, 2 Oct 2023 02:50:00 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236289AbjJBJtv (ORCPT + 16 others); Mon, 2 Oct 2023 05:49:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51548 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236287AbjJBJtr (ORCPT ); Mon, 2 Oct 2023 05:49:47 -0400 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED42A10D; Mon, 2 Oct 2023 02:49:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696240182; x=1727776182; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=sp0x4fJkDtvf5U3jrcchNzXDHSx4PqVE55/imOH1bT4=; b=Axn64ntUCu4JVs+35v0jPCkV9PCp/IMBvVVNZMqj2bspTzNFG7lgwe1O Wm6809huDVD4r6nmOmFpOjRHAK0EbTzEWDlMGoDrglhB7NGp6TSc2JJtq NEOw2urCrUBWVbKlxKiSZChD/qCKPP7XlbJdlJ0UL6yERIbddBr+KUOER 2M22wj0mbHkJqmsD5hQhUXmtRBZn5hB7S6BD3i/phk3vN/wmN2l7W5Hqb 0FJJ6JglCB61zc5rX129ki9AJzNYAFSUTaeDBrJaY0BR0vqERqUKufHQh i6R8/Qc12xx4OpxfUQSruPFrUr30fCuxEntCWlsloodcsFZOd9n4/wR14 w==; X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="372960722" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="372960722" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:49:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10850"; a="754005604" X-IronPort-AV: E=Sophos;i="6.03,194,1694761200"; d="scan'208";a="754005604" Received: from aanantha-mobl.gar.corp.intel.com (HELO localhost) ([10.251.221.191]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 02:49:37 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-kselftest@vger.kernel.org, Shuah Khan , Reinette Chatre , =?utf-8?q?Maciej_Wiecz=C3=B3r-?= =?utf-8?q?Retman?= , Shaopeng Tan Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org, =?utf-8?q?Ilpo_J?= =?utf-8?q?=C3=A4rvinen?= Subject: [PATCH v4 7/7] selftests/resctrl: Reduce failures due to outliers in MBA/MBM tests Date: Mon, 2 Oct 2023 12:48:13 +0300 Message-Id: <20231002094813.6633-8-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> References: <20231002094813.6633-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Mon, 02 Oct 2023 02:50:00 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778650636001466064 X-GMAIL-MSGID: 1778650636001466064 The initial value of 5% chosen for the maximum allowed percentage difference between resctrl mbm value and IMC mbm value in commit 06bd03a57f8c ("selftests/resctrl: Fix MBA/MBM results reporting format") was "randomly chosen value" (as admitted by the changelog). When running tests in our lab across a large number platforms, 5% difference upper bound for success seems a bit on the low side for the MBA and MBM tests. Some platforms produce outliers that are slightly above that, typically 6-7%, which leads MBA/MBM test frequently failing. Replace the "randomly chosen value" with a success bound that is based on those measurements across large number of platforms by relaxing the MBA/MBM success bound to 8%. The relaxed bound removes the failures due the frequent outliers. Fixes: 06bd03a57f8c ("selftests/resctrl: Fix MBA/MBM results reporting format") Signed-off-by: Ilpo Järvinen Tested-by: Shaopeng Tan Reviewed-by: Reinette Chatre Reviewed-by: Shaopeng Tan Cc: --- tools/testing/selftests/resctrl/mba_test.c | 2 +- tools/testing/selftests/resctrl/mbm_test.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/resctrl/mba_test.c b/tools/testing/selftests/resctrl/mba_test.c index cf8284dadcb2..d3bf4368341e 100644 --- a/tools/testing/selftests/resctrl/mba_test.c +++ b/tools/testing/selftests/resctrl/mba_test.c @@ -12,7 +12,7 @@ #define RESULT_FILE_NAME "result_mba" #define NUM_OF_RUNS 5 -#define MAX_DIFF_PERCENT 5 +#define MAX_DIFF_PERCENT 8 #define ALLOCATION_MAX 100 #define ALLOCATION_MIN 10 #define ALLOCATION_STEP 10 diff --git a/tools/testing/selftests/resctrl/mbm_test.c b/tools/testing/selftests/resctrl/mbm_test.c index 1ae131a2e246..d3c0d30c676a 100644 --- a/tools/testing/selftests/resctrl/mbm_test.c +++ b/tools/testing/selftests/resctrl/mbm_test.c @@ -11,7 +11,7 @@ #include "resctrl.h" #define RESULT_FILE_NAME "result_mbm" -#define MAX_DIFF_PERCENT 5 +#define MAX_DIFF_PERCENT 8 #define NUM_OF_RUNS 5 static int