From nobody Sun Feb 8 20:00:16 2026 Received: from mail-dl1-f74.google.com (mail-dl1-f74.google.com [74.125.82.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0552522A4E8 for ; Sun, 11 Jan 2026 04:13:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768104840; cv=none; b=nMR07XxXuDxpXnwDcBt72v352OMJfQoD60/XnHRql90AgYhlZo4EWuAxeaJeO9NeKZXjAe6jR5SwygmJXoeRL05qhPEjWpoK4IOrpabIZfvIm8V+UTDO2uGuIuiJv299Tv9q6yAsyN7H2fnm8NLYLsDk0wNJ/Q8zdrKkvyrxJLY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768104840; c=relaxed/simple; bh=uzEtsFy0IeVG96C7cTzkE8RkZxzyVZ3pUWgMlhMyoDA=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=Kw+9Ttp5kZhn/V+zvzY7f84OwGIKaA5neI38Opevx1+tcyGt9NvKmt0/jBbEYYeXwaf93ObZHadT31cxonYmbT/prwlYlkt0ikHrnI+e0UucMu+Qo6wg3Ukna96Pd6YVyR9Ceshu1kRxm1pCzM/B7AwolCt8+97i2G2IO5xf11o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=TGBkBJFd; arc=none smtp.client-ip=74.125.82.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="TGBkBJFd" Received: by mail-dl1-f74.google.com with SMTP id a92af1059eb24-119e80a89b1so405710c88.0 for ; Sat, 10 Jan 2026 20:13:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1768104835; x=1768709635; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=ocxcW+CrbKRyA7dscXnknw+e+BoFyfbyTfcxor6PA9I=; b=TGBkBJFdxrBFu+92SS/tX4RKMwD/i/W4i0pbuqFpVkt/QAhrM+xiOvKw+TDsM8y13A izKHGreNyd4/3r6ScsEn4pca8bvAjHQBp2ulyH0G414jJQVkGX9BERMlsRw89wTK6nmn p0qgSOIBbtXNPtjNrqWXFTINUOoiKG2kxtdXL1fdri/TnMOhxdOVid3moCSZSd5PPWbd imaQtGeTmbAAi5zVS2H7rle2WPez2GMdXKbCBxq9+ceTcrX87Lh+4TVAOLZL9tth2i9W KWGVvnduN935gwqFYRYpbnFERs13922i10HbiF3U6SSDH6nkknmp0jN6V1OlAwAAMUMF aVfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768104835; x=1768709635; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ocxcW+CrbKRyA7dscXnknw+e+BoFyfbyTfcxor6PA9I=; b=LrjOSxb6sLo+iJYFbiW3blk5W2vVElwo0YVCsIzt6RQ/Z9Uu3cfMkTmwv5kBdgrqRb ZprwxKqrcmrJOgEj9i40Ksm9px7GsxsJDXyAxdRlcU55ESDB+tS1SvcYBnJkMgaaMs4K jE+hkQdzHYZmDnGDZEqygp96OLAFddWx46Qh0mxnRf5j6K1YIQB+xBLqlnbxpxgGp1/q ttUakYzMx+4XQ69EX/4yG0h0l5wQDkqlaxaebS20lH4Op2riQSBLt0sZf/dY4rQtb+8+ whW2K1IyM7YxU0ACd7TxjOOcnulVZOtthdcgwZzGfFZw+gq1jyilweuLsPvXs+GbGiDX /XZg== X-Forwarded-Encrypted: i=1; AJvYcCVVGwCfETj7HD7KndHnfMCJ4QrDgZ9FI5ou20Rdyw6c1lj/190oYGMlkBUAA+cJXZDx4lpcYFnKjRIWKXg=@vger.kernel.org X-Gm-Message-State: AOJu0YzPB2uNNESiJjZm1R0+jYSRa9uQAbEIPR9TccEpC1h3YAJTum1v fQTvIe4iozDbZM2M6fCSNvHiDEl3qTw+74mGoSuDTB6JIUxg5VtwdSPlLG3pGuRhKggXQhhK0Zt StkjzpjGgJQ== X-Google-Smtp-Source: AGHT+IHtQ5dHNzSN22wy2BFoSUc/G0rGe/XCGDJa1Gk7SFJy76Ug5vah4X2Q+c0F0Mhtu0OSHWM5rSiq9z7N X-Received: from dlbeg28.prod.google.com ([2002:a05:7022:f9c:b0:11f:3ccd:73d7]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7022:305:b0:121:9f05:7e4c with SMTP id a92af1059eb24-121f8ae6090mr13455768c88.16.1768104835073; Sat, 10 Jan 2026 20:13:55 -0800 (PST) Date: Sat, 10 Jan 2026 20:13:37 -0800 In-Reply-To: <20260111041338.1817056-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260111041338.1817056-1-irogers@google.com> X-Mailer: git-send-email 2.52.0.457.g6b5491de43-goog Message-ID: <20260111041338.1817056-7-irogers@google.com> Subject: [PATCH v3 6/7] perf test workload: Add inlineloop test workload From: Ian Rogers To: Tony Jones , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Howard Chu , Stephen Brennan , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The purpose of this workload is to gather samples in an inlined function. This can be used to test whether inlined addr2line works correctly. Signed-off-by: Ian Rogers --- tools/perf/tests/builtin-test.c | 1 + tools/perf/tests/tests.h | 1 + tools/perf/tests/workloads/Build | 2 + tools/perf/tests/workloads/inlineloop.c | 52 +++++++++++++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 tools/perf/tests/workloads/inlineloop.c diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-tes= t.c index bd6ffa8e4578..e2490652f030 100644 --- a/tools/perf/tests/builtin-test.c +++ b/tools/perf/tests/builtin-test.c @@ -153,6 +153,7 @@ static struct test_workload *workloads[] =3D { &workload__datasym, &workload__landlock, &workload__traploop, + &workload__inlineloop, }; =20 #define workloads__for_each(workload) \ diff --git a/tools/perf/tests/tests.h b/tools/perf/tests/tests.h index cb67ddbd0375..1f0f8b267fb1 100644 --- a/tools/perf/tests/tests.h +++ b/tools/perf/tests/tests.h @@ -240,6 +240,7 @@ DECLARE_WORKLOAD(brstack); DECLARE_WORKLOAD(datasym); DECLARE_WORKLOAD(landlock); DECLARE_WORKLOAD(traploop); +DECLARE_WORKLOAD(inlineloop); =20 extern const char *dso_to_test; extern const char *test_objdump_path; diff --git a/tools/perf/tests/workloads/Build b/tools/perf/tests/workloads/= Build index fb1012cc4fc3..866a00bd14a0 100644 --- a/tools/perf/tests/workloads/Build +++ b/tools/perf/tests/workloads/Build @@ -8,9 +8,11 @@ perf-test-y +=3D brstack.o perf-test-y +=3D datasym.o perf-test-y +=3D landlock.o perf-test-y +=3D traploop.o +perf-test-y +=3D inlineloop.o =20 CFLAGS_sqrtloop.o =3D -g -O0 -fno-inline -U_FORTIFY_SOURCE CFLAGS_leafloop.o =3D -g -O0 -fno-inline -fno-omit-frame-pointer -= U_FORTIFY_SOURCE CFLAGS_brstack.o =3D -g -O0 -fno-inline -U_FORTIFY_SOURCE CFLAGS_datasym.o =3D -g -O0 -fno-inline -U_FORTIFY_SOURCE CFLAGS_traploop.o =3D -g -O0 -fno-inline -U_FORTIFY_SOURCE +CFLAGS_inlineloop.o =3D -g -O2 diff --git a/tools/perf/tests/workloads/inlineloop.c b/tools/perf/tests/wor= kloads/inlineloop.c new file mode 100644 index 000000000000..bc82dfc7c410 --- /dev/null +++ b/tools/perf/tests/workloads/inlineloop.c @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: GPL-2.0 +#include +#include +#include +#include +#include +#include "../tests.h" + +static volatile int a; +static volatile sig_atomic_t done; + +static void sighandler(int sig __maybe_unused) +{ + done =3D 1; +} + +static inline void __attribute__((always_inline)) leaf(int b) +{ +again: + a +=3D b; + if (!done) + goto again; +} + +static inline void __attribute__((always_inline)) middle(int b) +{ + leaf(b); +} + +static noinline void parent(int b) +{ + middle(b); +} + +static int inlineloop(int argc, const char **argv) +{ + int sec =3D 1; + + pthread_setname_np(pthread_self(), "perf-inlineloop"); + if (argc > 0) + sec =3D atoi(argv[0]); + + signal(SIGINT, sighandler); + signal(SIGALRM, sighandler); + alarm(sec); + + parent(sec); + + return 0; +} + +DEFINE_WORKLOAD(inlineloop); --=20 2.52.0.457.g6b5491de43-goog