On April 17, 2019 11:40:02 AM GMT-03:00, Jiri Olsa <jo...@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.budan...@linux.intel.com> >> > >> > Acked-by: Jiri Olsa <jo...@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. - Arnaldo