Received: by 2002:a05:7412:b10a:b0:f3:1519:9f41 with SMTP id az10csp828395rdb; Thu, 30 Nov 2023 22:22:40 -0800 (PST) X-Google-Smtp-Source: AGHT+IFFnOSqmTqgSylrRb9AmrglHIWakIxnrws19qEBa/kekUOvx0GCynqh3vR6IkRuzcbaZRKa X-Received: by 2002:a17:90b:3e86:b0:285:93f0:b2a4 with SMTP id rj6-20020a17090b3e8600b0028593f0b2a4mr25661270pjb.7.1701411760292; Thu, 30 Nov 2023 22:22:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701411760; cv=none; d=google.com; s=arc-20160816; b=p0Tq/pYJKsRwzeHmziQf3B15awBAImuabu75WPperuuF6gpLdmdvBkYA7lobuG3vmC J1L2+GF28yDC79uWgawgb6mHJA6eG8CbJzxqjqce4ZWP42uKNxZ5zW7kSr45z6j8auhp 0TPCvF5L8ZmbMOp1MbsSbTayN7dOUj8aNwGZ0bFGLMYJ0RqgXnBmU55gWrwGOpPXxfj4 dXF1Lrd2wIv8r6UaoHtiX9rqD+ccMcru/hvLPA7Ud67Pe5BNUTjq5hLGFRmPhSmnEk9h dYKtFN6TwxxMJOO5fWworZgiYYvq8VFT10FRxb/en0R8Yehf3P3uqJtukcc5bKvlXlNC 0x+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:to:references:message-id :content-transfer-encoding:cc:date:in-reply-to:from:subject :mime-version:dkim-signature; bh=peQl/tDK1iN+/COEagrUEUhe4ofvOLFew080LgiG+W8=; fh=5JuhpjpyoM167l6XR7Z62vhcPNRWOXyVvQuZOBN2+k4=; b=Zo16ilMn/MTHfCpMOrpZ7B6+Ep9e21vvChMtc+xyNHUaSQ9W1LRpjOYkdRa/mKIjCs 7sn8/OjsVmCncY3QqalGQ8vNH8XWN2DUnbhvDR2zkSoH1WrFeauPgWHvpSfmx8/r29Yg /9XHJT7KfTSmSasBIXDeByS4RAMF3ka5DK887zcFMSBkt6qkDEza49k3iP07QrYSMx30 sy8VGI0wLNWJksNkR9Kr4sHHe1NIFs/nmwQJzyLelisWrKbJrytFVu4EqxWwIgf9s7lr rMBH/xpu7mP6aD31Sr7ko4RFDdpaqjGA6kkUzjNDCi9dOTXbSx/3EYwphGXC4fFD0tvm FYZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b="igh+I/vU"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id cm5-20020a17090afa0500b002864c435447si1729533pjb.126.2023.11.30.22.22.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Nov 2023 22:22:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b="igh+I/vU"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 9F56180964FB; Thu, 30 Nov 2023 22:21:07 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1377474AbjLAGUh (ORCPT + 99 others); Fri, 1 Dec 2023 01:20:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52860 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229459AbjLAGUe (ORCPT ); Fri, 1 Dec 2023 01:20:34 -0500 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 73DD61703; Thu, 30 Nov 2023 22:20:40 -0800 (PST) Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3B15vO4M030978; Fri, 1 Dec 2023 06:20:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=content-type : mime-version : subject : from : in-reply-to : date : cc : content-transfer-encoding : message-id : references : to; s=pp1; bh=peQl/tDK1iN+/COEagrUEUhe4ofvOLFew080LgiG+W8=; b=igh+I/vUd/WKY0WexQ3S8/E78NP99zxcQ/UgBQ87yugNpmPa/itcbs4HEC6YJx52XNcK Jy/g2222XGBaQ7kazIn0tMRoyw/UMaqFGyeOVEdietj8oJNQtLVZ3xknL26Do7m4ZdJ8 LALt9Ipqi/2g/jjKZl9cNdivyUxxcZEpm6zMYB5rN2dqT3FeAiY6BA8wUkfZrlS7QhJs ZWvjFI1qTOMYUBcjteysSnlog1rlHm87tDKE0OojwmmgJQWcWjEcaLuEstTXWtfDBRwD OSsKAk0lAsMJ19cO0KfVuSXemToi3fQZ1VzJO+GOClAQ9ezu/pdyGniNeMtRG9lfipli hA== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3uq9stgedn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 01 Dec 2023 06:20:18 +0000 Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3B16C8Zx005865; Fri, 1 Dec 2023 06:20:17 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3uq9stgeda-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 01 Dec 2023 06:20:17 +0000 Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3B16Itwu010627; Fri, 1 Dec 2023 06:20:16 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3ukun03gxs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 01 Dec 2023 06:20:16 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3B16KEK221824202 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 1 Dec 2023 06:20:14 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id ED43B20040; Fri, 1 Dec 2023 06:20:13 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 53A2020049; Fri, 1 Dec 2023 06:20:11 +0000 (GMT) Received: from smtpclient.apple (unknown [9.109.214.114]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTPS; Fri, 1 Dec 2023 06:20:11 +0000 (GMT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.200.91.1.1\)) Subject: Re: [PATCH v2 1/4] perf build: Shellcheck support for OUTPUT directory From: Athira Rajeev In-Reply-To: <20231129213428.2227448-1-irogers@google.com> Date: Fri, 1 Dec 2023 11:49:59 +0530 Cc: Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , Kan Liang , LKML , linux-perf-users Content-Transfer-Encoding: quoted-printable Message-Id: References: <20231129213428.2227448-1-irogers@google.com> To: Ian Rogers , Arnaldo Carvalho de Melo , Namhyung Kim , James Clark X-Mailer: Apple Mail (2.3774.200.91.1.1) X-TM-AS-GCONF: 00 X-Proofpoint-GUID: tFQNelDEBth-gCDYvq9y_3KBuOz6ndTs X-Proofpoint-ORIG-GUID: puxtTMiz6HJwvQWJIE4TPxfaxbJ7LE0T X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-01_03,2023-11-30_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 priorityscore=1501 lowpriorityscore=0 mlxscore=0 malwarescore=0 phishscore=0 bulkscore=0 impostorscore=0 spamscore=0 adultscore=0 suspectscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2312010036 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Thu, 30 Nov 2023 22:21:07 -0800 (PST) > On 30-Nov-2023, at 3:04=E2=80=AFAM, Ian Rogers = wrote: >=20 > Migrate Makefile.tests to Build so that variables like rule_mkdir are > defined via Makefile.build (needed so the output directory can be > created). This requires SHELLCHECK being exported and the clean rule > tweaking to remove the files in find. >=20 > Change find "-perm -o=3Dx" as it was failing on my Debian based Linux > kernel tree, switch to using "-executable". >=20 > Adding a filename prefix of "." to the shellcheck log files is a pain > and error prone in make, remove this prefix and just add the > shellcheck log files to .gitignore. >=20 > Fix the command echo so that running the test is displayed. >=20 > Fixes: 1638b11ef815 ("perf tools: Add perf binary dependent rule for = shellcheck log in Makefile.perf") > Signed-off-by: Ian Rogers Hi Ian, Changes looks good to me. Tested with make, make clean, make with shellcheck error, make with = NO_SHELLCHECK Reviewed-by: Athira Rajeev Thanks Athira > --- > tools/perf/.gitignore | 3 +++ > tools/perf/Makefile.perf | 30 ++++++++++-------------------- > tools/perf/tests/Build | 14 ++++++++++++++ > tools/perf/tests/Makefile.tests | 22 ---------------------- > 4 files changed, 27 insertions(+), 42 deletions(-) > delete mode 100644 tools/perf/tests/Makefile.tests >=20 > diff --git a/tools/perf/.gitignore b/tools/perf/.gitignore > index ee5c14f3b8b1..f5b81d439387 100644 > --- a/tools/perf/.gitignore > +++ b/tools/perf/.gitignore > @@ -39,6 +39,9 @@ trace/beauty/generated/ > pmu-events/pmu-events.c > pmu-events/jevents > pmu-events/metric_test.log > +tests/shell/*.shellcheck_log > +tests/shell/coresight/*.shellcheck_log > +tests/shell/lib/*.shellcheck_log > feature/ > libapi/ > libbpf/ > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf > index 824cbc0af7d7..1ab2a908f240 100644 > --- a/tools/perf/Makefile.perf > +++ b/tools/perf/Makefile.perf > @@ -229,8 +229,15 @@ else > force_fixdep :=3D $(config) > endif >=20 > +# Runs shellcheck on perf test shell scripts > +ifeq ($(NO_SHELLCHECK),1) > + SHELLCHECK :=3D > +else > + SHELLCHECK :=3D $(shell which shellcheck 2> /dev/null) > +endif > + > export srctree OUTPUT RM CC CXX LD AR CFLAGS CXXFLAGS V BISON FLEX AWK > -export HOSTCC HOSTLD HOSTAR HOSTCFLAGS > +export HOSTCC HOSTLD HOSTAR HOSTCFLAGS SHELLCHECK >=20 > include $(srctree)/tools/build/Makefile.include >=20 > @@ -673,23 +680,7 @@ $(PERF_IN): prepare FORCE > $(PMU_EVENTS_IN): FORCE prepare > $(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=3Dpmu-events = obj=3Dpmu-events >=20 > -# Runs shellcheck on perf test shell scripts > - > -SHELLCHECK :=3D $(shell which shellcheck 2> /dev/null) > - > -ifeq ($(NO_SHELLCHECK),1) > -SHELLCHECK :=3D > -endif > - > -ifneq ($(SHELLCHECK),) > -SHELLCHECK_TEST: FORCE prepare > - $(Q)$(MAKE) -f $(srctree)/tools/perf/tests/Makefile.tests > -else > -SHELLCHECK_TEST: > - @: > -endif > - > -$(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(PMU_EVENTS_IN) = SHELLCHECK_TEST > +$(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(PMU_EVENTS_IN) > $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) \ > $(PERF_IN) $(PMU_EVENTS_IN) $(LIBS) -o $@ >=20 > @@ -1152,9 +1143,8 @@ bpf-skel-clean: > $(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS) >=20 > clean:: $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean = $(LIBSYMBOL)-clean $(LIBPERF)-clean fixdep-clean python-clean = bpf-skel-clean tests-coresight-targets-clean > - $(Q)$(MAKE) -f $(srctree)/tools/perf/tests/Makefile.tests clean > $(call QUIET_CLEAN, core-objs) $(RM) $(LIBPERF_A) = $(OUTPUT)perf-archive $(OUTPUT)perf-iostat $(LANG_BINDINGS) > - $(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' = -delete -o -name '\.*.d' -delete > + $(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' = -delete -o -name '\.*.d' -delete -o -name '*.shellcheck_log' -delete > $(Q)$(RM) $(OUTPUT).config-detected > $(call QUIET_CLEAN, core-progs) $(RM) $(ALL_PROGRAMS) perf = perf-read-vdso32 perf-read-vdsox32 $(OUTPUT)$(LIBJVMTI).so > $(call QUIET_CLEAN, core-gen) $(RM) *.spec *.pyc *.pyo */*.pyc = */*.pyo $(OUTPUT)common-cmds.h TAGS tags cscope* = $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)FEATURE-DUMP $(OUTPUT)util/*-bison* = $(OUTPUT)util/*-flex* \ > diff --git a/tools/perf/tests/Build b/tools/perf/tests/Build > index 2b45ffa462a6..53ba9c3e20e0 100644 > --- a/tools/perf/tests/Build > +++ b/tools/perf/tests/Build > @@ -77,3 +77,17 @@ CFLAGS_python-use.o +=3D = -DPYTHONPATH=3D"BUILD_STR($(OUTPUT)python)" -DPYTHON=3D"BUI > CFLAGS_dwarf-unwind.o +=3D -fno-optimize-sibling-calls >=20 > perf-y +=3D workloads/ > + > +ifdef SHELLCHECK > + SHELL_TESTS :=3D $(shell find tests/shell -executable -type f -name = '*.sh') > + TEST_LOGS :=3D $(SHELL_TESTS:tests/shell/%=3Dshell/%.shellcheck_log) > +else > + SHELL_TESTS :=3D > + TEST_LOGS :=3D > +endif > + > +$(OUTPUT)%.shellcheck_log: % > + $(call rule_mkdir) > + $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat = $@ && rm $@ && false) > + > +perf-y +=3D $(TEST_LOGS) > diff --git a/tools/perf/tests/Makefile.tests = b/tools/perf/tests/Makefile.tests > deleted file mode 100644 > index fdaca5f7a946..000000000000 > --- a/tools/perf/tests/Makefile.tests > +++ /dev/null > @@ -1,22 +0,0 @@ > -# SPDX-License-Identifier: GPL-2.0 > -# Athira Rajeev , 2023 > - > -PROGS :=3D $(shell find tests/shell -perm -o=3Dx -type f -name = '*.sh') > -FILE_NAME :=3D $(notdir $(PROGS)) > -FILE_NAME :=3D $(FILE_NAME:%=3D.%) > -LOGS :=3D $(join $(dir $(PROGS)),$(FILE_NAME)) > -LOGS :=3D $(LOGS:%=3D%.shellcheck_log) > - > -.PHONY: all > -all: SHELLCHECK_RUN > - @: > - > -SHELLCHECK_RUN: $(LOGS) > - > -.%.shellcheck_log: % > - $(call rule_mkdir) > - $(Q)$(call frecho-cmd,test)@shellcheck -S warning "$<" > $@ || (cat = $@ && rm $@ && false) > - > -clean: > - $(eval log_files :=3D $(shell find . -name '.*.shellcheck_log')) > - @rm -rf $(log_files) > --=20 > 2.43.0.rc1.413.gea7ed67945-goog >=20