All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Liang, Kan" <kan.liang@linux.intel.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: mingo@kernel.org, jolsa@redhat.com, linux-kernel@vger.kernel.org,
	namhyung@kernel.org, eranian@google.com, ak@linux.intel.com,
	mark.rutland@arm.com, will@kernel.org, mpe@ellerman.id.au
Subject: Re: [PATCH V2 02/12] perf record: Support new sample type for data page size
Date: Mon, 7 Dec 2020 15:25:07 -0500	[thread overview]
Message-ID: <124d0414-f834-e2f0-8359-50488add60d1@linux.intel.com> (raw)
In-Reply-To: <20201207170759.GB129853@kernel.org>



On 12/7/2020 12:07 PM, Arnaldo Carvalho de Melo wrote:
> Em Mon, Nov 30, 2020 at 09:27:53AM -0800, kan.liang@linux.intel.com escreveu:
>> From: Kan Liang <kan.liang@linux.intel.com>
>>
>> Support new sample type PERF_SAMPLE_DATA_PAGE_SIZE for page size.
>>
>> Add new option --data-page-size to record sample data page size.
> 
> So, trying this on a kernel without this feature I get:
> 
> [acme@five perf]$ perf record --data-page-size sleep 1
> Error:
> The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (cycles:u).
> /bin/dmesg | grep -i perf may provide additional information.
> 
> [acme@five perf]$
> 
> I'm adding the following patch right after yours, next time please test
> this and provide a similar error message.
>

Sorry, I missed it.

Besides the PERF_SAMPLE_DATA_PAGE_SIZE, I think we have to fix the 
PERF_SAMPLE_CODE_PAGE_SIZE as well.
Should I send a separate patch to fix it?

Thanks,
Kan


> - Arnaldo
> 
> commit 2044fec7fcc6070b09f9b6a67922b0b9e4295dba
> Author: Arnaldo Carvalho de Melo <acme@redhat.com>
> Date:   Mon Dec 7 14:04:05 2020 -0300
> 
>      perf evsel: Emit warning about kernel not supporting the data page size sample_type bit
>      
>      Before we had this unhelpful message:
>      
>        $ perf record --data-page-size sleep 1
>        Error:
>        The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (cycles:u).
>        /bin/dmesg | grep -i perf may provide additional information.
>        $
>      
>      Add support to the perf_missing_features variable to remember what
>      caused evsel__open() to fail and then use that information in
>      evsel__open_strerror().
>      
>        $ perf record --data-page-size sleep 1
>        Error:
>        Asking for the data page size isn't supported by this kernel.
>        $
>      
>      Cc: Kan Liang <kan.liang@linux.intel.com>
>      Cc: Namhyung Kim <namhyung@kernel.org>
>      Cc: Andi Kleen <ak@linux.intel.com>
>      Cc: Jiri Olsa <jolsa@redhat.com>
>      Cc: Mark Rutland <mark.rutland@arm.com>
>      Cc: Michael Ellerman <mpe@ellerman.id.au>
>      Cc: Stephane Eranian <eranian@google.com>
>      Cc: Will Deacon <will@kernel.org>
>      Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> 
> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> index 5e6085c3fc761a55..c26ea82220bd8625 100644
> --- a/tools/perf/util/evsel.c
> +++ b/tools/perf/util/evsel.c
> @@ -1873,7 +1873,12 @@ static int evsel__open_cpu(struct evsel *evsel, struct perf_cpu_map *cpus,
>   	 * Must probe features in the order they were added to the
>   	 * perf_event_attr interface.
>   	 */
> -        if (!perf_missing_features.cgroup && evsel->core.attr.cgroup) {
> +        if (!perf_missing_features.data_page_size &&
> +	    (evsel->core.attr.sample_type & PERF_SAMPLE_DATA_PAGE_SIZE)) {
> +		perf_missing_features.data_page_size = true;
> +		pr_debug2_peo("Kernel has no PERF_SAMPLE_DATA_PAGE_SIZE support, bailing out\n");
> +		goto out_close;
> +	} else if (!perf_missing_features.cgroup && evsel->core.attr.cgroup) {
>   		perf_missing_features.cgroup = true;
>   		pr_debug2_peo("Kernel has no cgroup sampling support, bailing out\n");
>   		goto out_close;
> @@ -2673,6 +2678,8 @@ int evsel__open_strerror(struct evsel *evsel, struct target *target,
>   	"We found oprofile daemon running, please stop it and try again.");
>   		break;
>   	case EINVAL:
> +		if (evsel->core.attr.sample_type & PERF_SAMPLE_DATA_PAGE_SIZE && perf_missing_features.data_page_size)
> +			return scnprintf(msg, size, "Asking for the data page size isn't supported by this kernel.");
>   		if (evsel->core.attr.write_backward && perf_missing_features.write_backward)
>   			return scnprintf(msg, size, "Reading from overwrite event is not supported by this kernel.");
>   		if (perf_missing_features.clockid)
> diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
> index 79a860d8e3eefe23..cd1d8dd431997b84 100644
> --- a/tools/perf/util/evsel.h
> +++ b/tools/perf/util/evsel.h
> @@ -144,6 +144,7 @@ struct perf_missing_features {
>   	bool aux_output;
>   	bool branch_hw_idx;
>   	bool cgroup;
> +	bool data_page_size;
>   };
>   
>   extern struct perf_missing_features perf_missing_features;
> 

  reply	other threads:[~2020-12-07 20:27 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-30 17:27 [PATCH V2 00/12] Add the page size in the perf record (user tools) kan.liang
2020-11-30 17:27 ` [PATCH V2 01/12] tools headers UAPI: Update tools's copy of linux/perf_event.h kan.liang
2020-12-07 16:52   ` Arnaldo Carvalho de Melo
2020-11-30 17:27 ` [PATCH V2 02/12] perf record: Support new sample type for data page size kan.liang
2020-12-07 17:07   ` Arnaldo Carvalho de Melo
2020-12-07 20:25     ` Liang, Kan [this message]
2020-12-16 15:49       ` Arnaldo Carvalho de Melo
2020-11-30 17:27 ` [PATCH V2 03/12] perf script: Support " kan.liang
2020-12-04 23:27   ` Jiri Olsa
2020-11-30 17:27 ` [PATCH V2 04/12] perf sort: Add sort option for " kan.liang
2020-11-30 17:27 ` [PATCH V2 05/12] perf mem: Factor out a function to generate sort order kan.liang
2020-12-04 23:27   ` Jiri Olsa
2020-11-30 17:27 ` [PATCH V2 06/12] perf mem: Clean up output format kan.liang
2020-12-04 23:27   ` Jiri Olsa
2020-12-07 20:19     ` Liang, Kan
2020-12-08 10:29       ` Jiri Olsa
2020-11-30 17:27 ` [PATCH V2 07/12] perf mem: Support data page size kan.liang
2020-11-30 17:27 ` [PATCH V2 08/12] perf test: Add test case for PERF_SAMPLE_DATA_PAGE_SIZE kan.liang
2020-11-30 17:28 ` [PATCH V2 09/12] perf tools: Add support for PERF_SAMPLE_CODE_PAGE_SIZE kan.liang
2020-11-30 17:28 ` [PATCH V2 10/12] perf script: " kan.liang
2020-11-30 17:28 ` [PATCH V2 11/12] perf report: " kan.liang
2020-11-30 17:28 ` [PATCH V2 12/12] perf test: Add test case " kan.liang
2020-12-08 10:31 ` [PATCH V2 00/12] Add the page size in the perf record (user tools) Jiri Olsa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=124d0414-f834-e2f0-8359-50488add60d1@linux.intel.com \
    --to=kan.liang@linux.intel.com \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=eranian@google.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=namhyung@kernel.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.