From nobody Fri Apr 3 02:26:14 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9B07EC32771 for ; Sun, 18 Sep 2022 03:15:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229496AbiIRDPt (ORCPT ); Sat, 17 Sep 2022 23:15:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60874 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229529AbiIRDPe (ORCPT ); Sat, 17 Sep 2022 23:15:34 -0400 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 38E06248F2 for ; Sat, 17 Sep 2022 20:15:33 -0700 (PDT) Received: by mail-pl1-x62a.google.com with SMTP id iw17so25024217plb.0 for ; Sat, 17 Sep 2022 20:15:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date; bh=OS4UYZ8DIUkJDvQP5tRmIq0ewNPcm5dr1beINkDXglI=; b=TeaGBrs24ZanM/HhDvim4InqF+clK+TEuKanEY4Qnu85x12T07n0VtWqplkYIXJTBC KttvxGMKbG6aQBKsS054AZX2oJhYt04ZGPmzG0f5KhpStYZFmo9JyJtbqnCDNyAp0aw3 jn9VEoaZ0ohW5CEc6Wcr20EsxRBYSyj3/XE1H1CQOc5fLzSQiBPxypWF0W3vjV+UNQsO pGhGPA0FBc/sicFLqBS+GtoGo1ulND4DtvVJ3zlWkK2HssBqR5yentQEqwtbzmVVkw2U lp5k3pI3Mac9pQ+MaDouf9II8T6wMl7Utk19PBxxiMXdcgw4OszWSI0LAAYXTulaujkL X3rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date; bh=OS4UYZ8DIUkJDvQP5tRmIq0ewNPcm5dr1beINkDXglI=; b=nZLETlNjZlcFqchw2/31A2DneX+Zy4X5aCzFSxvxUIdud+/gkSHn3ua47166VJXF0T 9cDzcU7YG5Gyvu/3ZYYfpXtob7yugXvE3UAhyfhz+NooCwMhGf4Jqvsr9/Q1gTCOMpi4 jDrEfTOOe851mIVE0YwrTvL65ISi3SH24LEcHJIEA4P5I+/27BRQ+/ulSctlpcVTyqeM psQ+x1At+W1vtXQ0qs3kwMKfr9zS3fYRaJ04b5FZnKCYE3GCvPEc2uMJiTfTqeI6QkV4 BmEtjjH7cCJ4eb7KrgBgNRLvngDdk3+dfgy1ekKin91hplL76tmIYGgF08daB5rquN9H ZTOQ== X-Gm-Message-State: ACrzQf3l0KKCdprqzwzpae74ld7vRrcyL/TQ6ydbJuAqo8CHXoT7BwjY J7TrDNd4KYa+JYQm+7QIZBpmOmNXasa1wAkzhA8= X-Google-Smtp-Source: AMsMyM7qxFQRgCk07DjoucrzWeRWhfxIw3/DC+osQydxwrq/UjTjNm9dpGDI8OYLwiSRCKpbM1Y4/Q== X-Received: by 2002:a17:90a:c782:b0:202:c73e:5488 with SMTP id gn2-20020a17090ac78200b00202c73e5488mr23516835pjb.202.1663470932638; Sat, 17 Sep 2022 20:15:32 -0700 (PDT) Received: from leoy-yangtze.lan (45.78.11.189.16clouds.com. [45.78.11.189]) by smtp.gmail.com with ESMTPSA id e13-20020a17090301cd00b00177f4ef7970sm17822647plh.11.2022.09.17.20.15.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 17 Sep 2022 20:15:32 -0700 (PDT) From: Leo Yan To: Arnaldo Carvalho de Melo , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Cc: Leo Yan Subject: [PATCH v2 1/2] perf subcmd: Set environment variable "PREFIX" Date: Sun, 18 Sep 2022 11:15:23 +0800 Message-Id: <20220918031524.26719-2-leo.yan@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220918031524.26719-1-leo.yan@linaro.org> References: <20220918031524.26719-1-leo.yan@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Set environment variable "PREFIX", it will be used by invoked shell script, e.g. the shell script uses it to find lib paths. Signed-off-by: Leo Yan --- tools/lib/subcmd/exec-cmd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/lib/subcmd/exec-cmd.c b/tools/lib/subcmd/exec-cmd.c index 33e94fb83986..5dbea456973e 100644 --- a/tools/lib/subcmd/exec-cmd.c +++ b/tools/lib/subcmd/exec-cmd.c @@ -24,6 +24,9 @@ void exec_cmd_init(const char *exec_name, const char *pre= fix, subcmd_config.prefix =3D prefix; subcmd_config.exec_path =3D exec_path; subcmd_config.exec_path_env =3D exec_path_env; + + /* Setup environment variable for invoked shell script. */ + setenv("PREFIX", prefix, 1); } =20 #define is_dir_sep(c) ((c) =3D=3D '/') --=20 2.34.1 From nobody Fri Apr 3 02:26:14 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 40D6CC32771 for ; Sun, 18 Sep 2022 03:15:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229674AbiIRDPz (ORCPT ); Sat, 17 Sep 2022 23:15:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60296 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229606AbiIRDPj (ORCPT ); Sat, 17 Sep 2022 23:15:39 -0400 Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9668B27FEC for ; Sat, 17 Sep 2022 20:15:37 -0700 (PDT) Received: by mail-pf1-x42d.google.com with SMTP id j12so24909174pfi.11 for ; Sat, 17 Sep 2022 20:15:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date; bh=/tDGwzAC/IwmP8HRle5sxobILjM+kn0MjdGIbElVqmc=; b=vBM4YlSUyA2cOuccMVcA5pzbosx7UpZ1THfDYtswOaOPlk93Ad3eWDAvc/kEm9aErw B7hTk79kCIwXQA5E9fAwZQkeeQ4zWB9AOganKNyrvpFP3WM+YDMW2Hej9f/2zyVURltL biVSH65GTPcyxMALXnOS8MXWeHVfiQr8siAo8pDO4D1e2RbMNWAKYk4zP3CcPgwFdtAl tPUWbZEE8/Z/iV7ZSb2k2CeFnFEb+bBpTXiB60BIOcFes+DdkfoxMzg2WtVVwBI1IIZs fHi2D0evwWGelMccqLnpRKGvVRt6UUMq7SsPn99/1wY7B5jy7qtsIGgeZXmscY0A8Feq BUqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date; bh=/tDGwzAC/IwmP8HRle5sxobILjM+kn0MjdGIbElVqmc=; b=qDhV1tASGPeAXMIHNTNM6mfJi2ZgxhQKPimrfTYBmdJ+IKu9AUOWAeELPkFy91HQBO bQhVNcs8Ozgi2yrXdXNtW2It+jU2xZ9EYpOq9ZhJ4XIuxMpkCWKJi42ghfNkXQjh25tj LpK4gOX8H+oFeP7YKj1poaCU+Etmp12XeDEjfR725+R4/J6C4nACCoEIFlQdqZnnQ4zu ruKmDOBghSyXEqo58YhFkkO69EsrnAtTLjnazAc+NOrSUWfJKFSXLoCY2zBzs8M4OXT7 XJKmDeJigy/PEAIuayPJl8SJdfFgUWWGKd+C6zehbrXiHyvFqjhzUY/JTRzwRfOQ50HZ U2cg== X-Gm-Message-State: ACrzQf3mCJNgLJm5LviFtTbG2uvmDvxqPiUjrx1PXOGeENcC5ISJu89m spaVsqhML2FKM9QLZii96hlXxw== X-Google-Smtp-Source: AMsMyM6Cfk0nFXuMVmKDmCkPtqp+n750u2jSmTe7Qqmj8zHJ1GEyjXffIY2N/4HQ9Aug6obakPnQdg== X-Received: by 2002:a63:c3:0:b0:439:72d7:7e1f with SMTP id 186-20020a6300c3000000b0043972d77e1fmr10466498pga.524.1663470935526; Sat, 17 Sep 2022 20:15:35 -0700 (PDT) Received: from leoy-yangtze.lan (45.78.11.189.16clouds.com. [45.78.11.189]) by smtp.gmail.com with ESMTPSA id e13-20020a17090301cd00b00177f4ef7970sm17822647plh.11.2022.09.17.20.15.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 17 Sep 2022 20:15:35 -0700 (PDT) From: Leo Yan To: Arnaldo Carvalho de Melo , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Cc: Leo Yan , Ian Rogers Subject: [PATCH v2 2/2] perf test: Introduce script for java symbol testing Date: Sun, 18 Sep 2022 11:15:24 +0800 Message-Id: <20220918031524.26719-3-leo.yan@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220918031524.26719-1-leo.yan@linaro.org> References: <20220918031524.26719-1-leo.yan@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This commit introduces a script for testing java symbols. The test records java program, inject samples with JIT samples, check specific JIT symbols in the report, the test will pass only when these two symbols are detected. Suggested-by: Ian Rogers Signed-off-by: Leo Yan --- tools/perf/tests/shell/test_java_symbol.sh | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 tools/perf/tests/shell/test_java_symbol.sh diff --git a/tools/perf/tests/shell/test_java_symbol.sh b/tools/perf/tests/= shell/test_java_symbol.sh new file mode 100755 index 000000000000..d96fea405ea9 --- /dev/null +++ b/tools/perf/tests/shell/test_java_symbol.sh @@ -0,0 +1,69 @@ +#!/bin/bash +# Test java symbol + +# SPDX-License-Identifier: GPL-2.0 +# Leo Yan , 2022 + +PERF_DATA=3D$(mktemp /tmp/__perf_test.perf.data.XXXXX) +PERF_INJ_DATA=3D$(mktemp /tmp/__perf_test.perf.data.inj.XXXXX) + +cleanup_files() +{ + echo "Cleaning up files..." + rm -f ${PERF_DATA} + rm -f ${PERF_INJ_DATA} +} + +trap cleanup_files exit term int + +if [ -e "$PWD/tools/perf/libperf-jvmti.so" ]; then + LIBJVMTI=3D$PWD/tools/perf/libperf-jvmti.so +elif [ -e "$PWD/libperf-jvmti.so" ]; then + LIBJVMTI=3D$PWD/libperf-jvmti.so +elif [ -e "$PREFIX/lib64/libperf-jvmti.so" ]; then + LIBJVMTI=3D$PREFIX/lib64/libperf-jvmti.so +elif [ -e "$PREFIX/lib/libperf-jvmti.so" ]; then + LIBJVMTI=3D$PREFIX/lib/libperf-jvmti.so +if [ -e "/usr/lib/linux-tools-$(uname -a | awk '{ print $3 }' | sed -r 's/= -generic//')/libperf-jvmti.so" ]; then + LIBJVMTI=3D/usr/lib/linux-tools-$(uname -a | awk '{ print $3 }' | sed -r = 's/-generic//')/libperf-jvmti.so +else + echo "Fail to find libperf-jvmti.so" + # JVMTI is a build option, skip the test if fail to find lib + exit 2 +fi + +cat < 1 ? fib(x - 2) + fib(x - 1) : 1; +} + +int q =3D 0; + +for (int i =3D 0; i < 10; i++) + q +=3D fib(i); + +System.out.println(q); +EOF + +if [ $? -ne 0 ]; then + echo "Fail to record for java program" + exit 1 +fi + +if ! perf inject -i $PERF_DATA -o $PERF_INJ_DATA -j; then + echo "Fail to inject samples" + exit 1 +fi + +# Below is an example of the instruction samples reporting: +# 8.18% jshell jitted-50116-29.so [.] Interpreter +# 0.75% Thread-1 jitted-83602-1670.so [.] jdk.internal.jimage.= BasicImageReader.getString(int) +perf report --stdio -i ${PERF_INJ_DATA} 2>&1 | \ + egrep " +[0-9]+\.[0-9]+% .* (Interpreter|jdk\.internal).*" > /dev/null 2>= &1 + +if [ $? -ne 0 ]; then + echo "Fail to find java symbols" + exit 1 +fi + +exit 0 --=20 2.34.1