From patchwork Wed Feb 15 08:32:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaopeng Tan X-Patchwork-Id: 57425 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp74906wrn; Wed, 15 Feb 2023 00:41:39 -0800 (PST) X-Google-Smtp-Source: AK7set8rSnmiINQ7Du7NmEtmX2QyczVPV7ZIWYKoTJOJgVm78rja128JPTe4PzE0DbrL/5RZzsg1 X-Received: by 2002:a05:6a20:e618:b0:bf:58d1:ce86 with SMTP id my24-20020a056a20e61800b000bf58d1ce86mr2273300pzb.5.1676450499621; Wed, 15 Feb 2023 00:41:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676450499; cv=none; d=google.com; s=arc-20160816; b=cuKoyIWssT5jXEFSoobFCtuj9Y+sEi88niXIJOVqrLy/eNzof3MJq1Q5a3RruUMXYx EEflnJ1mmGHHAW1ElM/PSdopWRDJSMZlFnSK7H0oVbIbG2pOkqDcEEQTl1t+hxiH3a+/ 3egSi7oFJBHYbHmUGdlspY4GU1vNH8J5HYoxFiCTZ+Rb5eVI5ixB6riV3yhWsCSEQDwL 6rErlbJO0jAmksvg1I0+IehlwJx6/vqwwrcwM+yyzgXgYb9O1ofV2wiYG8XlbRo7Nx0c g/vdKTnGnHXczw9nqVgPzSrZsbTFs8L+smh6Eo/B+G8C28iv9LyetNaxhj3SjTo3b72g YbnQ== 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=myQ/tOS5DLODPRIWRtZFifFS/Ry+O0LbvPKqAa1C22TA5yQm6o8a4TN/I5GIcXPGzq HtfwraXCHriA1vUqYuJTg5IolP8N80L6o5FYGMg02WXT/7FlWwu0MQWiQSfV12gLHahe WEK7s8m1sYn5wLm3UpZ/Bb3a5pIZ25NC2rkIOClHnT/fM3ncdUz0Nsuaq10/1dwpfb0v DL5cQlaEyhzCv3JX6fcs4+yC+BstH2eKTCOpbz8cUCSjvuiDr64S2ZZ0eQeiGULyTtVK 969fsisHlRiuECAW3ToTtW44Kn30ymCWSr2CX2a2LUnZtrpa9+Jml34EqAmcZwWH6G8H AFjA== 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 z25-20020a63b919000000b004fb90f10ac7si11451373pge.812.2023.02.15.00.41.27; Wed, 15 Feb 2023 00:41:39 -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 S233099AbjBOIgo (ORCPT + 99 others); Wed, 15 Feb 2023 03:36:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36782 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233550AbjBOIgl (ORCPT ); Wed, 15 Feb 2023 03:36:41 -0500 Received: from esa1.hc1455-7.c3s2.iphmx.com (esa1.hc1455-7.c3s2.iphmx.com [207.54.90.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2DB502A992; Wed, 15 Feb 2023 00:36:40 -0800 (PST) X-IronPort-AV: E=McAfee;i="6500,9779,10621"; a="106636227" X-IronPort-AV: E=Sophos;i="5.97,299,1669042800"; d="scan'208";a="106636227" Received: from unknown (HELO yto-r2.gw.nic.fujitsu.com) ([218.44.52.218]) by esa1.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2023 17:36:38 +0900 Received: from yto-m2.gw.nic.fujitsu.com (yto-nat-yto-m2.gw.nic.fujitsu.com [192.168.83.65]) by yto-r2.gw.nic.fujitsu.com (Postfix) with ESMTP id 5F4EBD619B; Wed, 15 Feb 2023 17:36:35 +0900 (JST) Received: from yto-om3.fujitsu.com (yto-om3.o.css.fujitsu.com [10.128.89.164]) by yto-m2.gw.nic.fujitsu.com (Postfix) with ESMTP id ABCACD67D9; Wed, 15 Feb 2023 17:36:34 +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 81ACD400C0299; Wed, 15 Feb 2023 17:36: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 v8 1/6] selftests/resctrl: Fix set up schemata with 100% allocation on first run in MBM test Date: Wed, 15 Feb 2023 17:32:25 +0900 Message-Id: <20230215083230.3155897-2-tan.shaopeng@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230215083230.3155897-1-tan.shaopeng@jp.fujitsu.com> References: <20230215083230.3155897-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?1757885759437266149?= X-GMAIL-MSGID: =?utf-8?q?1757885759437266149?= 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 Wed Feb 15 08:32:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaopeng Tan X-Patchwork-Id: 57426 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp74938wrn; Wed, 15 Feb 2023 00:41:47 -0800 (PST) X-Google-Smtp-Source: AK7set9TnNHyfPkRzIJKZaJNTxCLicSdJakx9k5Di4WutIWDYkul6RYVaxMOXlI30QWy38RHnQq3 X-Received: by 2002:aa7:96fc:0:b0:5a8:cf20:e35e with SMTP id i28-20020aa796fc000000b005a8cf20e35emr963128pfq.3.1676450507229; Wed, 15 Feb 2023 00:41:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676450507; cv=none; d=google.com; s=arc-20160816; b=W8RaWgBNgCnL/Y/uQoCQexaVsOXYy0IB2OEIjvuJNaa89kT+OXQuelsFk4k77yXkK6 UhfN7rhV+tkGnbypBUIu3w4H//ODslxzqq4tMLbM5zz23UXiJrqF3bls+TRn/Wsb3xmg mVYHPzaoZjer+4s6rBLhXaaTAU2o1j6EB9oCpfFhyGTfJVlUW1EPQnhKoNwZA2VtYwJ6 VvNtMXWT+X+L0nT06eAcz8cJMGHeIDhBxAipKKgKSF3QZwAew1kn5HbBmmzEdvGymu6V eAadRkw0viQoYXYODkzBhJluyejv5MUEg3Gi9J1AYicRhjBbFGqzbQQbzUXgLlD1h25g 39bA== 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=i0/8mtOMAmckBn/6l/V7JIqHnaHysaOxbhgZnZJtOaQJtWHSpNg6O5yKAOqj/Xkal3 TV52arn/hE3oD4JBn2d4XfyimYajQM7GeaHWdtmhZw+hYEM73wdidZeu8yWr0cRbGLZO O2pEEUzWPLUE7nbgFVzZT6jDcAq4aBvqxG3gz2pj3cfCGwV7M3sAR3uINIohP7GmJ263 WHi60mwkcULYWVZzGSLL4qZORU2zaFR1G7O+DdyKJ0HHwFNDqmER81TeLdN/yaJ0W/3v EC8kgvh4VLdCQYWEb/EbesUUAfpE51VqWfDlpbirrsRxF7ibCtBCTDHpTbqFXULXlas6 j+2g== 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 7-20020a620507000000b005a85dd25ce3si16571773pff.132.2023.02.15.00.41.34; Wed, 15 Feb 2023 00:41:47 -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 S233980AbjBOIgr (ORCPT + 99 others); Wed, 15 Feb 2023 03:36:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36788 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233786AbjBOIgm (ORCPT ); Wed, 15 Feb 2023 03:36:42 -0500 Received: from esa2.hc1455-7.c3s2.iphmx.com (esa2.hc1455-7.c3s2.iphmx.com [207.54.90.48]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2421725B9C; Wed, 15 Feb 2023 00:36:40 -0800 (PST) X-IronPort-AV: E=McAfee;i="6500,9779,10621"; a="106671294" X-IronPort-AV: E=Sophos;i="5.97,299,1669042800"; d="scan'208";a="106671294" Received: from unknown (HELO yto-r3.gw.nic.fujitsu.com) ([218.44.52.219]) by esa2.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2023 17:36:39 +0900 Received: from yto-m1.gw.nic.fujitsu.com (yto-nat-yto-m1.gw.nic.fujitsu.com [192.168.83.64]) by yto-r3.gw.nic.fujitsu.com (Postfix) with ESMTP id 5462BC3F94; Wed, 15 Feb 2023 17:36:36 +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 AC7D7CFF98; Wed, 15 Feb 2023 17:36: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 851C2400C029A; Wed, 15 Feb 2023 17:36:35 +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 v8 2/6] selftests/resctrl: Return MBA check result and make it to output message Date: Wed, 15 Feb 2023 17:32:26 +0900 Message-Id: <20230215083230.3155897-3-tan.shaopeng@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230215083230.3155897-1-tan.shaopeng@jp.fujitsu.com> References: <20230215083230.3155897-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?1757885766989604397?= X-GMAIL-MSGID: =?utf-8?q?1757885766989604397?= 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 Wed Feb 15 08:32:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaopeng Tan X-Patchwork-Id: 57427 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp75035wrn; Wed, 15 Feb 2023 00:42:03 -0800 (PST) X-Google-Smtp-Source: AK7set/fJtJzN1//BeRAvuhdtSqZoXZFWOxnC372lYHO9Fom/gAjmRgfV7p8YeFnWWE6gWqBa/Km X-Received: by 2002:a05:6a21:789c:b0:c6:b962:dd08 with SMTP id bf28-20020a056a21789c00b000c6b962dd08mr1984688pzc.13.1676450523079; Wed, 15 Feb 2023 00:42:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676450523; cv=none; d=google.com; s=arc-20160816; b=qm25NepPofHL7tizhE5R8ZTjZvKEniiWzFGwL3BxpkXHF6CU1JmeJoIe1Wgj4syQCU nasmNxtvIc0PnUaZlnzTJhHd/VyIsYXiJodo4kXY20qWfwGjvUzk1x4Fo+JAUPY+A/43 eULQM0U6ZsRjTXjHOdw2UdY13CQ7qToANocQXsQg2ruj45KTZo74Zd1Pu5UUWQi8fAt5 fz1lFTrimlfCmRNM2PKP3NRnncTxVvzVf8+Oj+x1MyIi/wH2ltQ52WXCqU2aDkZnTCtY GfE7I4XOCyd9l5P604FOjkguGDu5T6QKz5rMmvHRnA249xXw/jqTPsboM/DJ/WGOeuF4 y80g== 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=VYrh8+UmFJ7kOACDcLyB2iw2AEvtQ/0GBx8E/fYUNubRidQZXPlAJyLBTWFjwss9TO hYFjImgVh3UB9ijI3/L1P1ujt8Azj1Hjty16oc9w/b/21QRoTlc9t1bDzF858/5wz6pG OvwiU9sGT37CavCn8ejL7/e8BN7CyV3loLBOK4yGWNErF4J0AIWmQtYDBm6Uc36LjVU5 y+SpceEEn+yyA0MHAciqgvu0ljeFmP4eAmZRHoRdJoadKAqIEk6+YeNPrMbda3wXudrL ZttYaPTj+dEjgqb3DCx2D7+oAIQ5x6Tiysg4AfYSVM/vQgAK+GyitkQlmvwyMQ+7wfsZ wOsQ== 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 w186-20020a6382c3000000b004fb8a4d2d48si5619490pgd.560.2023.02.15.00.41.50; Wed, 15 Feb 2023 00:42:03 -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 S233992AbjBOIgt (ORCPT + 99 others); Wed, 15 Feb 2023 03:36:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36838 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233968AbjBOIgn (ORCPT ); Wed, 15 Feb 2023 03:36:43 -0500 Received: from esa1.hc1455-7.c3s2.iphmx.com (esa1.hc1455-7.c3s2.iphmx.com [207.54.90.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 29DDA23C79; Wed, 15 Feb 2023 00:36:41 -0800 (PST) X-IronPort-AV: E=McAfee;i="6500,9779,10621"; a="106636232" X-IronPort-AV: E=Sophos;i="5.97,299,1669042800"; d="scan'208";a="106636232" Received: from unknown (HELO oym-r3.gw.nic.fujitsu.com) ([210.162.30.91]) by esa1.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2023 17:36:40 +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 B85CDD647A; Wed, 15 Feb 2023 17:36:37 +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 C0C64D6540; Wed, 15 Feb 2023 17:36:36 +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 83BE7400C0298; Wed, 15 Feb 2023 17:36: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, Shuah Khan Subject: [PATCH v8 3/6] selftests/resctrl: Flush stdout file buffer before executing fork() Date: Wed, 15 Feb 2023 17:32:27 +0900 Message-Id: <20230215083230.3155897-4-tan.shaopeng@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230215083230.3155897-1-tan.shaopeng@jp.fujitsu.com> References: <20230215083230.3155897-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?1757885783466141225?= X-GMAIL-MSGID: =?utf-8?q?1757885783466141225?= 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 Wed Feb 15 08:32:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaopeng Tan X-Patchwork-Id: 57428 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp75212wrn; Wed, 15 Feb 2023 00:42:40 -0800 (PST) X-Google-Smtp-Source: AK7set8KZBZ6VcE6CsRbT3tim6M0H0TgK+VSzqqIWDIR3eLHXv3/M5G1CFfhMDLkDUcMZfxU5Yy5 X-Received: by 2002:a05:6a20:914b:b0:c6:babf:e49a with SMTP id x11-20020a056a20914b00b000c6babfe49amr1209460pzc.48.1676450560042; Wed, 15 Feb 2023 00:42:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676450560; cv=none; d=google.com; s=arc-20160816; b=joT0yCOKjG9SFaw6+syp1pO8YDHP9vSAtuAxdna/Z6cbECsZ7JlhmA7KD1VP3Hh4Ud cyuz+jNE19pgYMKhBi6ny1T+DYqBDtNd0b+p1Qz3sZ5j6WrOFP/FaTtJ782/U1cfFMXe CtSzeHLRSFwoUH8rhuJJGMGt+gKgJuazyrW1HNoIM27S8e7Z76WSvAeaCdUmUw9ueWiY ZArOWvcPpgZm9DuFlLGur3vY95Vm+ymOKLunGvqcAgokUZZB5/MGhzV5L9lqn5OZLv2Z 4jmxaCZQEXH41Krqebar/RWLrl1rVwarc6oiY1xLRy888I+Wqx5Hbjw1h8Br1B3B77dJ ZXig== 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=wYTzPhAoPASzVpquX795fAXLMs/YFWC7OVR2RczSzdI=; b=y4PpwPU3jOcSyu4UayEC3qTTyZlTuGJnOYqE+FKZDZXzdA991fI7RgXt2q8riuw+qv UFXcpqVnkDuP2KdB6LeCWItNSZRLX7dLJ2I9ilsKDGzGTMnagADCi24i7//U9XIN53Pi lANpzXC8SmBuHQTB8fAlOcFjl0Ze8K4DSktwhtmsNiqrjKy5Z2G8FEWXVJKoAZYWGyD0 KrVrju3qevG0HXw1pyZ48XsxEll8PMgUATShQKFC537I1g96fE61Q0JmTOJV6P6c0bRo +SNlo572PvHgrTp5qED0WvT+PDPJk9dxeifdlajgZb7AJGXBW4daWBfC0saGMRI/cCxP Nh6A== 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 y7-20020aa793c7000000b005659a66d652si16703246pff.229.2023.02.15.00.42.27; Wed, 15 Feb 2023 00:42:40 -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 S233807AbjBOIgx (ORCPT + 99 others); Wed, 15 Feb 2023 03:36:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233971AbjBOIgp (ORCPT ); Wed, 15 Feb 2023 03:36:45 -0500 Received: from esa6.hc1455-7.c3s2.iphmx.com (esa6.hc1455-7.c3s2.iphmx.com [68.232.139.139]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 274AA25B9C; Wed, 15 Feb 2023 00:36:42 -0800 (PST) X-IronPort-AV: E=McAfee;i="6500,9779,10621"; a="107664990" X-IronPort-AV: E=Sophos;i="5.97,299,1669042800"; d="scan'208";a="107664990" Received: from unknown (HELO yto-r2.gw.nic.fujitsu.com) ([218.44.52.218]) by esa6.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2023 17:36:40 +0900 Received: from yto-m4.gw.nic.fujitsu.com (yto-nat-yto-m4.gw.nic.fujitsu.com [192.168.83.67]) by yto-r2.gw.nic.fujitsu.com (Postfix) with ESMTP id 42986D6246; Wed, 15 Feb 2023 17:36:38 +0900 (JST) Received: from yto-om3.fujitsu.com (yto-om3.o.css.fujitsu.com [10.128.89.164]) by yto-m4.gw.nic.fujitsu.com (Postfix) with ESMTP id 90B46D3F21; Wed, 15 Feb 2023 17:36: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 69252400C0299; Wed, 15 Feb 2023 17:36:37 +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 v8 4/6] selftests/resctrl: Cleanup properly when an error occurs in CAT test Date: Wed, 15 Feb 2023 17:32:28 +0900 Message-Id: <20230215083230.3155897-5-tan.shaopeng@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230215083230.3155897-1-tan.shaopeng@jp.fujitsu.com> References: <20230215083230.3155897-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?1757885822756954602?= X-GMAIL-MSGID: =?utf-8?q?1757885822756954602?= After creating a child process with fork() in CAT test, if an error occurs when parent process runs cat_val() or check_results(), the child process will not be killed and also resctrlfs is not unmounted. Also if an error occurs when child process runs cat_val() or check_results(), the parent process will wait for the pipe message from the child process which will never be sent by the child process and the parent process cannot proceed to unmount resctrlfs. Synchronize the exits between the parent and child. An error could occur whether in parent process or child process. The parent process always kills the child process and runs umount_resctrlfs(). The child process always waits to be killed by the parent process. Reviewed-by: Reinette Chatre Signed-off-by: Shaopeng Tan --- tools/testing/selftests/resctrl/cat_test.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/tools/testing/selftests/resctrl/cat_test.c b/tools/testing/selftests/resctrl/cat_test.c index 6a8306b0a109..477b62dac546 100644 --- a/tools/testing/selftests/resctrl/cat_test.c +++ b/tools/testing/selftests/resctrl/cat_test.c @@ -186,23 +186,20 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type) 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) @@ -226,5 +223,5 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type) if (bm_pid) umount_resctrlfs(); - return 0; + return ret; } From patchwork Wed Feb 15 08:32:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaopeng Tan X-Patchwork-Id: 57431 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp75565wrn; Wed, 15 Feb 2023 00:43:44 -0800 (PST) X-Google-Smtp-Source: AK7set9oIwp3UnYYTvzEsKj0xCrR+p1mWI5lydlSrTUsl3r4Chl88RiP1zLa0mHgyzZ9SNLmpsXS X-Received: by 2002:a17:906:bce7:b0:8b1:28a0:e7ea with SMTP id op7-20020a170906bce700b008b128a0e7eamr1156720ejb.71.1676450624615; Wed, 15 Feb 2023 00:43:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676450624; cv=none; d=google.com; s=arc-20160816; b=TBDgwZDZeevQc1FJUWLNy+1Bnow25bBplzRraWKPKmRZ+9lIWYamtIJ1o2yn49EbRf p8R596dHx2BurdHokdOlDhaMOEg+cKxs2QiZt9U2WrWFLt3o7MlLh4ZOYSZW+06MlLUW iC+QNkD1LTI+soPOTwgtkgI6Or0YHTLDCsXnC+6PHnLllGKsSYk4yXrXVzGI3WTusowv B7rFVjmsFJ60jIYONleIXAXhQXGQ4mnONGCyyLU8IjJ7IhizOi7DNA42uZJ0M2gVwLd1 /BX91l2akCfGub6Vvg4uutBHtIU9M0M3BGAsMfDYhww9wrmbJmiva2wIorHO+Jw1H2/O aNSQ== 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=/Sr6+IRuG/V5zCO0SS2FPJCk4kTTEyJcM2ZEOKlHhZA=; b=Xw8qUs0tVi+xfcEzLqAUNECAtlFsfK6MYx40TyWQR1R1TpVTSVpm8+YvcuKYy7CK2q WZ6ugicjNRU8TWI9lbwr/5iFHP2EYPQ5PXY+Jn/GVwpaLxYY8WGuoiP8vlJpMOlnDZ/7 aEzRf1ich0/63xOeXpeYENmj4XZ/wuN5WaFNWrwgzRdgVbrN7lSyTv9UMZBfcRfIIsKk cDOHnHslIOidgV31JaQkDdgIAS+9cwOXbONmB7zp2a38+iEIpElOkMiS6ssfYg4MwHSn O+AazGD7jMTCNsF0KyJlE7d0p7+ZVJea2+NrCN306c94/qbp4Fj9g7qxFgTtnNtU0T3n 00Qg== 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 15-20020a17090602cf00b008b143c34074si1872584ejk.717.2023.02.15.00.43.20; Wed, 15 Feb 2023 00:43: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 S233971AbjBOIgz (ORCPT + 99 others); Wed, 15 Feb 2023 03:36:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36986 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233983AbjBOIgr (ORCPT ); Wed, 15 Feb 2023 03:36:47 -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 DC44336FDA; Wed, 15 Feb 2023 00:36:44 -0800 (PST) X-IronPort-AV: E=McAfee;i="6500,9779,10621"; a="106692252" X-IronPort-AV: E=Sophos;i="5.97,299,1669042800"; d="scan'208";a="106692252" Received: from unknown (HELO yto-r4.gw.nic.fujitsu.com) ([218.44.52.220]) by esa4.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2023 17:36:42 +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 53D1AD4F62; Wed, 15 Feb 2023 17:36:39 +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 A8364CFF91; Wed, 15 Feb 2023 17:36:38 +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 809BD400C0298; Wed, 15 Feb 2023 17:36:38 +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, Ilpo Jarvinen Subject: [PATCH v8 5/6] selftests/resctrl: Commonize the signal handler register/unregister for all tests Date: Wed, 15 Feb 2023 17:32:29 +0900 Message-Id: <20230215083230.3155897-6-tan.shaopeng@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230215083230.3155897-1-tan.shaopeng@jp.fujitsu.com> References: <20230215083230.3155897-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?1757885890062532581?= X-GMAIL-MSGID: =?utf-8?q?1757885890062532581?= After creating a child process with fork() in CAT test, if a signal such as SIGINT is received, the parent process will be terminated immediately, and therefore 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. To reuse the signal handler to kill 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. Reviewed-by: Ilpo Jarvinen Reviewed-by: Reinette Chatre Signed-off-by: Shaopeng Tan --- tools/testing/selftests/resctrl/cat_test.c | 9 ++- tools/testing/selftests/resctrl/fill_buf.c | 14 ---- tools/testing/selftests/resctrl/resctrl.h | 2 + tools/testing/selftests/resctrl/resctrl_val.c | 66 ++++++++++++++----- 4 files changed, 58 insertions(+), 33 deletions(-) diff --git a/tools/testing/selftests/resctrl/cat_test.c b/tools/testing/selftests/resctrl/cat_test.c index 477b62dac546..0bdf0305a506 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,6 +180,12 @@ 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); @@ -217,8 +222,10 @@ 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(); if (bm_pid) umount_resctrlfs(); 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..7c8d5c25e6da 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-Value 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; + ret = signal_handler_register(); + if (ret) goto out; - } value.sival_ptr = benchmark_cmd; /* Taskset benchmark to specified cpu */ ret = taskset_benchmark(bm_pid, param->cpu_no); if (ret) - goto out; + goto unregister; /* 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 unregister; 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 unregister; 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 unregister; } } 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 unregister; } /* Give benchmark enough time to fully run */ @@ -761,6 +789,8 @@ int resctrl_val(char **benchmark_cmd, struct resctrl_val_param *param) } } +unregister: + signal_handler_unregister(); out: kill(bm_pid, SIGKILL); umount_resctrlfs(); From patchwork Wed Feb 15 08:32:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaopeng Tan X-Patchwork-Id: 57430 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp75463wrn; Wed, 15 Feb 2023 00:43:26 -0800 (PST) X-Google-Smtp-Source: AK7set+2Wn0Y6AJ8GNDtP9ZcW7CIwag8tlouM4qjxq8SI4TioLjJzvwsnVF38B7ACRdWBb0IESNS X-Received: by 2002:a17:90b:3b8a:b0:233:c1b5:31f1 with SMTP id pc10-20020a17090b3b8a00b00233c1b531f1mr1943983pjb.23.1676450605975; Wed, 15 Feb 2023 00:43:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676450605; cv=none; d=google.com; s=arc-20160816; b=scz+suXq62OmqnT2/eFIXaVU9lysm/Fwly5PY7Iv5MkC5BVLjLMmw6474fz3e6XuM7 4WCTN01UJLvJayZTT+YaOXydOpBko8dyiQDElOQdcvWXsUB6zMSqicdP7UDdDOzQtIVS UtBSyhrOoxJBTfmnOMVEWlPa3sHxn/TaEBBAliC0IXzYUfsgd47PL8yFXKLdlrUU4nC+ dOUJ6LWQB0HIuzs8QNtz5+8sEVTHnDXnpEmmBO16anaPYBn9lmyUhtVuguzrWfw9wHIb sv0AlMWwQJ4QUnYJP6UXW+gMr3tnJlzI710DuNdg+c/bRw3VFnKV2rNM9x77XhheQQ0z nHbQ== 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=ceY6FT82g0mTYhi/kCuP1Id8kFeXObq43OXqaX42vXGV69On00V4bftTEun1uI5+JN anLLvBPQMiwcVHb0kigNaeMmARPDq8mv7eMmo68va48PmAOUsYN17RTBu1pTmUV+MqT7 FHBBWui97ejOw7O7FEGrDgC12mEsflkZynKM7QG11PFzOHdFeisylKEuBIW+gYoIz/HN GI9ADXzQrMbojBdqFDXAYgu7oFDgc7NV/W7F7XuKpo2Ez98N142cSB/WVMFcE75JjEUb IwgsSvHQ30ky+udKYhoMdbdCzRd6w0ocWE6z7jZPCIsRl2rBjroFBF2SE+tdWuqtuCZg OpJg== 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 bk2-20020a17090b080200b00229661af23fsi1307293pjb.110.2023.02.15.00.43.13; Wed, 15 Feb 2023 00:43:25 -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 S234015AbjBOIg5 (ORCPT + 99 others); Wed, 15 Feb 2023 03:36:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233988AbjBOIgt (ORCPT ); Wed, 15 Feb 2023 03:36:49 -0500 Received: from esa8.hc1455-7.c3s2.iphmx.com (esa8.hc1455-7.c3s2.iphmx.com [139.138.61.253]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9984F2B2AB; Wed, 15 Feb 2023 00:36:46 -0800 (PST) X-IronPort-AV: E=McAfee;i="6500,9779,10621"; a="94804676" X-IronPort-AV: E=Sophos;i="5.97,299,1669042800"; d="scan'208";a="94804676" Received: from unknown (HELO oym-r2.gw.nic.fujitsu.com) ([210.162.30.90]) by esa8.hc1455-7.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2023 17:36:43 +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 7DEB3D4322; Wed, 15 Feb 2023 17:36:41 +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 BC0E4D8BCE; Wed, 15 Feb 2023 17:36:40 +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 875F7400C0299; Wed, 15 Feb 2023 17:36:40 +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 v8 6/6] selftests/resctrl: Remove duplicate codes that clear each test result file Date: Wed, 15 Feb 2023 17:32:30 +0900 Message-Id: <20230215083230.3155897-7-tan.shaopeng@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230215083230.3155897-1-tan.shaopeng@jp.fujitsu.com> References: <20230215083230.3155897-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?1757885870623118098?= X-GMAIL-MSGID: =?utf-8?q?1757885870623118098?= 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)