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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 18 Oct 2017 17:39:49 +0200
From:   Jiri Olsa <jolsa@...hat.com>
To:     kan.liang@...el.com
Cc:     acme@...nel.org, mingo@...hat.com, linux-kernel@...r.kernel.org,
        peterz@...radead.org, jolsa@...nel.org, wangnan0@...wei.com,
        hekuang@...wei.com, namhyung@...nel.org,
        alexander.shishkin@...ux.intel.com, adrian.hunter@...el.com,
        ak@...ux.intel.com
Subject: Re: [PATCH V2 4/5] perf record: synthesize event multithreading
 support

On Wed, Oct 18, 2017 at 07:29:32AM -0700, kan.liang@...el.com wrote:

SNIP

> +static int record__multithread_synthesize(struct record *rec,
> +					  struct machine *machine,
> +					  struct perf_tool *tool,
> +					  struct record_opts *opts)
> +{
> +	int i, err, nr_thread = sysconf(_SC_NPROCESSORS_ONLN);
> +	char name[PATH_MAX];
> +	struct stat st;
> +
> +	if (nr_thread <= 1)
> +		return __machine__synthesize_threads(machine, tool,
> +						     &opts->target,
> +						     rec->evlist->threads,
> +						     process_synthesized_event,
> +						     opts->sample_address,
> +						     opts->proc_map_timeout,
> +						     1);

          ^^^^^^^^^^^^^^^^^^

> +
>  static int record__synthesize(struct record *rec, bool tail)
>  {
>  	struct perf_session *session = rec->session;
> @@ -766,9 +856,16 @@ static int record__synthesize(struct record *rec, bool tail)
>  					 perf_event__synthesize_guest_os, tool);
>  	}
>  
> -	err = __machine__synthesize_threads(machine, tool, &opts->target, rec->evlist->threads,
> -					    process_synthesized_event, opts->sample_address,
> -					    opts->proc_map_timeout, 1);
> +	/* multithreading synthesize is only available for cpu monitoring */
> +	if (target__has_cpu(&opts->target))
> +		err = record__multithread_synthesize(rec, machine, tool, opts);
> +	else
> +		err = __machine__synthesize_threads(machine, tool,
> +						    &opts->target,
> +						    rec->evlist->threads,
> +						    process_synthesized_event,
> +						    opts->sample_address,
> +						    opts->proc_map_timeout, 1);

hum, this could be checked together with nr_thread in record__multithread_synthesize

jirka

Powered by blists - more mailing lists