Re: [PATCH] perf/x86/intel/lbr: Optimize context switches for LBR

From: Alexey Budankov
Date: Mon Sep 17 2018 - 03:57:55 EST


Hello Kan and Andi,

On 14.09.2018 17:57, linux-kernel-owner@xxxxxxxxxxxxxxx wrote:
>
>
> On 9/14/2018 10:27 AM, Andi Kleen wrote:
>> On Fri, Sep 14, 2018 at 08:39:36AM -0400, Liang, Kan wrote:
>>>
>>>
>>> On 9/14/2018 5:22 AM, Alexey Budankov wrote:
>>>>
>>>> Hi Andi,
>>>>
>>>> On 14.09.2018 11:54, Andi Kleen wrote:
>>>>>>> In principle the LBRs need to be flushed between threads. So does
>>>>>>> current code.
>>>>>>
>>>>>> IMHO, ideally, LBRs stack would be preserved and restored when
>>>>>> switching between execution stacks. That would allow implementing
>>>>>> per-thread statistical call graph view in Perf tools, fully based
>>>>>> on HW capabilities. It could be advantageous for some cases, in
>>>>>> comparison with traditional dwarf based call graph.
>>>>>
>>>>> This is already supported when you use LBR call stack mode
>>>>> (perf record --call-graph lbr)
>>>>
>>>> Which kernel versions does it make sense to try?
>>>>
>>>
>>> The optimization for LBR call stack has been merged into 4.19.
>>> commit id: 8b077e4a69bef5c4121426e99497975860191e53
>>> perf/x86/intel/lbr: Optimize context switches for the LBR call stack
>>
>> I think he mean support for LBR call stack in general. This has been there
>> for a long time (since Haswell) Any reasonable kernel version should
>> support it.
>>
>
> Oh I see. Yes, the feature of LBR call stack was added long time ago.
> But I still recommend 4.19. Because it includes a recent bug fix for LBR call stack.
>
> commit id: 0592e57b24e7e05ec1f4c50b9666c013abff7017
> perf/x86/intel/lbr: Fix incomplete LBR call stack

Thanks for your support.

Best regards,
Alexey

>
> Thanks,
> Kan
>