• James Clark's avatar
    perf cs-etm: Split setup and timestamp search functions · 9ac8afd5
    James Clark authored
    This refactoring has some benefits:
    
     * Decoding is done to find the timestamp. If we want to print errors
       when maps aren't available, then doing it from cs_etm__setup_queue()
       may cause warnings to be printed.
    
     * The cs_etm__setup_queue() flow is shared between timed and timeless
       modes, so it needs to be guarded by an if statement which can now
       be removed.
    
     * Allows moving the setup queues function earlier.
    
     * If data was piped in, then not all queues would be filled so it
       wouldn't have worked properly anyway. Now it waits for flush so
       data in all queues will be available.
    
    The motivation for this is to decouple setup functions with ones that
    involve decoding. That way we can move the setup function earlier when
    the formatted/unformatted trace information is available.
    Reviewed-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: default avatarJames Clark <james.clark@arm.com>
    Cc: Al Grant <al.grant@arm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Anshuman Khandual <anshuman.khandual@arm.com>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: John Garry <john.garry@huawei.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: coresight@lists.linaro.org
    Cc: linux-arm-kernel@lists.infradead.org
    Link: https //lore.kernel.org/r/20210721150202.32065-3-james.clark@arm.com
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    9ac8afd5
cs-etm.c 84.6 KB