lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160513130854.GI11346@kernel.org>
Date:	Fri, 13 May 2016 10:08:54 -0300
From:	Arnaldo Carvalho de Melo <acme@...nel.org>
To:	Wang Nan <wangnan0@...wei.com>
Cc:	arnaldo.melo@...il.com, linux-kernel@...r.kernel.org,
	He Kuang <hekuang@...wei.com>,
	Arnaldo Carvalho de Melo <acme@...hat.com>,
	Jiri Olsa <jolsa@...nel.org>,
	Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>,
	Namhyung Kim <namhyung@...nel.org>,
	Zefan Li <lizefan@...wei.com>, pi3orama@....com
Subject: Re: [PATCH 09/17] perf tools: Detect avalibility of write_backward

Em Fri, May 13, 2016 at 07:56:06AM +0000, Wang Nan escreveu:
> Detect avalibility of write_backward and save the result into
> record_opts. With write_backward the start pointer of a ring
> buffer mapped read only can be found reliably.

We have perf_missing_features for that, please try to use it.

- Arnaldo
 
> Signed-off-by: Wang Nan <wangnan0@...wei.com>
> Signed-off-by: He Kuang <hekuang@...wei.com>
> Cc: Arnaldo Carvalho de Melo <acme@...hat.com>
> Cc: Jiri Olsa <jolsa@...nel.org>
> Cc: Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>
> Cc: Namhyung Kim <namhyung@...nel.org>
> Cc: Zefan Li <lizefan@...wei.com>
> Cc: pi3orama@....com
> ---
>  tools/perf/perf.h        |  1 +
>  tools/perf/util/record.c | 11 +++++++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/tools/perf/perf.h b/tools/perf/perf.h
> index cd8f1b1..c35bcfd 100644
> --- a/tools/perf/perf.h
> +++ b/tools/perf/perf.h
> @@ -72,6 +72,7 @@ struct record_opts {
>  	bool	     sample_transaction;
>  	unsigned     initial_delay;
>  	bool         use_clockid;
> +	bool	     has_write_backward;
>  	clockid_t    clockid;
>  	unsigned int proc_map_timeout;
>  };
> diff --git a/tools/perf/util/record.c b/tools/perf/util/record.c
> index 481792c..bb871d8 100644
> --- a/tools/perf/util/record.c
> +++ b/tools/perf/util/record.c
> @@ -85,6 +85,11 @@ static void perf_probe_comm_exec(struct perf_evsel *evsel)
>  	evsel->attr.comm_exec = 1;
>  }
>  
> +static void perf_probe_write_backward(struct perf_evsel *evsel)
> +{
> +	evsel->attr.write_backward = 1;
> +}
> +
>  static void perf_probe_context_switch(struct perf_evsel *evsel)
>  {
>  	evsel->attr.context_switch = 1;
> @@ -105,6 +110,11 @@ bool perf_can_record_switch_events(void)
>  	return perf_probe_api(perf_probe_context_switch);
>  }
>  
> +static bool perf_can_write_backward(void)
> +{
> +	return perf_probe_api(perf_probe_write_backward);
> +}
> +
>  bool perf_can_record_cpu_wide(void)
>  {
>  	struct perf_event_attr attr = {
> @@ -236,6 +246,7 @@ static int record_opts__config_freq(struct record_opts *opts)
>  
>  int record_opts__config(struct record_opts *opts)
>  {
> +	opts->has_write_backward = perf_can_write_backward();
>  	return record_opts__config_freq(opts);
>  }
>  
> -- 
> 1.8.3.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ