linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Alexey Budankov <alexey.budankov@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Andi Kleen <ak@linux.intel.com>,
	Stephane Eranian <eranian@google.com>
Subject: Re: [PATCH 06/14] perf data: Add perf_data__(create_dir|free_dir) functions
Date: Tue, 5 Feb 2019 14:42:34 +0100	[thread overview]
Message-ID: <20190205134234.GH4794@krava> (raw)
In-Reply-To: <19a2d4fd-11b4-dc80-2d0a-c4bccd95736c@linux.intel.com>

On Tue, Feb 05, 2019 at 02:52:58PM +0300, Alexey Budankov wrote:
> 
> On 03.02.2019 18:30, Jiri Olsa wrote:
> > Adding perf_data__create_dir to create nr files inside
> > struct perf_data path directory:
> >   int perf_data__create_dir(struct perf_data *data, int nr);
> > 
> > and function to free that data:
> >   void perf_data__free_dir(struct perf_data *data);
> > 
> > Link: http://lkml.kernel.org/n/tip-kl4s1f13cg6wycrg367p85qm@git.kernel.org
> > Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> > ---
> >  tools/perf/util/data.c | 47 ++++++++++++++++++++++++++++++++++++++++++
> >  tools/perf/util/data.h |  8 +++++++
> >  2 files changed, 55 insertions(+)
> > 
> > diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c
> > index 0a3051cc0ea0..ff1d9e5bd68d 100644
> > --- a/tools/perf/util/data.c
> > +++ b/tools/perf/util/data.c
> > @@ -7,11 +7,58 @@
> >  #include <fcntl.h>
> >  #include <unistd.h>
> >  #include <string.h>
> > +#include <asm/bug.h>
> >  
> >  #include "data.h"
> >  #include "util.h"
> >  #include "debug.h"
> >  
> > +static void free_dir(struct perf_data_file *files, int nr)
> > +{
> > +	while (--nr >= 1) {
> > +		close(files[nr].fd);
> > +		free(files[nr].path);
> > +	}
> > +	free(files);
> 
> It implements closing of created files and frees corresponding memory.
> However it doesn't delete the files what looks like the proper rollback
> from perf_data__create_dir() in case of some open() failure.

we don't di rollback event for the single file:

	[jolsa@krava perf]$ ./perf record -b ls
	Error:
	You may not have permission to collect stats.

	Consider tweaking /proc/sys/kernel/perf_event_paranoid,
	which controls use of the performance events system by
	unprivileged users (without CAP_SYS_ADMIN).

	The current value is 2:

	  -1: Allow use of (almost) all events by all users
	      Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK
	>= 0: Disallow ftrace function tracepoint by users without CAP_SYS_ADMIN
	      Disallow raw tracepoint access by users without CAP_SYS_ADMIN
	>= 1: Disallow CPU event access by users without CAP_SYS_ADMIN
	>= 2: Disallow kernel profiling by users without CAP_SYS_ADMIN

	To make this setting permanent, edit /etc/sysctl.conf too, e.g.:

		kernel.perf_event_paranoid = -1

	[jolsa@krava perf]$ ll perf.data
	-rw-------. 1 jolsa jolsa 0 Feb  5 14:40 perf.data

there're multiple points where we could fail during the processing
and fail record command with unfinished perf.data, but yes, I think
we should address that and have some cleanup, I'll check

thanks,
jirka

  reply	other threads:[~2019-02-05 13:42 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-03 15:30 [RFC/PATCH 00/14] perf record: Add support to store data in directory Jiri Olsa
2019-02-03 15:30 ` [PATCH 01/14] perf tools: Make rm_rf to remove single file Jiri Olsa
2019-02-05 11:33   ` Alexey Budankov
2019-02-05 13:38     ` Jiri Olsa
2019-02-03 15:30 ` [PATCH 02/14] perf session: Add process callback to reader object Jiri Olsa
2019-02-03 15:30 ` [PATCH 03/14] perf data: Move size to struct perf_data_file Jiri Olsa
2019-02-03 15:30 ` [PATCH 04/14] perf data: Add global path holder Jiri Olsa
2019-02-03 15:30 ` [PATCH 05/14] perf data: Make check_backup work over directories Jiri Olsa
2019-02-03 15:30 ` [PATCH 06/14] perf data: Add perf_data__(create_dir|free_dir) functions Jiri Olsa
2019-02-05 11:52   ` Alexey Budankov
2019-02-05 13:42     ` Jiri Olsa [this message]
2019-02-05 13:46   ` Arnaldo Carvalho de Melo
2019-02-05 13:53     ` Jiri Olsa
2019-02-03 15:30 ` [PATCH 07/14] perf data: Add perf_data__open_dir_data function Jiri Olsa
2019-02-03 15:30 ` [PATCH 08/14] perf data: Add directory support Jiri Olsa
2019-02-03 15:30 ` [PATCH 09/14] perf data: Don't store auxtrace index for directory data file Jiri Olsa
2019-02-03 15:30 ` [PATCH 10/14] perf data: Add perf_data__update_dir function Jiri Olsa
2019-02-03 15:30 ` [PATCH 11/14] perf data: Make perf_data__size to work over directory Jiri Olsa
2019-02-03 15:30 ` [PATCH 12/14] perf session: Add __perf_session__process_dir_events function Jiri Olsa
2019-02-03 15:30 ` [PATCH 13/14] perf session: Add path to reader object Jiri Olsa
2019-02-03 15:30 ` [PATCH 14/14] perf record: Add --dir option to store data in directory Jiri Olsa
2019-02-05 12:36   ` Alexey Budankov
2019-02-05 13:51     ` Jiri Olsa
2019-02-04 10:12 ` [RFC/PATCH 00/14] perf record: Add support " Alexey Budankov
2019-02-04 10:36   ` Jiri Olsa
2019-02-04 11:29     ` Alexey Budankov
2019-02-04 11:41       ` Jiri Olsa
2019-02-04 18:56         ` Stephane Eranian
2019-02-04 19:27           ` Arnaldo Carvalho de Melo
2019-02-04 19:56             ` Alexey Budankov
2019-02-04 20:05             ` Stephane Eranian
2019-02-04 20:28               ` Jiri Olsa
2019-02-04 22:44                 ` Stephane Eranian
2019-02-05 13:37                   ` Jiri Olsa
2019-02-11 10:19                     ` Jiri Olsa
2019-02-11 18:34                       ` Stephane Eranian
2019-02-11 18:53                         ` Jiri Olsa
2019-02-11 19:32                           ` Arnaldo Carvalho de Melo
2019-02-11 20:18                             ` Jiri Olsa
2019-02-11 20:43                               ` Stephane Eranian
2019-02-14 11:34                                 ` Jiri Olsa
2019-02-14 12:57                                   ` Arnaldo Carvalho de Melo
2019-02-14 13:26                                     ` Jiri Olsa
2019-02-14 13:59                                       ` Arnaldo Carvalho de Melo
2019-02-14 21:30                                         ` Stephane Eranian
     [not found]                                           ` <CA+JHD90ssKi3CJ7yfCFTkrS8xwUsZhvd0t7cSCy1MF7TJ2XLYw@mail.gmail.com>
2019-02-14 21:39                                             ` Stephane Eranian
2019-02-11 18:55                         ` Arnaldo Carvalho de Melo
2019-02-11 19:30                           ` Stephane Eranian
2019-02-11 20:30                             ` Song Liu

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=20190205134234.GH4794@krava \
    --to=jolsa@redhat.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=alexey.budankov@linux.intel.com \
    --cc=eranian@google.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).