Message ID | 20200219021811.20067-1-leo.yan@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | perf cs-etm: Fix synthesizing instruction samples | expand |
Hi Arnaldo, On Wed, Feb 19, 2020 at 10:18:06AM +0800, Leo Yan wrote: > This patch series is to address issues 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. > > Patch 0001 is to swap packets for instruction samples, so this allow > option '--itrace=iNNN' can work well. > > Patch 0002 avoids to reset the last branches for every instruction > sample; if reset the last branches for every time generating sample, the > later samples in the same range packet cannot use the last branches > anymore. > > Patch 0003 is the fixing for handling different instruction periods, > especially for small sample period. > > Patch 0004 is an optimization for copying last branches; it only copies > last branches once if the instruction samples share the same last > branches. > > Patch 0005 is a minor fix for unsigned variable comparison to zero. > > This patch set has been rebased on the latest perf/core branch; and > verified on Juno board with below commands: > > # perf script --itrace=i2 > # perf script --itrace=i2il16 > # perf inject --itrace=i2il16 -i perf.data -o perf.data.new > # perf inject --itrace=i100il16 -i perf.data -o perf.data.new Could you pick up this patch set? I confirmed this patch set can cleanly apply on top of the latest mainline kernel (5.6-rc5). Or if you want me to resend this patch set, please feel free let me know. Thanks! Leo > Changes from v4: > * Added Mike's review tag for patch 03; > * Added Mathieu's review tags for all patches. > > Changes from v3: > * Refactored patch 0001 with new function cs_etm__packet_swap() (Mike); > * Refined instruction sample generation flow with single while loop, > which completely uses Mike's suggestions (Mike); > * Added Mike's review tags for patch 01/02/04/05. > > Changes from v2: > * Added patch 0001 which is to fix swapping packets for instruction > samples; > * Refined minor commit logs and comments; > * Rebased on the latest perf/core branch. > > Changes from v1: > * Rebased patch set on perf/core branch with latest commit 9fec3cd5fa4a > ("perf map: Check if the map still has some refcounts on exit"). > > > Leo Yan (5): > perf cs-etm: Swap packets for instruction samples > perf cs-etm: Continuously record last branch > perf cs-etm: Correct synthesizing instruction samples > perf cs-etm: Optimize copying last branches > perf cs-etm: Fix unsigned variable comparison to zero > > tools/perf/util/cs-etm.c | 157 +++++++++++++++++++++++++++------------ > 1 file changed, 111 insertions(+), 46 deletions(-) > > -- > 2.17.1 >
Em Tue, Mar 10, 2020 at 01:43:05PM +0800, Leo Yan escreveu: > Hi Arnaldo, > > On Wed, Feb 19, 2020 at 10:18:06AM +0800, Leo Yan wrote: > > This patch series is to address issues 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. > > > > Patch 0001 is to swap packets for instruction samples, so this allow > > option '--itrace=iNNN' can work well. > > > > Patch 0002 avoids to reset the last branches for every instruction > > sample; if reset the last branches for every time generating sample, the > > later samples in the same range packet cannot use the last branches > > anymore. > > > > Patch 0003 is the fixing for handling different instruction periods, > > especially for small sample period. > > > > Patch 0004 is an optimization for copying last branches; it only copies > > last branches once if the instruction samples share the same last > > branches. > > > > Patch 0005 is a minor fix for unsigned variable comparison to zero. > > > > This patch set has been rebased on the latest perf/core branch; and > > verified on Juno board with below commands: > > > > # perf script --itrace=i2 > > # perf script --itrace=i2il16 > > # perf inject --itrace=i2il16 -i perf.data -o perf.data.new > > # perf inject --itrace=i100il16 -i perf.data -o perf.data.new > > Could you pick up this patch set? I confirmed this patch set can > cleanly apply on top of the latest mainline kernel (5.6-rc5). > > Or if you want me to resend this patch set, please feel free let me > know. Thanks! Thanks, all build tested on x86 and arm64 (with CORESIGHT=1, etc), applied. - Arnaldo
On Tue, Mar 10, 2020 at 08:45:03AM -0300, Arnaldo Carvalho de Melo wrote: [...] > > Could you pick up this patch set? I confirmed this patch set can > > cleanly apply on top of the latest mainline kernel (5.6-rc5). > > > > Or if you want me to resend this patch set, please feel free let me > > know. Thanks! > > Thanks, all build tested on x86 and arm64 (with CORESIGHT=1, etc), applied. Thank you, Arnaldo. Leo