• Leo Yan's avatar
    perf cs-etm: Add last instruction information in packet · ca45d843
    Leo Yan authored
    Decoder provides last instruction related information, these information
    can be used for trace analysis; specifically we can get to know what
    kind of branch instruction has been executed, mainly the information are
    contained in three element fields:
    
      last_i_type: this is significant type for waypoint calculation, it
      indicates the last instruction is one of immediate branch instruction,
      indirect branch instruction, instruction barrier (ISB), or data
      barrier (DSB/DMB).
    
      last_i_subtype: this is used for instruction sub type, it can be
      branch with link, ARMv8 return instruction, ARMv8 eret instruction
      (return from exception), or ARMv7 instruction which could imply
      return (e.g. MOV PC, LR; POP { ,PC}).
    
      last_instr_cond: it indicates if the last instruction was conditional.
    
    But these three fields are not saved into cs_etm_packet struct, thus
    cs-etm layer don't know related information and cannot generate sample
    flags for branch instructions.
    
    This patch add corresponding three new fields in cs_etm_packet struct
    and save related value into the packet structure, it is preparation for
    supporting sample flags.
    Signed-off-by: default avatarLeo Yan <leo.yan@linaro.org>
    Reviewed-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Robert Walker <robert.walker@arm.com>
    Cc: Suzuki K Poulouse <suzuki.poulose@arm.com>
    Cc: coresight ml <coresight@lists.linaro.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Link: http://lkml.kernel.org/r/20190129122842.32041-2-leo.yan@linaro.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    ca45d843
cs-etm-decoder.h 2.52 KB