Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp1712218rwb; Fri, 23 Sep 2022 17:46:30 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5KyQ4RJdax0nfgsyhubHo5+RidWqf4D1pti4erd6zc6Egh5kCaISdJeQ7mXfi3kPtFe45l X-Received: by 2002:a17:906:d550:b0:780:cec2:aae1 with SMTP id cr16-20020a170906d55000b00780cec2aae1mr9518423ejc.477.1663980390075; Fri, 23 Sep 2022 17:46:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663980390; cv=none; d=google.com; s=arc-20160816; b=Y8geJx3ffxDySYwBLzq2rhpSuSJyOFZ8tDUL99IvYKZqMQtr9rR3hXte2JIn0ALkdM FdrpvLlzDl5HdtemnxkwiT0izeEWSz1tsRwE/OCYV4Wr/0CahufTgfoW9XJH5IyYKcjQ u2IqQ0d4ULCwzf7T/A0sJE0+TnRCHjBHOPRMoIamrl3Go1g5Eas7PAgS/aZ/aznpQ2x5 Guvu+eexLaoi3fDJi2jUfoDSN6nbD6aj6Uy9UGjC9/RKJodZysWRaqZc9WTj3EhuoFEt WU274/SNJI58siI9nirOGuQX4e8SolPuDgDcpMYu3JZq1Rqxey7aSJmgFpr+YSss77HL VqoA== 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:sender :dkim-signature; bh=nsTuKY7W4PY53LlO1HXB0XbCZ8PJy5sf3lmL8N0J30g=; b=cQxc+0ewqjS3PwNIPkjoCxTonsvF9ZZyeh/RyUdLauusAyCjdN40rGyeMhjDEqf9mp YQmww7h58pt79u3IiodcJU++5jGEJkvSaGlaV4vfBriE074Cx9GslU60roFfyd3IFbSY tIF2/R7rjkw/mk6Ega7VJOpqVIvsgDpJps4GEWgic09EIYjHp5IyIkiCIrKlvehs92xk lXPjsaRCba3ARgaTjnbUUjwZ25kd5i64XYtQdjPFBR16wQJhwKfsITDCtiSgeBHLTP6i 9i4kFH1M/A1aHwB/9Uj+q63mn8cNUFecntltkmCED2dpku5yn+W1Z9AlweWiCky9ezgI o0jA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=nhVl3BIr; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w16-20020a056402269000b0043c2e89d0acsi10678605edd.3.2022.09.23.17.46.03; Fri, 23 Sep 2022 17:46:30 -0700 (PDT) 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; dkim=pass header.i=@gmail.com header.s=20210112 header.b=nhVl3BIr; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231239AbiIXAme (ORCPT + 99 others); Fri, 23 Sep 2022 20:42:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49646 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232397AbiIXAm2 (ORCPT ); Fri, 23 Sep 2022 20:42:28 -0400 Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF83D115BCC; Fri, 23 Sep 2022 17:42:27 -0700 (PDT) Received: by mail-pl1-x635.google.com with SMTP id jm5so1526736plb.13; Fri, 23 Sep 2022 17:42:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date; bh=nsTuKY7W4PY53LlO1HXB0XbCZ8PJy5sf3lmL8N0J30g=; b=nhVl3BIrKBOJYJuLzSM7AeliCsGuqV3cZiOyh3Ggtm6jHMriiA+42Klv4Gi+vhDZIX KWvuhYpH3/na5nk3p9htonaM+diUKqA5NloBD8gYPsaGjMkf8WDRnmpm6vfO9gDABbz2 cCdSqtOZFpoH+luUsCSbLU/Z8WCObuIawhYQOqugpGTWvBJSJdldbvcv9KBP6hoFQoVn Clo8fxC+GAjmq9GNVnAGPmAS1BLC0/idKLul5T5LwjoWvIz4slduKcTAF9q7L6qIumo3 yg5VIksiLxQl65i4sfOnXeLcjSRtPgrk+ilRbCpYBnKn96xR4ly4Xcrpp9yd2SUWIjh6 6PvA== 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:sender:x-gm-message-state:from :to:cc:subject:date; bh=nsTuKY7W4PY53LlO1HXB0XbCZ8PJy5sf3lmL8N0J30g=; b=bvLn2G+sQENzxOUqx7/hxGELEZ9+4hnffHgcz0zypuNQtm29xdWdSw2DCWGETCoRvv QIb+8oskPbf+xBfoEufniY4fq1sPpNBR7miwSoghaujYosrxPn38823xYA4F9ugIEgSX Qs4qbdnLuQ9+8qMuT1Ua421q0JQj66fTvgiUHgUgvBLRiE48mygHAvJCdLAqg410wb7y anAGHimQuWPNzipDZQUJMYnNvSKGwwF/LkWmDuJFWDlKDo9LH9aW+04RMmAWKc7VlE33 6ujSDB7jELAqcB9Tg3dnyc1uohda+EHdghHEJN1qT4o5vWtX0hXqteqqTGZB1l6L2znG ImiQ== X-Gm-Message-State: ACrzQf2w1NuLvK3RONqtHf3Osd/R74zm6VG0cV/d4WbT5xWrp5t0348Z 4O+8qJ8hYEZlK6MBCKkULEI= X-Received: by 2002:a17:902:e808:b0:178:1520:b255 with SMTP id u8-20020a170902e80800b001781520b255mr10963314plg.54.1663980147164; Fri, 23 Sep 2022 17:42:27 -0700 (PDT) Received: from balhae.hsd1.ca.comcast.net ([2601:647:6780:1040:9987:f0b9:ad5:1fe7]) by smtp.gmail.com with ESMTPSA id j6-20020a170902da8600b00176acc23a73sm6639516plx.281.2022.09.23.17.42.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Sep 2022 17:42:26 -0700 (PDT) Sender: Namhyung Kim From: Namhyung Kim To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: Ingo Molnar , Peter Zijlstra , LKML , Ian Rogers , Adrian Hunter , linux-perf-users@vger.kernel.org Subject: [PATCH 3/3] perf test: Add kernel lock contention test Date: Fri, 23 Sep 2022 17:42:21 -0700 Message-Id: <20220924004221.841024-3-namhyung@kernel.org> X-Mailer: git-send-email 2.37.3.998.g577e59143f-goog In-Reply-To: <20220924004221.841024-1-namhyung@kernel.org> References: <20220924004221.841024-1-namhyung@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE, SPF_PASS autolearn=no 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 Add a new shell test to check if both normal perf lock record + contention and BPF (with -b) option are working. Use perf bench sched messaging as a workload since it'd create some contention for sending and receiving messages. Signed-off-by: Namhyung Kim --- tools/perf/tests/shell/lock_contention.sh | 73 +++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100755 tools/perf/tests/shell/lock_contention.sh diff --git a/tools/perf/tests/shell/lock_contention.sh b/tools/perf/tests/shell/lock_contention.sh new file mode 100755 index 000000000000..04bf604e3c6f --- /dev/null +++ b/tools/perf/tests/shell/lock_contention.sh @@ -0,0 +1,73 @@ +#!/bin/sh +# kernel lock contention analysis test +# SPDX-License-Identifier: GPL-2.0 + +set -e + +err=0 +perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX) +result=$(mktemp /tmp/__perf_test.result.XXXXX) + +cleanup() { + rm -f ${perfdata} + rm -f ${result} + trap - exit term int +} + +trap_cleanup() { + cleanup + exit ${err} +} +trap trap_cleanup exit term int + +check() { + if [ `id -u` != 0 ]; then + echo "[Skip] No root permission" + err=2 + exit + fi + + if ! perf list | grep -q lock:contention_begin; then + echo "[Skip] No lock contention tracepoints" + err=2 + exit + fi +} + +test_record() +{ + echo "Testing perf lock record and perf lock contention" + perf lock record -o ${perfdata} -- perf bench sched messaging > /dev/null 2>&1 + # the output goes to the stderr and we expect only 1 output (-E 1) + perf lock contention -i ${perfdata} -E 1 -q 2> ${result} + if [ $(cat "${result}" | wc -l) != "1" ]; then + echo "[Fail] Recorded result count is not 1:" $(cat "${result}" | wc -l) + err=1 + exit + fi +} + +test_bpf() +{ + echo "Testing perf lock contention --use-bpf" + + if ! perf lock con -b true > /dev/null 2>&1 ; then + echo "[Skip] No BPF support" + exit + fi + + # the perf lock contention output goes to the stderr + perf lock con -a -b -E 1 -q -- perf bench sched messaging > /dev/null 2> ${result} + if [ $(cat "${result}" | wc -l) != "1" ]; then + echo "[Fail] BPF result count is not 1:" $(cat "${result}" | wc -l) + err=1 + exit + fi +} + +check + +test_record +test_bpf + +exit ${err} -- 2.37.3.998.g577e59143f-goog