All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
To: Alexey Budankov <alexey.budankov@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>,
	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 v1] perf record: collect user registers set jointly with dwarf stacks
Date: Wed, 17 Apr 2019 15:47:04 -0300	[thread overview]
Message-ID: <20190417184704.GE5246@kernel.org> (raw)
In-Reply-To: <d68cd29b-16fe-7117-b2f4-720c72d6c146@linux.intel.com>

Em Wed, Apr 17, 2019 at 08:45:08PM +0300, Alexey Budankov escreveu:
> Hi Arnaldo,
> 
> On 17.04.2019 18:48, Arnaldo Carvalho de Melo wrote:
> > On April 17, 2019 11:40:02 AM GMT-03:00, Jiri Olsa <jolsa@redhat.com> wrote:
> >> On Wed, Apr 17, 2019 at 11:35:42AM -0300, Arnaldo Carvalho de Melo
> >> wrote:
> >>> Em Wed, Apr 17, 2019 at 09:39:52AM +0200, Jiri Olsa escreveu:
> >>>> On Mon, Apr 15, 2019 at 06:36:13PM +0300, Alexey Budankov wrote:
> >>>>>
> >>>>> When dwarf stacks are collected jointly with user specified
> >> register
> >>>>> set using --user-regs option like below the full register context
> >> is
> >>>>> still captured on a sample:
> >>>>>
> >>>>>   $ perf record -g --call-graph dwarf,1024 --user-regs=IP,SP,BP
> >> -- matrix.gcc.g.O3
> >>>>>
> >>>>>   188143843893585 0x6b48 [0x4f8]: PERF_RECORD_SAMPLE(IP, 0x4002):
> >> 23828/23828: 0x401236 period: 1363819 addr: 0x7ffedbdd51ac
> >>>>>   ... FP chain: nr:0
> >>>>>   ... user regs: mask 0xff0fff ABI 64-bit
> >>>>>   .... AX    0x53b
> >>>>>   .... BX    0x7ffedbdd3cc0
> >>>>>   .... CX    0xffffffff
> >>>>>   .... DX    0x33d3a
> >>>>>   .... SI    0x7f09b74c38d0
> >>>>>   .... DI    0x0
> >>>>>   .... BP    0x401260
> >>>>>   .... SP    0x7ffedbdd3cc0
> >>>>>   .... IP    0x401236
> >>>>>   .... FLAGS 0x20a
> >>>>>   .... CS    0x33
> >>>>>   .... SS    0x2b
> >>>>>   .... R8    0x7f09b74c3800
> >>>>>   .... R9    0x7f09b74c2da0
> >>>>>   .... R10   0xfffffffffffff3ce
> >>>>>   .... R11   0x246
> >>>>>   .... R12   0x401070
> >>>>>   .... R13   0x7ffedbdd5db0
> >>>>>   .... R14   0x0
> >>>>>   .... R15   0x0
> >>>>>   ... ustack: size 1024, offset 0xe0
> >>>>>    . data_src: 0x5080021
> >>>>>    ... thread: stack_test2.g.O:23828
> >>>>>    ...... dso: /root/abudanko/stacks/stack_test2.g.O3
> >>>>>
> >>>>> After applying the change suggested in the patch the sample data
> >> contain
> >>>>> only user specified register values:
> >>>>>
> >>>>>   $ perf record -g --call-graph dwarf,1024 --user-regs=IP,SP,BP
> >> -- matrix.gcc.g.03
> >>>>>
> >>>>>   188368474305373 0x5e40 [0x470]: PERF_RECORD_SAMPLE(IP, 0x4002):
> >> 23839/23839: 0x401236 period: 1260507 addr: 0x7ffd3d85e96c
> >>>>>   ... FP chain: nr:0
> >>>>>   ... user regs: mask 0x1c0 ABI 64-bit
> >>>>>   .... BP    0x401260
> >>>>>   .... SP    0x7ffd3d85cc20
> >>>>>   .... IP    0x401236
> >>>>>   ... ustack: size 1024, offset 0x58
> >>>>>    . data_src: 0x5080021
> >>>>>    ... thread: stack_test2.g.O:23839
> >>>>>    ...... dso: /root/abudanko/stacks/stack_test2.g.O3
> >>>>>
> >>>>> Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
> >>>>
> >>>> Acked-by: Jiri Olsa <jolsa@kernel.org>
> >>>
> >>> So, there are registers that are needed to do the DWARF unwinding,
> >>> right? But at the same time, if the user says only some are needed,
> >> he
> >>> better know what they're doing and ask for at least the registers
> >> needed
> >>> for the unwinding process to be successfull, right?
> >>
> >> yep, that's how understand that
> > 
> > So we need to document that, stating that specifying a set of registers together with requesting DWARF callchains may break things.
> 
> Do you mean break callchains if omitting IP,SP,BP? 
> For example like this: 
> $ perf record -g --call-graph dwarf,1024 --user-regs=AX,BX,CX -- matrix.gcc.g.O3

Right, i.e. if you don't use --user-regs, then a set of registers will
be asked for by --call-graph dwarf, right? If you use both and specify a
subset that doesn't have some of the asked for --call-graph dwarf, what
happens?

- Arnaldo

  reply	other threads:[~2019-04-17 18:47 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-15 15:36 [PATCH v1] perf record: collect user registers set jointly with dwarf stacks Alexey Budankov
2019-04-17  7:39 ` Jiri Olsa
2019-04-17 14:35   ` Arnaldo Carvalho de Melo
2019-04-17 14:40     ` Jiri Olsa
2019-04-17 15:48       ` Arnaldo Carvalho de Melo
2019-04-17 17:45         ` Alexey Budankov
2019-04-17 18:47           ` Arnaldo Carvalho de Melo [this message]
2019-04-18  9:01             ` 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=20190417184704.GE5246@kernel.org \
    --to=arnaldo.melo@gmail.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=alexey.budankov@linux.intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.