Re: [PATCH v1 0/4] perf cs-etm: Fix synthesizing instruction samples

From: Mathieu Poirier
Date: Thu Oct 31 2019 - 13:14:29 EST


On Thu, 24 Oct 2019 at 09:15, Leo Yan <leo.yan@xxxxxxxxxx> wrote:
>
> This patch series is to address the issue for synthesizing instruction
> samples, especially when the instruction sample period is small enough,
> the current logic cannot synthesize multiple instruction samples within
> one instruction range packet.
>
> To fix this issue, patch 0001 avoids to reset the last branches for
> every instruction sample; if reset the last branches when every time
> generate instruction sample, then the later samples in the same range
> packet cannot use the last branches anymore.
>
> Patch 0002 is the main patch to fix the logic for synthesizing
> instruction samples; it allows to handle different instruction periods.
>
> Patch 0003 is an optimization for copying last branches; it only copies
> last branches once if the instruction samples share the same last
> branches.
>
> Patch 0004 is a minor fix for unsigned variable comparison to zero.
>
> To verify my changing for synthesizing instruction samples, I added
> some logs in the code, and reviewed the output log manually for
> instuctions samples. The below commands are tested on DB410c board:
>
> # perf script --itrace=i2
> # perf script --itrace=i2li16
> # perf inject --itrace=i2il16 -i perf.data -o perf.data.new
> # perf inject --itrace=i100il16 -i perf.data -o perf.data.new
>
>
> Leo Yan (4):
> perf cs-etm: Continuously record last branches
> perf cs-etm: Correct synthesizing instruction samples
> perf cs-etm: Optimize copying last branches
> perf cs-etm: Fix unsigned variable comparison to zero

I have reviewed and agree with the changes in this set but won't move
forward until Mike has looked at patch 2/4.

Thanks,
Mathieu

>
> tools/perf/util/cs-etm.c | 137 ++++++++++++++++++++++++++++++++-------
> 1 file changed, 115 insertions(+), 22 deletions(-)
>
> --
> 2.17.1
>