Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1219213

Re: [PATCH 15/31] tools lib api fs: Add FSTYPE__mount() method

From Raphaël Beamonte <raphael.beamonte@gmail.com>
Newsgroups linux.kernel
Subject Re: [PATCH 15/31] tools lib api fs: Add FSTYPE__mount() method
Date 2015-09-04 19:10 +0200
Message-ID <q52EX-8lv-25@gated-at.bofh.it> (permalink)
References <q52lz-7Jv-3@gated-at.bofh.it> <q52vi-7V0-65@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


2015-09-04 12:44 GMT-04:00 Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>:
> From: Jiri Olsa <jolsa@kernel.org>
>
> Adding FSTYPE__mount (where FSTYPE is, as of now, one of sysfs, procfs,
> debugfs, tracefs) method that tries to mount the filesystem in case no
> mount of FSTYPE is found.
>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> Cc: Raphael Beamonte <raphael.beamonte@gmail.com>
> Cc: David Ahern <dsahern@gmail.com>
> Cc: Matt Fleming <matt@codeblueprint.co.uk>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Link: http://lkml.kernel.org/r/1441180605-24737-12-git-send-email-jolsa@kernel.org
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> ---
>  tools/lib/api/fs/fs.c | 44 +++++++++++++++++++++++++++++++++++++++-----
>  tools/lib/api/fs/fs.h | 15 +++++++++++----
>  2 files changed, 50 insertions(+), 9 deletions(-)

Same thing here. I think I sent it to a reply of reply, should have
sent it directly in reply to the patch.
Reviewed-by: Raphael Beamonte <raphael.beamonte@gmail.com>

> diff --git a/tools/lib/api/fs/fs.c b/tools/lib/api/fs/fs.c
> index ef16d2a83a27..bc93baf33fff 100644
> --- a/tools/lib/api/fs/fs.c
> +++ b/tools/lib/api/fs/fs.c
> @@ -9,6 +9,7 @@
>  #include <sys/stat.h>
>  #include <fcntl.h>
>  #include <unistd.h>
> +#include <sys/mount.h>
>
>  #include "debugfs.h"
>  #include "fs.h"
> @@ -215,16 +216,49 @@ static const char *fs__mountpoint(int idx)
>         return fs__get_mountpoint(fs);
>  }
>
> -#define FS__MOUNTPOINT(name, idx)      \
> +static const char *mount_overload(struct fs *fs)
> +{
> +       size_t name_len = strlen(fs->name);
> +       /* "PERF_" + name + "_ENVIRONMENT" + '\0' */
> +       char upper_name[5 + name_len + 12 + 1];
> +
> +       snprintf(upper_name, name_len, "PERF_%s_ENVIRONMENT", fs->name);
> +       mem_toupper(upper_name, name_len);
> +
> +       return getenv(upper_name) ?: *fs->mounts;
> +}
> +
> +static const char *fs__mount(int idx)
> +{
> +       struct fs *fs = &fs__entries[idx];
> +       const char *mountpoint;
> +
> +       if (fs__mountpoint(idx))
> +               return (const char *)fs->path;
> +
> +       mountpoint = mount_overload(fs);
> +
> +       if (mount(NULL, mountpoint, fs->name, 0, NULL) < 0)
> +               return NULL;
> +
> +       return fs__check_mounts(fs) ? fs->path : NULL;
> +}
> +
> +#define FS(name, idx)                  \
>  const char *name##__mountpoint(void)   \
>  {                                      \
>         return fs__mountpoint(idx);     \
> +}                                      \
> +                                       \
> +const char *name##__mount(void)                \
> +{                                      \
> +       return fs__mount(idx);          \
>  }
>
> -FS__MOUNTPOINT(sysfs,   FS__SYSFS);
> -FS__MOUNTPOINT(procfs,  FS__PROCFS);
> -FS__MOUNTPOINT(debugfs, FS__DEBUGFS);
> -FS__MOUNTPOINT(tracefs, FS__TRACEFS);
> +FS(sysfs,   FS__SYSFS);
> +FS(procfs,  FS__PROCFS);
> +FS(debugfs, FS__DEBUGFS);
> +FS(tracefs, FS__TRACEFS);
>
>  int filename__read_int(const char *filename, int *value)
>  {
> diff --git a/tools/lib/api/fs/fs.h b/tools/lib/api/fs/fs.h
> index 9013227ae0d1..a9627ea5e6ae 100644
> --- a/tools/lib/api/fs/fs.h
> +++ b/tools/lib/api/fs/fs.h
> @@ -9,10 +9,17 @@
>  #define PATH_MAX 4096
>  #endif
>
> -const char *sysfs__mountpoint(void);
> -const char *procfs__mountpoint(void);
> -const char *debugfs__mountpoint(void);
> -const char *tracefs__mountpoint(void);
> +#define FS(name)                               \
> +       const char *name##__mountpoint(void);   \
> +       const char *name##__mount(void);
> +
> +FS(sysfs)
> +FS(procfs)
> +FS(debugfs)
> +FS(tracefs)
> +
> +#undef FS
> +
>
>  int filename__read_int(const char *filename, int *value);
>  int sysctl__read_int(const char *sysctl, int *value);
> --
> 2.1.0
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[GIT PULL 00/31] perf/core improvements and fixes Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 23/31] x86/insn: perf tools: Add new xsave instructions Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 08/31] perf tools: Move tracing_path stuff under same namespace Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 30/31] perf probe: Print deleted events in cmd_probe() Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 29/31] perf probe: Split del_perf_probe_events() Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 11/31] tools lib api fs: Add STR and PATH_MAX macros to fs object Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 14/31] tools lib api fs: Add tracefs into fs.c object Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 01/31] perf tools: Always use non inlined file name for 'srcfile' sort key Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 19/31] x86/insn: perf tools: Pedantically tweak opcode map for MPX instructions Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 25/31] perf intel-pt: Add support for PERF_RECORD_SWITCH Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 28/31] perf probe: Move print logic into cmd_probe() Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 16/31] tools lib api fs: Add FSTYPE__configured() method Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 24/31] perf session: Don't call dump_sample() when evsel is NULL Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  Re: [PATCH 10/31] tools lib api fs: Move debugfs__strerror_open into  tracing_path.c object Raphaël Beamonte <raphael.beamonte@gmail.com> - 2015-09-04 19:00 +0200
    Re: [PATCH 10/31] tools lib api fs: Move debugfs__strerror_open into  tracing_path.c object Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> - 2015-09-04 22:40 +0200
  [PATCH 06/31] perf stat: Quieten failed to read counter message Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 27/31] perf probe: Link trace_probe_event into perf_probe_event Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 09/31] tools lib api fs: Move tracing_path interface into api/fs/tracing_path.c Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 31/31] perf trace: Add read/write to the file group Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 22/31] x86/insn: perf tools: Add new memory protection keys instructions Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 04/31] perf cpumap: Factor out functions to get core_id and socket_id Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 12/31] tools lib api fs: Move SYSFS_MAGIC PROC_SUPER_MAGIC into fs.c Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 15/31] tools lib api fs: Add FSTYPE__mount() method Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
    Re: [PATCH 15/31] tools lib api fs: Add FSTYPE__mount() method Raphaël Beamonte <raphael.beamonte@gmail.com> - 2015-09-04 19:10 +0200
  [PATCH 10/31] tools lib api fs: Move debugfs__strerror_open into tracing_path.c object Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 07/31] perf tools: Remove mountpoint arg from perf_debugfs_mount Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 13/31] tools lib api fs: Add debugfs into fs.c object Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 26/31] perf probe: Split add_perf_probe_events() Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 05/31] perf tools: Store the cpu socket and core ids in the perf.data header Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200

csiph-web