Re: [PATCH v2]: perf/x86: store user space frame-pointer value on a sample

From: Andy Lutomirski
Date: Tue May 15 2018 - 13:41:29 EST



> On May 15, 2018, at 1:08 AM, Alexey Budankov <alexey.budankov@xxxxxxxxxxxxxxx> wrote:
>
>
> Hi Andy,
>
>> On 09.05.2018 17:54, Peter Zijlstra wrote:
>>> On Tue, May 08, 2018 at 06:21:36PM +0300, Alexey Budankov wrote:
>>>
>>> Store user space frame-pointer value (BP register) into Perf trace
>>> on a sample for a process so the value becomes available when
>>> unwinding call stacks for functions gaining event samples.
>>>
>>> Signed-off-by: Alexey Budankov <alexey.budankov@xxxxxxxxxxxxxxx>
>>> ---
>>> arch/x86/kernel/perf_regs.c | 8 +++++++-
>>> 1 file changed, 7 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/x86/kernel/perf_regs.c b/arch/x86/kernel/perf_regs.c
>>> index e47b2dbbdef3..8d68658eff7f 100644
>>> --- a/arch/x86/kernel/perf_regs.c
>>> +++ b/arch/x86/kernel/perf_regs.c
>>> @@ -156,7 +156,13 @@ void perf_get_regs_user(struct perf_regs *regs_user,
>>
>>
>>> * Most system calls don't save these registers, don't report them.
>>
>> ^^^ that worries me and is the reason for the '-1's below. However I
>> think with all the PTI rework this might no longer be true.
>>
>> The Changelog needs to state that user_regs->bp is in fact valid and
>> ideally point to the commits that makes it so. Also this patch should
>> update that comment.
>>
>> Cc Andy who keeps better track of all that than me.
>
> Are there any thoughts so far? Feedback on the matter above is highly appreciated.

Sorry, I missed this. Can you forward the original patch? I donât have it.
These days, system calls should save all registers, but Iâm not entirely sure I want to promise that theyâll continue to do so forever.