linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alexey Budankov <alexey.budankov@linux.intel.com>
To: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>, Andi Kleen <ak@linux.intel.com>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v10 09/12] perf record: implement -z,--compression_level[=<n>] option
Date: Wed, 15 May 2019 18:44:29 +0300	[thread overview]
Message-ID: <175a0cd8-226f-dee4-8919-89f844a6dc8b@linux.intel.com> (raw)
In-Reply-To: <20190515123802.GA23162@kernel.org>

On 15.05.2019 15:59, Arnaldo Carvalho de Melo wrote:
> Em Wed, May 15, 2019 at 11:43:30AM +0300, Alexey Budankov escreveu:
>> On 15.05.2019 0:46, Arnaldo Carvalho de Melo wrote:
>>> Em Tue, May 14, 2019 at 05:20:41PM -0300, Arnaldo Carvalho de Melo escreveu:
>>>> Em Mon, Mar 18, 2019 at 08:44:42PM +0300, Alexey Budankov escreveu:
> 
>>>>> Implemented -z,--compression_level[=<n>] option that enables compression
>>>>> of mmaped kernel data buffers content in runtime during perf record
>>>>> mode collection. Default option value is 1 (fastest compression).
> 
>>> <SNIP>
> 
>>>> [root@quaco ~]# perf record -z2
>>>> ^C[ perf record: Woken up 1 times to write data ]
>>>> 0x1746e0 [0x76]: failed to process type: 81 [Invalid argument]
>>>> [ perf record: Captured and wrote 1.568 MB perf.data, compressed (original 0.452 MB, ratio is 3.995) ]
> 
>>>> [root@quaco ~]#
> 
>>> So, its the buildid processing at the end, so we can't do build-id
>>> processing when using PERF_RECORD_COMPRESSED, otherwise we'd have to
>>> uncompress at the end to find the PERF_RECORD_FORK/PERF_RECORD_MMAP,
>>> etc.
> 
>>> [root@quaco ~]# perf record -z2  --no-buildid sleep 1
>>> [ perf record: Woken up 1 times to write data ]
>>> [ perf record: Captured and wrote 0.020 MB perf.data, compressed (original 0.001 MB, ratio is 2.153) ]
>>> [root@quaco ~]# perf report -D | grep PERF_RECORD_COMP
>>> 0x4f40 [0x195]: failed to process type: 81 [Invalid argument]
>>> Error:
>>> failed to process sample
>>> 0 0x4f40 [0x195]: PERF_RECORD_COMPRESSED
>>> [root@quaco ~]#
> 
>>> I'll play with it tomorrow.
> 
>> Applied the whole patch set on top of the current perf/core 
>> and the whole thing functions as expected.
> 
> It doesn't, see the reported error above, these three lines, that
> shouldn't be there:
> 
> 0x4f40 [0x195]: failed to process type: 81 [Invalid argument]
> Error:
> failed to process sample
> 
> That is because at this point in the patch series a record was
> introduced that is not being handled by the build id processing done, by
> default, at the end of the 'perf record' session, and, as explained
> above, needs fixing so that when we do 'git bisect' looking for a non
> expected "failed to process type: 81" kind of error, this doesn't
> appear.
> 
> I added the changes below to this cset and will continue from there:
> 
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index d84a4885e341..f8d21991f94c 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -2284,6 +2284,12 @@ int cmd_record(int argc, const char **argv)
>  			"cgroup monitoring only available in system-wide mode");
>  
>  	}
> +
> +	if (rec->opts.comp_level != 0) {
> +		pr_debug("Compression enabled, disabling build id collection at the end of the session\n");
> +		rec->no_buildid = true;
> +	}
> +
>  	if (rec->opts.record_switch_events &&
>  	    !perf_can_record_switch_events()) {
>  		ui__error("kernel does not support recording context switch events\n");
> 
> ---------------------------------------------------------------------------
> 
> [acme@quaco perf]$ perf record -z2 sleep 1
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.001 MB perf.data, compressed (original 0.001 MB, ratio is 2.292) ]
> [acme@quaco perf]$ perf record -v -z2 sleep 1
> Compression enabled, disabling build id collection at the end of the session
> Using CPUID GenuineIntel-6-8E-A
> nr_cblocks: 0
> affinity: SYS
> mmap flush: 1
> comp level: 2
> mmap size 528384B
> Couldn't start the BPF side band thread:
> BPF programs starting from now on won't be annotatable
> perf_event__synthesize_bpf_events: can't get next program: Operation not permitted
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.001 MB perf.data, compressed (original 0.001 MB, ratio is 2.305) ]
> [acme@quaco perf]$
> 
> Will check if its possible to get rid of the following in this patch, to
> keep bisection working for this case as well:
> 
> [acme@quaco perf]$ perf report -D | grep COMPRESS
> 0x1b8 [0x169]: failed to process type: 81 [Invalid argument]
> Error:
> failed to process sample
> 0 0x1b8 [0x169]: PERF_RECORD_COMPRESSED
> [acme@quaco perf]$

Makes sense. Thanks.

~Alexey

> 
> - Arnaldo
> 

  reply	other threads:[~2019-05-15 15:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-15 12:59 [PATCH v10 09/12] perf record: implement -z,--compression_level[=<n>] option Arnaldo Carvalho de Melo
2019-05-15 15:44 ` Alexey Budankov [this message]
2019-05-17 15:01   ` Arnaldo Carvalho de Melo
2019-05-17 16:56     ` Alexey Budankov
  -- strict thread matches above, loose matches on Subject: below --
2019-03-18 17:36 [PATCH v10 00/12] perf: enable compression of record mode trace to save storage space Alexey Budankov
2019-03-18 17:44 ` [PATCH v10 09/12] perf record: implement -z,--compression_level[=<n>] option Alexey Budankov
2019-05-14 20:04   ` Arnaldo Carvalho de Melo
2019-05-15  5:46     ` Alexey Budankov
2019-05-14 20:20   ` Arnaldo Carvalho de Melo
2019-05-14 21:46     ` Arnaldo Carvalho de Melo
2019-05-15  8:43       ` Alexey Budankov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=175a0cd8-226f-dee4-8919-89f844a6dc8b@linux.intel.com \
    --to=alexey.budankov@linux.intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=arnaldo.melo@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).