Messages in this thread | | | Date | Thu, 19 Nov 2015 14:45:13 +0800 | From | "Wangnan (F)" <> | Subject | Re: [BUG REPORT] perf tools: x86_64: Broken calllchain when sampling taken at 'callq' instruction |
| |
On 2015/11/19 14:37, Ingo Molnar wrote: > * Wangnan (F) <wangnan0@huawei.com> wrote: > >>> perf cmdline is >>> >>> # ./pref record -g -F 9 --call-graph dwarf ./test_dwarf_unwind >>> >>> Use default events, precise_ip == 2 so uses PEBS. >>> >> Testetd 'cycles', 'cycles:p' and 'cycles:pp'. Only 'cycles:pp' captures >> sample at callq. So maybe a PEBS problem? > Well, that's how our PEBS sampling works: we roll back the instruction pointer to > point at the instruction generating the sample. The state itself is > post-instruction.
Just for curiosity:
how the interrupted process continue to execute, when the PC saved in pt_regs still pointed to 'callq' but SP and stack has already changes? Do we fix it in kernel, or by hardware?
Thank you.
| |