From patchwork Tue Jan 31 05:46:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaopeng Tan X-Patchwork-Id: 50614 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp2580044wrn; Mon, 30 Jan 2023 22:01:26 -0800 (PST) X-Google-Smtp-Source: AK7set/h1R9+5T9/A9UpbUAHKtBisu7hhU/wrijZxxS4bo313YxtWBh5MtJHu6/iB7QP9+u5+Ao9 X-Received: by 2002:a17:907:74d:b0:878:82c7:f5dc with SMTP id xc13-20020a170907074d00b0087882c7f5dcmr21164328ejb.56.1675144886091; Mon, 30 Jan 2023 22:01:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675144886; cv=none; d=google.com; s=arc-20160816; b=uHutshAEsSN/w4v7WElwwMK8p3S3nu4/VBgogMFL3rZmYPf2KoeGKQI6ecP1Rb3Jas MKVs4SQdxyEk1kY1HoFuTvsiWjwjV2ugNjPlWKT4Tf7levHe49xs660J4RBiiRtDJA5a eey4/3XjaybOWm+ZOFzYDLr3zrqhdwA0RqR1XRcP6FeFgy06WoszYBkuTYyhR0fXmywV jSF7nxM57qIawFpbhNCQEQLWtUv8DUOD/QvPUQ4yNDxfXyRC+bOA2WVRPz8cI++DD2J8 vpb1juMoKlgcuthxi4mXrB535ipE26EENyS7hW+vsYxWCSR9ELalHr5shrOHULZXK1Kx IFEw== 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; bh=DYA4/xfV6gdF5efekXUd3A2FwgLkRnn02fG7LKFB6rk=; b=NzKolTgItdvxt2fM1nBGC37jhiCuqRzCr9XRb9LO0rqd8ULhH0EKs8T2zhL7bAQrjO uarOF3pHTEXYyEoiRBc5pvCA6H4KjKt4GyhjAKGNR2ErwpbcE9R30znzCKX8LBCUa9zp tt0SSpZ/3sKoidSxvXjjl9b5gD72rakqTt2qd/mQYJRt2i7ZW80r0O9+/vA/JEkFPmVp d59xY8Jr3bBgxeL1yTg8Xbe3jFDqcPb8sk00ZwgQh0UWr7fHcGeX0hBEV2b2649zoEIt +AnvZznQ2OYHE5fcu7/2ajiIGv91KW6QbtiiGV68qycxe8Er+DzivoApps+imf41Ifim aT2Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f30-20020a170906739e00b0087329ff5934si20339810ejl.0.2023.01.30.22.00.58; Mon, 30 Jan 2023 22:01:26 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230325AbjAaFuj (ORCPT + 99 others); Tue, 31 Jan 2023 00:50:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46862 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229890AbjAaFug (ORCPT ); Tue, 31 Jan 2023 00:50:36 -0500 Received: from esa4.hc1455-7.c3s2.iphmx.com (esa4.hc1455-7.c3s2.iphmx.com [68.232.139.117]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D56D3B3F8; Mon, 30 Jan 2023 21:50:34 -0800 (PST) X-IronPort-AV: E=McAfee;i="6500,9779,10606"; a="104889601" X-IronPort-AV: E=Sophos;i="5.97,259,1669042800"; d="scan'208";a="104889601" Received: from unknown (HELO oym-r3.gw.nic.fujitsu.com) ([210.162.30.91]) by esa4.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2023 14:50:33 +0900 Received: from oym-m4.gw.nic.fujitsu.com (oym-nat-oym-m4.gw.nic.fujitsu.com [192.168.87.61]) by oym-r3.gw.nic.fujitsu.com (Postfix) with ESMTP id 535F3D647D; Tue, 31 Jan 2023 14:50:30 +0900 (JST) Received: from yto-om3.fujitsu.com (yto-om3.o.css.fujitsu.com [10.128.89.164]) by oym-m4.gw.nic.fujitsu.com (Postfix) with ESMTP id 83C4CD6454; Tue, 31 Jan 2023 14:50:29 +0900 (JST) Received: from cn-r05-10.example.com (n3235113.np.ts.nmh.cs.fujitsu.co.jp [10.123.235.113]) by yto-om3.fujitsu.com (Postfix) with ESMTP id 196E340060643; Tue, 31 Jan 2023 14:50:29 +0900 (JST) From: Shaopeng Tan To: Fenghua Yu , Reinette Chatre , Shuah Khan Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, tan.shaopeng@jp.fujitsu.com Subject: [PATCH v6 1/5] selftests/resctrl: Fix set up schemata with 100% allocation on first run in MBM test Date: Tue, 31 Jan 2023 14:46:51 +0900 Message-Id: <20230131054655.396270-2-tan.shaopeng@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230131054655.396270-1-tan.shaopeng@jp.fujitsu.com> References: <20230131054655.396270-1-tan.shaopeng@jp.fujitsu.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756516724147573152?= X-GMAIL-MSGID: =?utf-8?q?1756516724147573152?= There is a comment "Set up shemata with 100% allocation on the first run" in function mbm_setup(), but there is an increment bug and the condition "num_of_runs == 0" will never be met and write_schemata() will never be called to set schemata to 100%. Even if write_schemata() is called in MBM test, since it is not supported for MBM test it does not set the schemata. This is currently fine because resctrl_val_parm->mum_resctrlfs is always 1 and umount/mount will be run in each test to set the schemata to 100%. To support the usage when MBM test does not unmount/remount resctrl filesystem before the test starts, fix to call write_schemata() and set schemata properly when the function is called for the first time. Also, remove static local variable 'num_of_runs' because this is not needed as there is resctrl_val_param->num_of_runs which should be used instead like in cat_setup(). Reviewed-by: Reinette Chatre Signed-off-by: Shaopeng Tan --- tools/testing/selftests/resctrl/mbm_test.c | 13 +++++++------ tools/testing/selftests/resctrl/resctrlfs.c | 4 +++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/resctrl/mbm_test.c b/tools/testing/selftests/resctrl/mbm_test.c index 8392e5c55ed0..6d550f012829 100644 --- a/tools/testing/selftests/resctrl/mbm_test.c +++ b/tools/testing/selftests/resctrl/mbm_test.c @@ -89,23 +89,24 @@ static int check_results(int span) static int mbm_setup(int num, ...) { struct resctrl_val_param *p; - static int num_of_runs; va_list param; int ret = 0; - /* Run NUM_OF_RUNS times */ - if (num_of_runs++ >= NUM_OF_RUNS) - return -1; - va_start(param, num); p = va_arg(param, struct resctrl_val_param *); va_end(param); + /* Run NUM_OF_RUNS times */ + if (p->num_of_runs >= NUM_OF_RUNS) + return -1; + /* Set up shemata with 100% allocation on the first run. */ - if (num_of_runs == 0) + if (p->num_of_runs == 0) ret = write_schemata(p->ctrlgrp, "100", p->cpu_no, p->resctrl_val); + p->num_of_runs++; + return ret; } diff --git a/tools/testing/selftests/resctrl/resctrlfs.c b/tools/testing/selftests/resctrl/resctrlfs.c index 6f543e470ad4..8546bc9f1786 100644 --- a/tools/testing/selftests/resctrl/resctrlfs.c +++ b/tools/testing/selftests/resctrl/resctrlfs.c @@ -498,6 +498,7 @@ int write_schemata(char *ctrlgrp, char *schemata, int cpu_no, char *resctrl_val) FILE *fp; if (strncmp(resctrl_val, MBA_STR, sizeof(MBA_STR)) && + strncmp(resctrl_val, MBM_STR, sizeof(MBM_STR)) && strncmp(resctrl_val, CAT_STR, sizeof(CAT_STR)) && strncmp(resctrl_val, CMT_STR, sizeof(CMT_STR))) return -ENOENT; @@ -523,7 +524,8 @@ int write_schemata(char *ctrlgrp, char *schemata, int cpu_no, char *resctrl_val) if (!strncmp(resctrl_val, CAT_STR, sizeof(CAT_STR)) || !strncmp(resctrl_val, CMT_STR, sizeof(CMT_STR))) sprintf(schema, "%s%d%c%s", "L3:", resource_id, '=', schemata); - if (!strncmp(resctrl_val, MBA_STR, sizeof(MBA_STR))) + if (!strncmp(resctrl_val, MBA_STR, sizeof(MBA_STR)) || + !strncmp(resctrl_val, MBM_STR, sizeof(MBM_STR))) sprintf(schema, "%s%d%c%s", "MB:", resource_id, '=', schemata); fp = fopen(controlgroup, "w"); From patchwork Tue Jan 31 05:46:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaopeng Tan X-Patchwork-Id: 50615 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp2580371wrn; Mon, 30 Jan 2023 22:02:04 -0800 (PST) X-Google-Smtp-Source: AK7set+oiQWp/JHw8ZWV8mtB6YRr/dPnfBN2xXgjuKphkPTxS34lNO+Je2JMsXG6B175CCaC8SE7 X-Received: by 2002:a05:6a20:c189:b0:be:fa44:95b2 with SMTP id bg9-20020a056a20c18900b000befa4495b2mr34045pzb.8.1675144924344; Mon, 30 Jan 2023 22:02:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675144924; cv=none; d=google.com; s=arc-20160816; b=fvLVZwIvyiZWiGCjZTsMKDsTiZ0Q+PeVz41U8pCH1mQWDVgJtODN8cnmC0Ho6wr7mQ NtLe2/aCzkDrmE/FoWYAtkgTP4nXhsM/VPvf7JF/UPXWoKSj3FdoqQQiOcZ5BVySR4Rv slTbiaCDyVjo+BwbV+wLW3Spq4bGHBowRoGO6PtPCM2Y3tvyxdSWiBER8K5eQI+yky2k KzyaA8QS+ZNqcmrnaToFnKgCRHP4aNzKxY710VZ55d490K+ssu+RMRsgY+BYi+YvbgRx imj9wQ1KOPacSoSYwiwy9YwXum6QQcIW3KWb9obaq33QCMiZK9lxBu/JYSTh6TEL6tJi AP6A== 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; bh=8vB7wSoHkVQdDBEgWvv4iIcFC9Fe76TYmbSGIUh7/DA=; b=ge1pMSMndOWrqoLSrV01NROG+BGS/aHnc83CpW87dJthsZejAlI90mwm1qEiNXO8Rr 1HSW/PpjipMVBSZ3j4MYWqAeG9W5LRMpqGsH3mHjCbEqzPIWgTyI0n3ZPVcBY1t0x8NR 1iVX6E5T/ioNsZ3KJ+6pdQVWvLPGc+kRXJyLa6Cx6euaFfdn1892juywRv51a+qrai42 Za+gG8D6y5/d05eZmkk4A8Rbsc3Fo9tdTPX4MmqLMdYonp4WdcWd/SypL+1FX+FpuCbd ISmxiiTp4IrCo4xkDFxLjTWkWzcBET9xgdUlDr4YnhO7S84bbcLPFwXXjIaeeB5IkOrZ dhNA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p16-20020a637f50000000b004e3f0dd60e9si9219166pgn.551.2023.01.30.22.01.47; Mon, 30 Jan 2023 22:02:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230267AbjAaFun (ORCPT + 99 others); Tue, 31 Jan 2023 00:50:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46952 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230303AbjAaFuj (ORCPT ); Tue, 31 Jan 2023 00:50:39 -0500 Received: from esa5.hc1455-7.c3s2.iphmx.com (esa5.hc1455-7.c3s2.iphmx.com [68.232.139.130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 937463B3DD; Mon, 30 Jan 2023 21:50:37 -0800 (PST) X-IronPort-AV: E=McAfee;i="6500,9779,10606"; a="104437403" X-IronPort-AV: E=Sophos;i="5.97,259,1669042800"; d="scan'208";a="104437403" Received: from unknown (HELO yto-r4.gw.nic.fujitsu.com) ([218.44.52.220]) by esa5.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2023 14:50:35 +0900 Received: from yto-m1.gw.nic.fujitsu.com (yto-nat-yto-m1.gw.nic.fujitsu.com [192.168.83.64]) by yto-r4.gw.nic.fujitsu.com (Postfix) with ESMTP id CA6CCD3EAC; Tue, 31 Jan 2023 14:50:32 +0900 (JST) Received: from yto-om3.fujitsu.com (yto-om3.o.css.fujitsu.com [10.128.89.164]) by yto-m1.gw.nic.fujitsu.com (Postfix) with ESMTP id 225B8CFAB4; Tue, 31 Jan 2023 14:50:32 +0900 (JST) Received: from cn-r05-10.example.com (n3235113.np.ts.nmh.cs.fujitsu.co.jp [10.123.235.113]) by yto-om3.fujitsu.com (Postfix) with ESMTP id EE8A940061250; Tue, 31 Jan 2023 14:50:31 +0900 (JST) From: Shaopeng Tan To: Fenghua Yu , Reinette Chatre , Shuah Khan Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, tan.shaopeng@jp.fujitsu.com, Shuah Khan Subject: [PATCH v6 2/5] selftests/resctrl: Return MBA check result and make it to output message Date: Tue, 31 Jan 2023 14:46:52 +0900 Message-Id: <20230131054655.396270-3-tan.shaopeng@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230131054655.396270-1-tan.shaopeng@jp.fujitsu.com> References: <20230131054655.396270-1-tan.shaopeng@jp.fujitsu.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756516764355274128?= X-GMAIL-MSGID: =?utf-8?q?1756516764355274128?= Since MBA check result is not returned, the MBA test result message is always output as "ok" regardless of whether the MBA check result is true or false. Make output message to be "not ok" if MBA check result is failed. Reviewed-by: Shuah Khan Reviewed-by: Reinette Chatre Signed-off-by: Shaopeng Tan --- tools/testing/selftests/resctrl/mba_test.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tools/testing/selftests/resctrl/mba_test.c b/tools/testing/selftests/resctrl/mba_test.c index 1a1bdb6180cf..e3a473976d74 100644 --- a/tools/testing/selftests/resctrl/mba_test.c +++ b/tools/testing/selftests/resctrl/mba_test.c @@ -51,10 +51,10 @@ static int mba_setup(int num, ...) return 0; } -static void show_mba_info(unsigned long *bw_imc, unsigned long *bw_resc) +static bool show_mba_info(unsigned long *bw_imc, unsigned long *bw_resc) { int allocation, runs; - bool failed = false; + bool ret = false; ksft_print_msg("Results are displayed in (MB)\n"); /* Memory bandwidth from 100% down to 10% */ @@ -90,13 +90,15 @@ static void show_mba_info(unsigned long *bw_imc, unsigned long *bw_resc) ksft_print_msg("avg_bw_imc: %lu\n", avg_bw_imc); ksft_print_msg("avg_bw_resc: %lu\n", avg_bw_resc); if (avg_diff_per > MAX_DIFF_PERCENT) - failed = true; + ret = true; } ksft_print_msg("%s Check schemata change using MBA\n", - failed ? "Fail:" : "Pass:"); - if (failed) + ret ? "Fail:" : "Pass:"); + if (ret) ksft_print_msg("At least one test failed\n"); + + return ret; } static int check_results(void) @@ -132,9 +134,7 @@ static int check_results(void) fclose(fp); - show_mba_info(bw_imc, bw_resc); - - return 0; + return show_mba_info(bw_imc, bw_resc); } void mba_test_cleanup(void) From patchwork Tue Jan 31 05:46:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaopeng Tan X-Patchwork-Id: 50616 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp2580393wrn; Mon, 30 Jan 2023 22:02:07 -0800 (PST) X-Google-Smtp-Source: AMrXdXvmQLCeMXkl8QEPplklOUeC05o/z4wXby9tljx2b61qip1N0jQTRQbVgW4VwQs1FiHbEbDA X-Received: by 2002:aa7:8b42:0:b0:575:b783:b6b3 with SMTP id i2-20020aa78b42000000b00575b783b6b3mr46696590pfd.28.1675144926919; Mon, 30 Jan 2023 22:02:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675144926; cv=none; d=google.com; s=arc-20160816; b=F7qL40gjN6s0DxBRaTFM5bkrTNyDTlSXYfQtc0exZupn70yu2j8QktVkPiV8++7bYB 9PbskK9LXwJU71YbmAyD+EeyHNjiJAqRl2dKAn6Q7THhVgsl3jRHSjshlRPVGNM2ZoZ9 aweDdGS9u1fe4hmU904w54YbQ5ge5OzZ1Q0xjsgBrUsn2cNNVAf20Gji/btvg+nyhc3X MbxzA49yc0dK17sEfLt2KREOwopPPQxgfo3sfxtgHMRZ2jCebepkrNHtjK003QEfm2z4 k3dayxZtpmiLWXr3X2i8TBoKKpEZ9QNPPL1HMjSFpyC0A2iYv75CClQ46OfCQiREvxGw 30OQ== 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; bh=RjAUSPDbrjqL+ZLCB8tfzB84CWFLe7V4Zlb51S559KY=; b=wuxwaxlRO0e/tNondZEqYA1TQ+T4BfMcyNsIav1AUgL1FEPx+XzZPer5dzRp6WbPP5 cS3YB74SKkpFOnzjad/4ZVB4aqtrhjzfVVeIiLsTSO2n3qjzjulUDE8npOilH7rpaYd9 xRrLkguWMXTtNEFH9wpc1GNSH8BKEdbIy3pcE3FKxYE0yYXDeQ22DQJ9rgUT2aUUz4qS 67Majol47B7vll44Y7tc5K/RuRHYghNaHBhEQJRa/dpZz616jCAGV3psxzj4G3USUcGb JK01A7g9FakEhPWqfh5jXsJwmX1O69w6WAUsigvdz/h4QsTF9I/8FgUQEd0oLICPx6H5 Nnjw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p9-20020a056a000a0900b0058dbc8b6900si18311608pfh.305.2023.01.30.22.01.50; Mon, 30 Jan 2023 22:02:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230390AbjAaFup (ORCPT + 99 others); Tue, 31 Jan 2023 00:50:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47006 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230344AbjAaFum (ORCPT ); Tue, 31 Jan 2023 00:50:42 -0500 Received: from esa12.hc1455-7.c3s2.iphmx.com (esa12.hc1455-7.c3s2.iphmx.com [139.138.37.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BE5A63B3F8; Mon, 30 Jan 2023 21:50:39 -0800 (PST) X-IronPort-AV: E=McAfee;i="6500,9779,10606"; a="84409735" X-IronPort-AV: E=Sophos;i="5.97,259,1669042800"; d="scan'208";a="84409735" Received: from unknown (HELO yto-r1.gw.nic.fujitsu.com) ([218.44.52.217]) by esa12.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2023 14:50:36 +0900 Received: from yto-m3.gw.nic.fujitsu.com (yto-nat-yto-m3.gw.nic.fujitsu.com [192.168.83.66]) by yto-r1.gw.nic.fujitsu.com (Postfix) with ESMTP id 82E4FD66A1; Tue, 31 Jan 2023 14:50:34 +0900 (JST) Received: from yto-om3.fujitsu.com (yto-om3.o.css.fujitsu.com [10.128.89.164]) by yto-m3.gw.nic.fujitsu.com (Postfix) with ESMTP id D3A27D9680; Tue, 31 Jan 2023 14:50:33 +0900 (JST) Received: from cn-r05-10.example.com (n3235113.np.ts.nmh.cs.fujitsu.co.jp [10.123.235.113]) by yto-om3.fujitsu.com (Postfix) with ESMTP id AC18740061252; Tue, 31 Jan 2023 14:50:33 +0900 (JST) From: Shaopeng Tan To: Fenghua Yu , Reinette Chatre , Shuah Khan Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, tan.shaopeng@jp.fujitsu.com, Shuah Khan Subject: [PATCH v6 3/5] selftests/resctrl: Flush stdout file buffer before executing fork() Date: Tue, 31 Jan 2023 14:46:53 +0900 Message-Id: <20230131054655.396270-4-tan.shaopeng@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230131054655.396270-1-tan.shaopeng@jp.fujitsu.com> References: <20230131054655.396270-1-tan.shaopeng@jp.fujitsu.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756516766978635177?= X-GMAIL-MSGID: =?utf-8?q?1756516766978635177?= When a process has buffered output, a child process created by fork() will also copy buffered output. When using kselftest framework, the output (resctrl test result message) will be printed multiple times. Add fflush() to flush out the buffered output before executing fork(). Reviewed-by: Shuah Khan Reviewed-by: Reinette Chatre Signed-off-by: Shaopeng Tan --- tools/testing/selftests/resctrl/cat_test.c | 1 + tools/testing/selftests/resctrl/resctrl_val.c | 1 + tools/testing/selftests/resctrl/resctrlfs.c | 1 + 3 files changed, 3 insertions(+) diff --git a/tools/testing/selftests/resctrl/cat_test.c b/tools/testing/selftests/resctrl/cat_test.c index 1c5e90c63254..6a8306b0a109 100644 --- a/tools/testing/selftests/resctrl/cat_test.c +++ b/tools/testing/selftests/resctrl/cat_test.c @@ -167,6 +167,7 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type) return errno; } + fflush(stdout); bm_pid = fork(); /* Set param values for child thread which will be allocated bitmask diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c index b32b96356ec7..6948843bf995 100644 --- a/tools/testing/selftests/resctrl/resctrl_val.c +++ b/tools/testing/selftests/resctrl/resctrl_val.c @@ -629,6 +629,7 @@ int resctrl_val(char **benchmark_cmd, struct resctrl_val_param *param) * Fork to start benchmark, save child's pid so that it can be killed * when needed */ + fflush(stdout); bm_pid = fork(); if (bm_pid == -1) { perror("# Unable to fork"); diff --git a/tools/testing/selftests/resctrl/resctrlfs.c b/tools/testing/selftests/resctrl/resctrlfs.c index 8546bc9f1786..d95688298469 100644 --- a/tools/testing/selftests/resctrl/resctrlfs.c +++ b/tools/testing/selftests/resctrl/resctrlfs.c @@ -678,6 +678,7 @@ int filter_dmesg(void) perror("pipe"); return ret; } + fflush(stdout); pid = fork(); if (pid == 0) { close(pipefds[0]); From patchwork Tue Jan 31 05:46:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaopeng Tan X-Patchwork-Id: 50617 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp2581062wrn; Mon, 30 Jan 2023 22:03:44 -0800 (PST) X-Google-Smtp-Source: AK7set+KTx5QUm5D0tVNcimbQ2it+Gqj75eDhKHXpeEJrC6viffU+UmZ00LZmrf5CRmYfMpWhLvP X-Received: by 2002:a05:6a20:158a:b0:bd:7ee9:e77c with SMTP id h10-20020a056a20158a00b000bd7ee9e77cmr6658844pzj.48.1675145024144; Mon, 30 Jan 2023 22:03:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675145024; cv=none; d=google.com; s=arc-20160816; b=zR7xWxahyzf8uLil4VgSwnu3oUSWFVI404Ymd7bTsXrg0xFZ7q/mwo6g3fdzRgs02p vL3gIdOKJDiTtqYf6Qjd/6SIeuR6Ovzt1a+zajwfvdBjo/wZSXspPOO162kXEU6pskcG PgoTTo5hPBD7hBINJ09WpXTwy/yXRntXOdvjCpGFf15pYWptW861pJjUGpNRig/rCTp8 IJbNPHqVLrptvdgWM5MInXLZ7aqQYs+298W23i/TBxYO+Gos5cWtsGwjWtKBkSV1f1m/ rG4G4OsnEWsooxmM70VGdjmfvOGF9s1q3kELs7/FWXP+NLJVbh9l+IkGw3rI+yFDvCck iRLA== 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; bh=SBQ8nOhO/QuxHTa9y58itrQhKbupTC/RUg6JaGiX+/0=; b=D0bQXv+/ObHWF82r5wyS2Yv0pJF9UYhPNztfuMvj6Arq9y2JKWM/O9Aoe8bk7NVL5D b59UziJ7ANq50OV6NtpFCUZ5z/jBUgozotxRKJK8cYkpjjuYKg9yvkQLWCIXul8OoBXB MM9CVOjx7KFFBrNrPh/wMkDytHjffX8tjzZaZoNyM39dgIvfhdopBqo6aFvvV09VqPg9 dVEDjBb14UGTU5YqOo5gWPhDGpKUx9haTyxfw8MlaIGgmixYgeK+lvG94MLGsnbbkZ+w AuxHFGfGVirnlIDsW5TeaZgHWCMbNglkkIZkl8718aDzC2RTAm4bT+ZAamFRMbX277mG OTtw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z1-20020a63b041000000b004adff260d0dsi14321127pgo.800.2023.01.30.22.03.31; Mon, 30 Jan 2023 22:03:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230495AbjAaFu5 (ORCPT + 99 others); Tue, 31 Jan 2023 00:50:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47526 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230407AbjAaFuv (ORCPT ); Tue, 31 Jan 2023 00:50:51 -0500 Received: from esa12.hc1455-7.c3s2.iphmx.com (esa12.hc1455-7.c3s2.iphmx.com [139.138.37.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1867D3BDA6; Mon, 30 Jan 2023 21:50:40 -0800 (PST) X-IronPort-AV: E=McAfee;i="6500,9779,10606"; a="84409738" X-IronPort-AV: E=Sophos;i="5.97,259,1669042800"; d="scan'208";a="84409738" Received: from unknown (HELO oym-r2.gw.nic.fujitsu.com) ([210.162.30.90]) by esa12.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2023 14:50:37 +0900 Received: from oym-m1.gw.nic.fujitsu.com (oym-nat-oym-m1.gw.nic.fujitsu.com [192.168.87.58]) by oym-r2.gw.nic.fujitsu.com (Postfix) with ESMTP id F360FD4324; Tue, 31 Jan 2023 14:50:35 +0900 (JST) Received: from yto-om3.fujitsu.com (yto-om3.o.css.fujitsu.com [10.128.89.164]) by oym-m1.gw.nic.fujitsu.com (Postfix) with ESMTP id 33BB4D8C81; Tue, 31 Jan 2023 14:50:35 +0900 (JST) Received: from cn-r05-10.example.com (n3235113.np.ts.nmh.cs.fujitsu.co.jp [10.123.235.113]) by yto-om3.fujitsu.com (Postfix) with ESMTP id E9C4640003AFE; Tue, 31 Jan 2023 14:50:34 +0900 (JST) From: Shaopeng Tan To: Fenghua Yu , Reinette Chatre , Shuah Khan Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, tan.shaopeng@jp.fujitsu.com Subject: [PATCH v6 4/5] selftests/resctrl: Cleanup properly when an error occurs in CAT test Date: Tue, 31 Jan 2023 14:46:54 +0900 Message-Id: <20230131054655.396270-5-tan.shaopeng@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230131054655.396270-1-tan.shaopeng@jp.fujitsu.com> References: <20230131054655.396270-1-tan.shaopeng@jp.fujitsu.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756516868936459992?= X-GMAIL-MSGID: =?utf-8?q?1756516868936459992?= After creating a child process with fork() in CAT test, if an error occurs or a signal such as SIGINT is received, the parent process will be terminated immediately, and therefor the child process will not be killed and also resctrlfs is not unmounted. There is a signal handler registered in CMT/MBM/MBA tests, which kills child process, unmount resctrlfs, cleanups result files, etc., if a signal such as SIGINT is received. Commonize the signal handler registered for CMT/MBM/MBA tests and reuse it in CAT too. To reuse the signal handler, make the child process in CAT wait to be killed by parent process in any case (an error occurred or a signal was received), and when killing child process use global bm_pid instead of local bm_pid. Also, since the MBA/MBA/CMT/CAT are run in order, unregister the signal handler at the end of each test so that the signal handler cannot be inherited by other tests. Signed-off-by: Shaopeng Tan --- tools/testing/selftests/resctrl/cat_test.c | 28 ++++---- tools/testing/selftests/resctrl/fill_buf.c | 14 ---- tools/testing/selftests/resctrl/resctrl.h | 2 + tools/testing/selftests/resctrl/resctrl_val.c | 70 +++++++++++++------ 4 files changed, 68 insertions(+), 46 deletions(-) diff --git a/tools/testing/selftests/resctrl/cat_test.c b/tools/testing/selftests/resctrl/cat_test.c index 6a8306b0a109..3524fa88e3a4 100644 --- a/tools/testing/selftests/resctrl/cat_test.c +++ b/tools/testing/selftests/resctrl/cat_test.c @@ -103,7 +103,6 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type) unsigned long l_mask, l_mask_1; int ret, pipefd[2], sibling_cpu_no; char pipe_message; - pid_t bm_pid; cache_size = 0; @@ -181,28 +180,31 @@ 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); ret = cat_val(¶m); - if (ret) - return ret; - - ret = check_results(¶m); - if (ret) - return ret; + if (ret == 0) + ret = check_results(¶m); if (bm_pid == 0) { /* Tell parent that child is ready */ close(pipefd[0]); pipe_message = 1; if (write(pipefd[1], &pipe_message, sizeof(pipe_message)) < - sizeof(pipe_message)) { - close(pipefd[1]); + sizeof(pipe_message)) + /* + * Just print the error message. + * Let while(1) run and wait for itself to be killed. + */ perror("# failed signaling parent process"); - return errno; - } close(pipefd[1]); while (1) @@ -222,9 +224,11 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type) kill(bm_pid, SIGKILL); } + signal_handler_unregister(); +out: cat_test_cleanup(); if (bm_pid) umount_resctrlfs(); - return 0; + return ret; } diff --git a/tools/testing/selftests/resctrl/fill_buf.c b/tools/testing/selftests/resctrl/fill_buf.c index 56ccbeae0638..322c6812e15c 100644 --- a/tools/testing/selftests/resctrl/fill_buf.c +++ b/tools/testing/selftests/resctrl/fill_buf.c @@ -33,14 +33,6 @@ static void sb(void) #endif } -static void ctrl_handler(int signo) -{ - free(startptr); - printf("\nEnding\n"); - sb(); - exit(EXIT_SUCCESS); -} - static void cl_flush(void *p) { #if defined(__i386) || defined(__x86_64) @@ -198,12 +190,6 @@ int run_fill_buf(unsigned long span, int malloc_and_init_memory, unsigned long long cache_size = span; int ret; - /* set up ctrl-c handler */ - if (signal(SIGINT, ctrl_handler) == SIG_ERR) - printf("Failed to catch SIGINT!\n"); - if (signal(SIGHUP, ctrl_handler) == SIG_ERR) - printf("Failed to catch SIGHUP!\n"); - ret = fill_cache(cache_size, malloc_and_init_memory, memflush, op, resctrl_val); if (ret) { diff --git a/tools/testing/selftests/resctrl/resctrl.h b/tools/testing/selftests/resctrl/resctrl.h index f0ded31fb3c7..92b59d2f603d 100644 --- a/tools/testing/selftests/resctrl/resctrl.h +++ b/tools/testing/selftests/resctrl/resctrl.h @@ -107,6 +107,8 @@ void mba_test_cleanup(void); int get_cbm_mask(char *cache_type, char *cbm_mask); int get_cache_size(int cpu_no, char *cache_type, unsigned long *cache_size); void ctrlc_handler(int signum, siginfo_t *info, void *ptr); +int signal_handler_register(void); +void signal_handler_unregister(void); int cat_val(struct resctrl_val_param *param); void cat_test_cleanup(void); int cat_perf_miss_val(int cpu_no, int no_of_bits, char *cache_type); diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c index 6948843bf995..c2be2f2505a8 100644 --- a/tools/testing/selftests/resctrl/resctrl_val.c +++ b/tools/testing/selftests/resctrl/resctrl_val.c @@ -476,6 +476,45 @@ void ctrlc_handler(int signum, siginfo_t *info, void *ptr) exit(EXIT_SUCCESS); } +/* + * Register CTRL-C handler for parent, as it has to kill + * child process before exiting + */ +int signal_handler_register(void) +{ + struct sigaction sigact; + int ret = 0; + + sigact.sa_sigaction = ctrlc_handler; + sigemptyset(&sigact.sa_mask); + sigact.sa_flags = SA_SIGINFO; + if (sigaction(SIGINT, &sigact, NULL) || + sigaction(SIGTERM, &sigact, NULL) || + sigaction(SIGHUP, &sigact, NULL)) { + perror("# sigaction"); + ret = -1; + } + return ret; +} + +/* + * Reset signal handler to SIG_DFL. + * Non-Vaule return because the caller should keep + * the error code of other path even if sigaction fails. + */ +void signal_handler_unregister(void) +{ + struct sigaction sigact; + + sigact.sa_handler = SIG_DFL; + sigemptyset(&sigact.sa_mask); + if (sigaction(SIGINT, &sigact, NULL) || + sigaction(SIGTERM, &sigact, NULL) || + sigaction(SIGHUP, &sigact, NULL)) { + perror("# sigaction"); + } +} + /* * print_results_bw: the memory bandwidth results are stored in a file * @filename: file that stores the results @@ -671,39 +710,28 @@ int resctrl_val(char **benchmark_cmd, struct resctrl_val_param *param) ksft_print_msg("Benchmark PID: %d\n", bm_pid); - /* - * Register CTRL-C handler for parent, as it has to kill benchmark - * before exiting - */ - sigact.sa_sigaction = ctrlc_handler; - sigemptyset(&sigact.sa_mask); - sigact.sa_flags = SA_SIGINFO; - if (sigaction(SIGINT, &sigact, NULL) || - sigaction(SIGTERM, &sigact, NULL) || - sigaction(SIGHUP, &sigact, NULL)) { - perror("# sigaction"); - ret = errno; - goto out; - } + ret = signal_handler_register(); + if (ret) + goto out1; value.sival_ptr = benchmark_cmd; /* Taskset benchmark to specified cpu */ ret = taskset_benchmark(bm_pid, param->cpu_no); if (ret) - goto out; + goto out2; /* 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 out; + goto out2; 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 out; + goto out2; initialize_mem_bw_resctrl(param->ctrlgrp, param->mongrp, param->cpu_no, resctrl_val); @@ -718,7 +746,7 @@ int resctrl_val(char **benchmark_cmd, struct resctrl_val_param *param) sizeof(pipe_message)) { perror("# failed reading message from child process"); close(pipefd[0]); - goto out; + goto out2; } } close(pipefd[0]); @@ -727,7 +755,7 @@ int resctrl_val(char **benchmark_cmd, struct resctrl_val_param *param) if (sigqueue(bm_pid, SIGUSR1, value) == -1) { perror("# sigqueue SIGUSR1 to child"); ret = errno; - goto out; + goto out2; } /* Give benchmark enough time to fully run */ @@ -761,7 +789,9 @@ int resctrl_val(char **benchmark_cmd, struct resctrl_val_param *param) } } -out: +out2: + signal_handler_unregister(); +out1: kill(bm_pid, SIGKILL); umount_resctrlfs(); From patchwork Tue Jan 31 05:46:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaopeng Tan X-Patchwork-Id: 50618 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp2581582wrn; Mon, 30 Jan 2023 22:05:06 -0800 (PST) X-Google-Smtp-Source: AK7set9Aa168LQpd9U517q6+8DFzBZntGIoAenLaDlP6K+USScr5M2a/OMRy4OPt7LHEMBrcsXSi X-Received: by 2002:a05:6402:3705:b0:4a2:3606:83ed with SMTP id ek5-20020a056402370500b004a2360683edmr9310109edb.22.1675145105821; Mon, 30 Jan 2023 22:05:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675145105; cv=none; d=google.com; s=arc-20160816; b=tRR3N4/WPw+COoX4nNkOrfPObwBTNHrgLN50tFDBg8/x1HCxySFHBLU/oPJm6EAVl5 m2JYh8mDitOfQ/dBT87owcrAt48cOxQ8Mek6tqAkWLd3SJqXSlCprYBMlC0TPpIb8fmm UbcYkTTh4epEGuXgWjTl2XgLNIFF5JQL9hXuKWfRccI+MFSnyxRv/VdJQ3+U+BkDql+O /XvtuhouZDqoE9vXgDK+C+DXtMp6mXiD2XBDuAK04z9IsdRcz5dqTMzy5SjNrqsC2Pmz Sgv0TLspiEfz8Zudq71w3XdRqQYj6A5hp2xk+njW03fCcmaBtEzQZ+kKie1GJ/VCJGPa RHIQ== 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; bh=Do3RbqcOrnC9pJTHhjTg+G5DtBbBpxiHZwyUW2BGYiI=; b=ZEDu02R8gsoZNJNT7NQTh+mE9dqlZXp9QtPlHo5VCKEkgGwa1xmLQULaEEa5RWWYY/ aeKUfnbbSB2cCTf+Dm11n2b5v8DFDD/p7b3az1BSBARqnDyqvcy8eNITP4PqWTxSeFi+ o3iWjejYb2Ot3blY4nRYLNJRO8LX7njN3dWmouAlrzA+AaDAMZXZfFJBw2cW3K7JPHP0 Qd4IlwD7Xx7ri/HGI5ioXqZRF6WkkEy8iKEKdVo00M3E++5Hr2BlOKRC5nJzG0okm2qF 0ET1uto/vZWyGTTQCg0pI6qR8aDiv/MtV9YM/4MxxsFtRx+pXa3CsiJUHkwQv//fTw3U n9Cg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r18-20020aa7d592000000b0049e369ed236si16993722edq.260.2023.01.30.22.04.42; Mon, 30 Jan 2023 22:05:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fujitsu.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230183AbjAaFvB (ORCPT + 99 others); Tue, 31 Jan 2023 00:51:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230410AbjAaFuv (ORCPT ); Tue, 31 Jan 2023 00:50:51 -0500 Received: from esa7.hc1455-7.c3s2.iphmx.com (esa7.hc1455-7.c3s2.iphmx.com [139.138.61.252]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 84B7E3B3DE; Mon, 30 Jan 2023 21:50:42 -0800 (PST) X-IronPort-AV: E=McAfee;i="6500,9779,10606"; a="83686867" X-IronPort-AV: E=Sophos;i="5.97,259,1669042800"; d="scan'208";a="83686867" Received: from unknown (HELO oym-r3.gw.nic.fujitsu.com) ([210.162.30.91]) by esa7.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2023 14:50:39 +0900 Received: from oym-m2.gw.nic.fujitsu.com (oym-nat-oym-m2.gw.nic.fujitsu.com [192.168.87.59]) by oym-r3.gw.nic.fujitsu.com (Postfix) with ESMTP id E4611D647B; Tue, 31 Jan 2023 14:50:37 +0900 (JST) Received: from yto-om3.fujitsu.com (yto-om3.o.css.fujitsu.com [10.128.89.164]) by oym-m2.gw.nic.fujitsu.com (Postfix) with ESMTP id 1717BBF4B1; Tue, 31 Jan 2023 14:50:37 +0900 (JST) Received: from cn-r05-10.example.com (n3235113.np.ts.nmh.cs.fujitsu.co.jp [10.123.235.113]) by yto-om3.fujitsu.com (Postfix) with ESMTP id D322840003AFE; Tue, 31 Jan 2023 14:50:36 +0900 (JST) From: Shaopeng Tan To: Fenghua Yu , Reinette Chatre , Shuah Khan Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, tan.shaopeng@jp.fujitsu.com Subject: [PATCH v6 5/5] selftests/resctrl: Remove duplicate codes that clear each test result file Date: Tue, 31 Jan 2023 14:46:55 +0900 Message-Id: <20230131054655.396270-6-tan.shaopeng@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230131054655.396270-1-tan.shaopeng@jp.fujitsu.com> References: <20230131054655.396270-1-tan.shaopeng@jp.fujitsu.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756516954148044468?= X-GMAIL-MSGID: =?utf-8?q?1756516954148044468?= Before exiting each test function(run_cmt/cat/mbm/mba_test()), test results("ok","not ok") are printed by ksft_test_result() and then temporary result files are cleaned by function cmt/cat/mbm/mba_test_cleanup(). However, before running ksft_test_result(), function cmt/cat/mbm/mba_test_cleanup() has been run in each test function as follows: cmt_resctrl_val() cat_perf_miss_val() mba_schemata_change() mbm_bw_change() Remove duplicate codes that clear each test result file, while ensuring cleanup properly even when errors occur in each test. Reviewed-by: Reinette Chatre Signed-off-by: Shaopeng Tan --- tools/testing/selftests/resctrl/cmt_test.c | 7 +++---- tools/testing/selftests/resctrl/mba_test.c | 7 +++---- tools/testing/selftests/resctrl/mbm_test.c | 7 +++---- tools/testing/selftests/resctrl/resctrl_tests.c | 4 ---- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/tools/testing/selftests/resctrl/cmt_test.c b/tools/testing/selftests/resctrl/cmt_test.c index 8968e36db99d..617ee95d272d 100644 --- a/tools/testing/selftests/resctrl/cmt_test.c +++ b/tools/testing/selftests/resctrl/cmt_test.c @@ -133,13 +133,12 @@ int cmt_resctrl_val(int cpu_no, int n, char **benchmark_cmd) ret = resctrl_val(benchmark_cmd, ¶m); if (ret) - return ret; + goto out; ret = check_results(¶m, n); - if (ret) - return ret; +out: cmt_test_cleanup(); - return 0; + return ret; } diff --git a/tools/testing/selftests/resctrl/mba_test.c b/tools/testing/selftests/resctrl/mba_test.c index e3a473976d74..b948938a3b4d 100644 --- a/tools/testing/selftests/resctrl/mba_test.c +++ b/tools/testing/selftests/resctrl/mba_test.c @@ -160,13 +160,12 @@ int mba_schemata_change(int cpu_no, char *bw_report, char **benchmark_cmd) ret = resctrl_val(benchmark_cmd, ¶m); if (ret) - return ret; + goto out; ret = check_results(); - if (ret) - return ret; +out: mba_test_cleanup(); - return 0; + return ret; } diff --git a/tools/testing/selftests/resctrl/mbm_test.c b/tools/testing/selftests/resctrl/mbm_test.c index 6d550f012829..040ca1f9c173 100644 --- a/tools/testing/selftests/resctrl/mbm_test.c +++ b/tools/testing/selftests/resctrl/mbm_test.c @@ -134,13 +134,12 @@ int mbm_bw_change(int span, int cpu_no, char *bw_report, char **benchmark_cmd) ret = resctrl_val(benchmark_cmd, ¶m); if (ret) - return ret; + goto out; ret = check_results(span); - if (ret) - return ret; +out: mbm_test_cleanup(); - return 0; + return ret; } diff --git a/tools/testing/selftests/resctrl/resctrl_tests.c b/tools/testing/selftests/resctrl/resctrl_tests.c index df0d8d8526fc..8732cf736528 100644 --- a/tools/testing/selftests/resctrl/resctrl_tests.c +++ b/tools/testing/selftests/resctrl/resctrl_tests.c @@ -88,7 +88,6 @@ static void run_mbm_test(bool has_ben, char **benchmark_cmd, int span, ksft_test_result(!res, "MBM: bw change\n"); if ((get_vendor() == ARCH_INTEL) && res) ksft_print_msg("Intel MBM may be inaccurate when Sub-NUMA Clustering is enabled. Check BIOS configuration.\n"); - mbm_test_cleanup(); } static void run_mba_test(bool has_ben, char **benchmark_cmd, int span, @@ -107,7 +106,6 @@ static void run_mba_test(bool has_ben, char **benchmark_cmd, int span, sprintf(benchmark_cmd[1], "%d", span); res = mba_schemata_change(cpu_no, bw_report, benchmark_cmd); ksft_test_result(!res, "MBA: schemata change\n"); - mba_test_cleanup(); } static void run_cmt_test(bool has_ben, char **benchmark_cmd, int cpu_no) @@ -126,7 +124,6 @@ static void run_cmt_test(bool has_ben, char **benchmark_cmd, int cpu_no) ksft_test_result(!res, "CMT: test\n"); if ((get_vendor() == ARCH_INTEL) && res) ksft_print_msg("Intel CMT may be inaccurate when Sub-NUMA Clustering is enabled. Check BIOS configuration.\n"); - cmt_test_cleanup(); } static void run_cat_test(int cpu_no, int no_of_bits) @@ -142,7 +139,6 @@ static void run_cat_test(int cpu_no, int no_of_bits) res = cat_perf_miss_val(cpu_no, no_of_bits, "L3"); ksft_test_result(!res, "CAT: test\n"); - cat_test_cleanup(); } int main(int argc, char **argv)