Re: [PATCH 7/9] perf test: Support PERF_SAMPLE_WEIGHT_STRUCT

Arnaldo Carvalho de Melo
2021-02-03T20:49:40Z

Em Tue, Feb 02, 2021 at 12:09:11PM -0800, kan.liang@linux.intel.com escreveu:
> From: Kan Liang <kan.liang@linux.intel.com>
>
> Support the new sample type for sample-parsing test case.

ditto wrt code page size

> Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
> ---
> tools/perf/tests/sample-parsing.c | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/tools/perf/tests/sample-parsing.c b/tools/perf/tests/sample-parsing.c
> index 2393916..c5739cc 100644
> --- a/tools/perf/tests/sample-parsing.c
> +++ b/tools/perf/tests/sample-parsing.c
> @@ -129,6 +129,9 @@ static bool samples_same(const struct perf_sample *s1,
> if (type & PERF_SAMPLE_WEIGHT)
> COMP(weight);
>
> + if (type & PERF_SAMPLE_WEIGHT_STRUCT)
> + COMP(ins_lat);
> +
> if (type & PERF_SAMPLE_DATA_SRC)
> COMP(data_src);
>
> @@ -238,6 +241,7 @@ static int do_test(u64 sample_type, u64 sample_regs, u64 read_format)
> .phys_addr = 113,
> .cgroup = 114,
> .data_page_size = 115,
> + .ins_lat = 116,
> .aux_sample = {
> .size = sizeof(aux_data),
> .data = (void *)aux_data,
> @@ -344,7 +348,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
> * 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");
> return -1;
> }
> @@ -374,8 +378,12 @@ int test__sample_parsing(struct test *test __maybe_unused, int subtest __maybe_u
> 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 */
> for (i = 0; i < ARRAY_SIZE(rf); i++) {
> err = do_test(sample_type, sample_regs, rf[i]);
> --
> 2.7.4
>

--

- Arnaldo