Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1219083
| From | Raphaël Beamonte <raphael.beamonte@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 11/15] tools lib api: Add mount support for fs |
| Date | 2015-09-04 16:20 +0200 |
| Message-ID | <q500q-4vH-9@gated-at.bofh.it> (permalink) |
| References | <q4b7z-7ff-3@gated-at.bofh.it> <q4b7B-7ff-29@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
2015-09-02 3:56 GMT-04:00 Jiri Olsa <jolsa@kernel.org>:
> Adding name__mount (where name is in sysfs,procfs,debugfs,tracefs)
> interface that tries to mount the filesystem in case no mount is found.
>
> Link: http://lkml.kernel.org/n/tip-ja49vwfiq2qqkmoxx9yk26lm@git.kernel.org
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> ---
> tools/lib/api/fs/fs.c | 44 +++++++++++++++++++++++++++++++++++++++-----
> tools/lib/api/fs/fs.h | 15 +++++++++++----
> 2 files changed, 50 insertions(+), 9 deletions(-)
Why automatic mounting the **fs filesystems?
Isn't it better to let the user decide when and where to mount it if
s/he forgot to do it before? Forcing a mount is also potentially
forcing to umount then mount when mounting has been forgotten before.
> 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.4.3
>
--
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 | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 00/15] perf tools: Cleanup filesystem api Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
[PATCH 01/15] perf tools: Fix parse_events_add_pmu caller Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
Re: [PATCH 01/15] perf tools: Fix parse_events_add_pmu caller Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-02 15:10 +0200
Re: [PATCH 01/15] perf tools: Fix parse_events_add_pmu caller Jiri Olsa <jolsa@redhat.com> - 2015-09-02 15:40 +0200
[tip:perf/urgent] perf tools: Fix parse_events_add_pmu caller tip-bot for Jiri Olsa <tipbot@zytor.com> - 2015-09-05 16:10 +0200
[PATCH 06/15] tools lib api: Make tracing_path_strerror_open message generic Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
Re: [PATCH 06/15] tools lib api: Make tracing_path_strerror_open message generic Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-02 15:20 +0200
Re: [PATCH 06/15] tools lib api: Make tracing_path_strerror_open message generic Jiri Olsa <jolsa@redhat.com> - 2015-09-02 15:50 +0200
Re: [PATCH 06/15] tools lib api: Make tracing_path_strerror_open message generic Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-02 16:20 +0200
[PATCH 02/15] perf tools: Remove mountpoint arg from perf_debugfs_mount Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
[PATCH 11/15] tools lib api: Add mount support for fs Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
Re: [PATCH 11/15] tools lib api: Add mount support for fs Raphaël Beamonte <raphael.beamonte@gmail.com> - 2015-09-04 16:20 +0200
Re: [PATCH 11/15] tools lib api: Add mount support for fs Steven Rostedt <rostedt@goodmis.org> - 2015-09-04 16:30 +0200
Re: [PATCH 11/15] tools lib api: Add mount support for fs Jiri Olsa <jolsa@redhat.com> - 2015-09-04 16:30 +0200
Re: [PATCH 11/15] tools lib api: Add mount support for fs Steven Rostedt <rostedt@goodmis.org> - 2015-09-04 17:00 +0200
Re: [PATCH 11/15] tools lib api: Add mount support for fs Steven Rostedt <rostedt@goodmis.org> - 2015-09-04 17:10 +0200
Re: [PATCH 11/15] tools lib api: Add mount support for fs Raphaël Beamonte <raphael.beamonte@gmail.com> - 2015-09-04 17:20 +0200
[PATCH 14/15] tools lib api: Remove debugfs, tracefs and findfs objects Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
[PATCH 13/15] tools lib api: Replace debugfs/tracefs objects interface with fs.c Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
[PATCH 08/15] tools lib api: Move SYSFS_MAGIC PROC_SUPER_MAGIC into fs.c Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
[PATCH 12/15] tools lib api: Add configured support for fs Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
Re: [PATCH 12/15] tools lib api: Add configured support for fs Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-02 15:40 +0200
Re: [PATCH 12/15] tools lib api: Add configured support for fs Jiri Olsa <jolsa@redhat.com> - 2015-09-02 15:50 +0200
Re: [PATCH 12/15] tools lib api: Add configured support for fs Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-02 16:20 +0200
Re: [PATCH 12/15] tools lib api: Add configured support for fs Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-02 19:00 +0200
Re: [PATCH 12/15] tools lib api: Add configured support for fs Jiri Olsa <jolsa@redhat.com> - 2015-09-04 09:10 +0200
Re: [PATCH 12/15] tools lib api: Add configured support for fs Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
Re: [PATCH 12/15] tools lib api: Add configured support for fs Jiri Olsa <jolsa@redhat.com> - 2015-09-04 19:50 +0200
Re: [PATCH 12/15] tools lib api: Add configured support for fs Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-02 15:50 +0200
[PATCH 09/15] tools lib api: Add debugfs into fs.c object Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
[PATCH 10/15] tools lib api: Add tracefs into fs.c object Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
[PATCH 15/15] perf tools: Switch to tracing_path interface on appropriate places Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
[PATCH 04/15] perf tools: Move tracing_path interface into api/fs/tracing_path.c Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:00 +0200
Re: [PATCH 04/15] perf tools: Move tracing_path interface into api/fs/tracing_path.c Matt Fleming <matt@codeblueprint.co.uk> - 2015-09-04 13:40 +0200
Re: [PATCH 04/15] perf tools: Move tracing_path interface into api/fs/tracing_path.c Raphaël Beamonte <raphael.beamonte@gmail.com> - 2015-09-04 15:30 +0200
[PATCH 05/15] tools lib api: Move debugfs__strerror_open into tracing_path.c object Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:10 +0200
Re: [PATCH 05/15] tools lib api: Move debugfs__strerror_open into tracing_path.c object Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-02 15:20 +0200
Re: [PATCH 05/15] tools lib api: Move debugfs__strerror_open into tracing_path.c object Matt Fleming <matt@codeblueprint.co.uk> - 2015-09-04 13:40 +0200
Re: [PATCH 05/15] tools lib api: Move debugfs__strerror_open into tracing_path.c object Jiri Olsa <jolsa@redhat.com> - 2015-09-04 15:50 +0200
Re: [PATCH 05/15] tools lib api: Move debugfs__strerror_open into tracing_path.c object Raphaël Beamonte <raphael.beamonte@gmail.com> - 2015-09-04 16:00 +0200
Re: [PATCH 05/15] tools lib api: Move debugfs__strerror_open into tracing_path.c object Raphaël Beamonte <raphael.beamonte@gmail.com> - 2015-09-04 15:50 +0200
Re: [PATCH 00/15] perf tools: Cleanup filesystem api Jiri Olsa <jolsa@redhat.com> - 2015-09-02 10:10 +0200
[PATCH 03/15] perf tools: Move tracing_path stuff under same namespace Jiri Olsa <jolsa@kernel.org> - 2015-09-02 10:10 +0200
csiph-web