Message ID | 20191024151325.28623-1-leo.yan@linaro.org |
---|---|
Headers | show |
Series | perf cs-etm: Fix synthesizing instruction samples | expand |
On Thu, 24 Oct 2019 at 09:15, Leo Yan <leo.yan@linaro.org> 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 >
On Thu, Oct 31, 2019 at 11:14:15AM -0600, Mathieu Poirier wrote: > On Thu, 24 Oct 2019 at 09:15, Leo Yan <leo.yan@linaro.org> 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 a lot for reviewing, Mathieu. Sorry I forgot to loop Mike in this patch set, and respin patch for v2 and have sent to mailing list. @Mike, please review patch set v2 as you received, Thanks! Thanks, Leo Yan