[RFC PATCH v3 35/37] perf tools: Add a bpf_wrapper global flag

Wang Nan
2015-05-17T11:01:20Z

The newly introduced flag is a indicator for 'perf bpf'. When commands
like 'cmd_record' is started using 'perf bpf', they should consider the
binding of bpf programs.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
---
tools/perf/builtin-bpf.c | 2 ++
tools/perf/perf.c | 7 +++++++
tools/perf/perf.h | 1 +
3 files changed, 10 insertions(+)

diff --git a/tools/perf/builtin-bpf.c b/tools/perf/builtin-bpf.c
index 8155f39..4ef294a 100644
--- a/tools/perf/builtin-bpf.c
+++ b/tools/perf/builtin-bpf.c
@@ -201,6 +201,8 @@ int cmd_bpf(int argc, const char **argv,

cmdstr = argv[0];

+ bpf_wrapper = true;
+
for_each_cmd(cmd) {
if (strcmp(cmd->name, cmdstr))
continue;
diff --git a/tools/perf/perf.c b/tools/perf/perf.c
index eff1a55..2c41c43 100644
--- a/tools/perf/perf.c
+++ b/tools/perf/perf.c
@@ -28,6 +28,13 @@ int use_browser = -1;
static int use_pager = -1;
const char *input_name;

+/*
+ * Only for cmd_bpf, set this wrapper to true. This flag is to tell
+ * commands like 'record' that they are running inside a 'perf bpf'
+ * command, and let them consider binding of bpf programs.
+ */
+bool bpf_wrapper = false;
+
struct cmd_struct {
const char *cmd;
int (*fn)(int, const char **, const char *);
diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index e14bb63..f3d233a 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -69,4 +69,5 @@ struct record_opts {
struct option;
extern const char * const *record_usage;
extern struct option *record_options;
+extern bool bpf_wrapper;
#endif
--
1.8.3.4