lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAH0uvojcL+DL6WLJA1VhzysxeRY0=P9hAYm7Gng-skaoKLPHKg@mail.gmail.com>
Date: Sat, 14 Dec 2024 22:57:50 -0800
From: Howard Chu <howardchu95@...il.com>
To: Namhyung Kim <namhyung@...nel.org>
Cc: acme@...nel.org, mark.rutland@....com, alexander.shishkin@...ux.intel.com, 
	jolsa@...nel.org, irogers@...gle.com, adrian.hunter@...el.com, 
	kan.liang@...ux.intel.com, linux-perf-users@...r.kernel.org, 
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 1/2] perf trace: Add tests for BTF general augmentation

Hello Namhyung,

On Fri, Dec 13, 2024 at 4:42 PM Namhyung Kim <namhyung@...nel.org> wrote:
>
> Hi Howard,
>
> On Wed, Dec 11, 2024 at 02:49:26PM -0800, Howard Chu wrote:
> > Currently, we only have perf trace augmentation tests for enum
> > arguments. This patch adds tests for more general syscall arguments,
> > such as struct pointers, strings, and buffers.
> >
> > These tests utilize the perf config system to configure the perf trace
> > output, as suggested by Arnaldo Carvalho de Melo <acme@...nel.org>
> >
> > Suggested-by: Arnaldo Carvalho de Melo <acme@...nel.org>
> > Signed-off-by: Howard Chu <howardchu95@...il.com>
> > ---
> >  tools/perf/tests/shell/trace_btf_general.sh | 93 +++++++++++++++++++++
> >  1 file changed, 93 insertions(+)
> >  create mode 100755 tools/perf/tests/shell/trace_btf_general.sh
> >
> > diff --git a/tools/perf/tests/shell/trace_btf_general.sh b/tools/perf/tests/shell/trace_btf_general.sh
> > new file mode 100755
> > index 000000000000..bef07bad42bb
> > --- /dev/null
> > +++ b/tools/perf/tests/shell/trace_btf_general.sh
> > @@ -0,0 +1,93 @@
> > +#!/bin/bash
> > +# perf trace BTF general tests
> > +# SPDX-License-Identifier: GPL-2.0
> > +
> > +err=0
> > +set -e
> > +
> > +. "$(dirname $0)"/lib/probe.sh
> > +
> > +file1=$(mktemp /tmp/file1_XXXX)
> > +file2=$(echo $file1 | sed 's/file1/file2/g')
> > +
> > +buffer="buffer content"
> > +perf_config_tmp=$(mktemp /tmp/.perfconfig_XXXXX)
> > +
> > +trap cleanup EXIT TERM INT HUP
> > +
> > +check_vmlinux() {
> > +  echo "Checking if vmlinux BTF exists"
> > +  if ! ls /sys/kernel/btf/vmlinux 1>/dev/null 2>&1
>
> Normally we do
>
>   if [ ! -f /sys/kernel/btf/vmlinux ]

Sure, I'll change the check to this.

>
> > +  then
> > +    echo "Skipped due to missing vmlinux BTF"
> > +    err=2
>
> This can be overwritten by trace_test_string.

Oops my bad sorry.

>
>
> > +  fi
> > +}
> > +
> > +trace_test_string() {
> > +  echo "Testing perf trace's string augmentation"
> > +  if ! perf trace -e renameat* --max-events=1 -- mv ${file1} ${file2} 2>&1 | \
> > +    grep -q -E "^mv/[0-9]+ renameat(2)?\(.*, \"${file1}\", .*, \"${file2}\", .*\) += +[0-9]+$"
>
> Does this work without BTF support?

Yes, this works without BTF with Arnaldo's patch adding
sys_enter_renameat2. Before the patch, it wouldn't work because the
second filename would not be displayed properly. I understand this may
seem redundant, but now in perf trace all the data is collected
through the BTF general collector (if BTF is present), so this
trace_test_string() tests the new code path that uses BTF information
to pretty-print string arguments, since all data collection goes
through it.

Thanks,
Howard

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ