• Kan Liang's avatar
    perf tools: Support PERF_SAMPLE_WEIGHT_STRUCT · ea8d0ed6
    Kan Liang authored
    The new sample type, PERF_SAMPLE_WEIGHT_STRUCT, is an alternative of the
    PERF_SAMPLE_WEIGHT sample type. Users can apply either the
    PERF_SAMPLE_WEIGHT sample type or the PERF_SAMPLE_WEIGHT_STRUCT sample
    type to retrieve the sample weight, but they cannot apply both sample
    types simultaneously.
    
    The new sample type shares the same space as the PERF_SAMPLE_WEIGHT
    sample type. The lower 32 bits are exactly the same for both sample
    type. The higher 32 bits may be different for different architecture.
    
    Add arch specific arch_evsel__set_sample_weight() to set the new sample
    type for X86. Only store the lower 32 bits for the sample->weight if the
    new sample type is applied. In practice, no memory access could last
    than 4G cycles. No data will be lost.
    
    If the kernel doesn't support the new sample type. Fall back to the
    PERF_SAMPLE_WEIGHT sample type.
    
    There is no impact for other architectures.
    
    Committer notes:
    
    Fixup related to PERF_SAMPLE_CODE_PAGE_SIZE, present in acme/perf/core
    but not upstream yet.
    Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jin Yao <yao.jin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lore.kernel.org/lkml/1612296553-21962-6-git-send-email-kan.liang@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    ea8d0ed6
synthetic-events.c 51.7 KB