perf test: Support PERF_SAMPLE_WEIGHT_STRUCT
Support the new sample type for sample-parsing test case. Signed-off-by: Kan 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-8-git-send-email-kan.liang@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
590db42de0
commit
c7444297fd
@ -129,6 +129,9 @@ static bool samples_same(const struct perf_sample *s1,
|
|||||||
if (type & PERF_SAMPLE_WEIGHT)
|
if (type & PERF_SAMPLE_WEIGHT)
|
||||||
COMP(weight);
|
COMP(weight);
|
||||||
|
|
||||||
|
if (type & PERF_SAMPLE_WEIGHT_STRUCT)
|
||||||
|
COMP(ins_lat);
|
||||||
|
|
||||||
if (type & PERF_SAMPLE_DATA_SRC)
|
if (type & PERF_SAMPLE_DATA_SRC)
|
||||||
COMP(data_src);
|
COMP(data_src);
|
||||||
|
|
||||||
@ -242,6 +245,7 @@ static int do_test(u64 sample_type, u64 sample_regs, u64 read_format)
|
|||||||
.cgroup = 114,
|
.cgroup = 114,
|
||||||
.data_page_size = 115,
|
.data_page_size = 115,
|
||||||
.code_page_size = 116,
|
.code_page_size = 116,
|
||||||
|
.ins_lat = 117,
|
||||||
.aux_sample = {
|
.aux_sample = {
|
||||||
.size = sizeof(aux_data),
|
.size = sizeof(aux_data),
|
||||||
.data = (void *)aux_data,
|
.data = (void *)aux_data,
|
||||||
@ -348,7 +352,7 @@ int test__sample_parsing(struct test *test __maybe_unused, int subtest __maybe_u
|
|||||||
* were added. Please actually update the test rather than just change
|
* were added. Please actually update the test rather than just change
|
||||||
* the condition below.
|
* the condition below.
|
||||||
*/
|
*/
|
||||||
if (PERF_SAMPLE_MAX > PERF_SAMPLE_CODE_PAGE_SIZE << 1) {
|
if (PERF_SAMPLE_MAX > PERF_SAMPLE_WEIGHT_STRUCT << 1) {
|
||||||
pr_debug("sample format has changed, some new PERF_SAMPLE_ bit was introduced - test needs updating\n");
|
pr_debug("sample format has changed, some new PERF_SAMPLE_ bit was introduced - test needs updating\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -378,8 +382,12 @@ int test__sample_parsing(struct test *test __maybe_unused, int subtest __maybe_u
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Test all sample format bits together */
|
/*
|
||||||
sample_type = PERF_SAMPLE_MAX - 1;
|
* Test all sample format bits together
|
||||||
|
* Note: PERF_SAMPLE_WEIGHT and PERF_SAMPLE_WEIGHT_STRUCT cannot
|
||||||
|
* be set simultaneously.
|
||||||
|
*/
|
||||||
|
sample_type = (PERF_SAMPLE_MAX - 1) & ~PERF_SAMPLE_WEIGHT;
|
||||||
sample_regs = 0x3fff; /* shared yb intr and user regs */
|
sample_regs = 0x3fff; /* shared yb intr and user regs */
|
||||||
for (i = 0; i < ARRAY_SIZE(rf); i++) {
|
for (i = 0; i < ARRAY_SIZE(rf); i++) {
|
||||||
err = do_test(sample_type, sample_regs, rf[i]);
|
err = do_test(sample_type, sample_regs, rf[i]);
|
||||||
|
Loading…
Reference in New Issue
Block a user