mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-29 23:53:32 +00:00
perf mem: Print memory operation type
The memory operation types are not only for load and store, for easier reviewing the memory operation type, this patch prints out it. Before: ls 14753 [011] 3678.072400: 1 l1d-miss: 88000182 L1 miss|SNP N/A|TLB Walker hit|LCK No|BLK N/A ffffa7c22b4b2a00 [unknown] ([kernel.kallsyms]) ls 14753 [011] 3678.072400: 1 l1d-access: 88000182 L1 miss|SNP N/A|TLB Walker hit|LCK No|BLK N/A ffffa7c22b4b2a00 [unknown] ([kernel.kallsyms]) ls 14753 [011] 3678.072400: 1 tlb-access: 88000182 L1 miss|SNP N/A|TLB Walker hit|LCK No|BLK N/A ffffa7c22b4b2a00 [unknown] ([kernel.kallsyms]) ls 14753 [011] 3678.072400: 1 memory: 88000182 L1 miss|SNP N/A|TLB Walker hit|LCK No|BLK N/A ffffa7c22b4b2a00 [unknown] ([kernel.kallsyms]) After: ls 14753 [011] 3678.072400: 1 l1d-miss: 88000182 |OP LOAD|LVL L1 miss|SNP N/A|TLB Walker hit|LCK No|BLK N/A ffffa7c22b4b2a00 [unknown] ([kernel.kallsyms]) ls 14753 [011] 3678.072400: 1 l1d-access: 88000182 |OP LOAD|LVL L1 miss|SNP N/A|TLB Walker hit|LCK No|BLK N/A ffffa7c22b4b2a00 [unknown] ([kernel.kallsyms]) ls 14753 [011] 3678.072400: 1 tlb-access: 88000182 |OP LOAD|LVL L1 miss|SNP N/A|TLB Walker hit|LCK No|BLK N/A ffffa7c22b4b2a00 [unknown] ([kernel.kallsyms]) ls 14753 [011] 3678.072400: 1 memory: 88000182 |OP LOAD|LVL L1 miss|SNP N/A|TLB Walker hit|LCK No|BLK N/A ffffa7c22b4b2a00 [unknown] ([kernel.kallsyms]) Signed-off-by: Leo Yan <leo.yan@linaro.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Ali Saidi <alisaidi@amazon.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kajol Jain <kjain@linux.ibm.com> Cc: Li Huafei <lihuafei1@huawei.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20220417124524.901148-1-leo.yan@linaro.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
24f378e660
commit
fdefc3750e
1 changed files with 28 additions and 1 deletions
|
@ -314,6 +314,30 @@ static const char * const mem_hops[] = {
|
|||
"board",
|
||||
};
|
||||
|
||||
static int perf_mem__op_scnprintf(char *out, size_t sz, struct mem_info *mem_info)
|
||||
{
|
||||
u64 op = PERF_MEM_LOCK_NA;
|
||||
int l;
|
||||
|
||||
if (mem_info)
|
||||
op = mem_info->data_src.mem_op;
|
||||
|
||||
if (op & PERF_MEM_OP_NA)
|
||||
l = scnprintf(out, sz, "N/A");
|
||||
else if (op & PERF_MEM_OP_LOAD)
|
||||
l = scnprintf(out, sz, "LOAD");
|
||||
else if (op & PERF_MEM_OP_STORE)
|
||||
l = scnprintf(out, sz, "STORE");
|
||||
else if (op & PERF_MEM_OP_PFETCH)
|
||||
l = scnprintf(out, sz, "PFETCH");
|
||||
else if (op & PERF_MEM_OP_EXEC)
|
||||
l = scnprintf(out, sz, "EXEC");
|
||||
else
|
||||
l = scnprintf(out, sz, "No");
|
||||
|
||||
return l;
|
||||
}
|
||||
|
||||
int perf_mem__lvl_scnprintf(char *out, size_t sz, struct mem_info *mem_info)
|
||||
{
|
||||
size_t i, l = 0;
|
||||
|
@ -466,7 +490,10 @@ int perf_script__meminfo_scnprintf(char *out, size_t sz, struct mem_info *mem_in
|
|||
{
|
||||
int i = 0;
|
||||
|
||||
i += perf_mem__lvl_scnprintf(out, sz, mem_info);
|
||||
i += scnprintf(out, sz, "|OP ");
|
||||
i += perf_mem__op_scnprintf(out + i, sz - i, mem_info);
|
||||
i += scnprintf(out + i, sz - i, "|LVL ");
|
||||
i += perf_mem__lvl_scnprintf(out + i, sz, mem_info);
|
||||
i += scnprintf(out + i, sz - i, "|SNP ");
|
||||
i += perf_mem__snp_scnprintf(out + i, sz - i, mem_info);
|
||||
i += scnprintf(out + i, sz - i, "|TLB ");
|
||||
|
|
Loading…
Reference in a new issue