• Leo Yan's avatar
    perf cs-etm: Fix start tracing packet handling · 3eb3e07b
    Leo Yan authored
    Usually the start tracing packet is a CS_ETM_TRACE_ON packet, this
    packet is passed to cs_etm__flush();  cs_etm__flush() will check the
    condition 'prev_packet->sample_type == CS_ETM_RANGE' but 'prev_packet'
    is allocated by zalloc() so 'prev_packet->sample_type' is zero in
    initialization and this condition is false.  So cs_etm__flush() will
    directly bail out without handling the start tracing packet.
    
    This patch is to introduce a new sample type CS_ETM_EMPTY, which is used
    to indicate the packet is an empty packet.  cs_etm__flush() will swap
    packets when it finds the previous packet is empty, so this can record
    the start tracing packet into 'etmq->prev_packet'.
    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: Kim Phillips <kim.phillips@arm.com>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Robert Walker <robert.walker@arm.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Link: http://lkml.kernel.org/r/1531295145-596-4-git-send-email-leo.yan@linaro.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    3eb3e07b
cs-etm.c 36 KB