# endif
 #endif
 
-int bench_numa(int argc, const char **argv, const char *prefix);
-int bench_sched_messaging(int argc, const char **argv, const char *prefix);
-int bench_sched_pipe(int argc, const char **argv, const char *prefix);
-int bench_mem_memcpy(int argc, const char **argv, const char *prefix);
-int bench_mem_memset(int argc, const char **argv, const char *prefix);
-int bench_futex_hash(int argc, const char **argv, const char *prefix);
-int bench_futex_wake(int argc, const char **argv, const char *prefix);
-int bench_futex_wake_parallel(int argc, const char **argv, const char *prefix);
-int bench_futex_requeue(int argc, const char **argv, const char *prefix);
+int bench_numa(int argc, const char **argv);
+int bench_sched_messaging(int argc, const char **argv);
+int bench_sched_pipe(int argc, const char **argv);
+int bench_mem_memcpy(int argc, const char **argv);
+int bench_mem_memset(int argc, const char **argv);
+int bench_futex_hash(int argc, const char **argv);
+int bench_futex_wake(int argc, const char **argv);
+int bench_futex_wake_parallel(int argc, const char **argv);
+int bench_futex_requeue(int argc, const char **argv);
 /* pi futexes */
-int bench_futex_lock_pi(int argc, const char **argv, const char *prefix);
+int bench_futex_lock_pi(int argc, const char **argv);
 
 #define BENCH_FORMAT_DEFAULT_STR       "default"
 #define BENCH_FORMAT_DEFAULT           0
 
               (int) runtime.tv_sec);
 }
 
-int bench_futex_hash(int argc, const char **argv,
-                    const char *prefix __maybe_unused)
+int bench_futex_hash(int argc, const char **argv)
 {
        int ret = 0;
        cpu_set_t cpu;
 
        }
 }
 
-int bench_futex_lock_pi(int argc, const char **argv,
-                       const char *prefix __maybe_unused)
+int bench_futex_lock_pi(int argc, const char **argv)
 {
        int ret = 0;
        unsigned int i;
 
        done = true;
 }
 
-int bench_futex_requeue(int argc, const char **argv,
-                       const char *prefix __maybe_unused)
+int bench_futex_requeue(int argc, const char **argv)
 {
        int ret = 0;
        unsigned int i, j;
 
        done = true;
 }
 
-int bench_futex_wake_parallel(int argc, const char **argv,
-                             const char *prefix __maybe_unused)
+int bench_futex_wake_parallel(int argc, const char **argv)
 {
        int ret = 0;
        unsigned int i, j;
 
        done = true;
 }
 
-int bench_futex_wake(int argc, const char **argv,
-                    const char *prefix __maybe_unused)
+int bench_futex_wake(int argc, const char **argv)
 {
        int ret = 0;
        unsigned int i, j;
 
        NULL
 };
 
-int bench_mem_memcpy(int argc, const char **argv, const char *prefix __maybe_unused)
+int bench_mem_memcpy(int argc, const char **argv)
 {
        struct bench_mem_info info = {
                .functions              = memcpy_functions,
        { .name = NULL, }
 };
 
-int bench_mem_memset(int argc, const char **argv, const char *prefix __maybe_unused)
+int bench_mem_memset(int argc, const char **argv)
 {
        struct bench_mem_info info = {
                .functions              = memset_functions,
 
        return 0;
 }
 
-int bench_numa(int argc, const char **argv, const char *prefix __maybe_unused)
+int bench_numa(int argc, const char **argv)
 {
        init_params(&p0, "main,", argc, argv);
        argc = parse_options(argc, argv, options, bench_numa_usage, 0);
 
        NULL
 };
 
-int bench_sched_messaging(int argc, const char **argv,
-                   const char *prefix __maybe_unused)
+int bench_sched_messaging(int argc, const char **argv)
 {
        unsigned int i, total_children;
        struct timeval start, stop, diff;
 
        return NULL;
 }
 
-int bench_sched_pipe(int argc, const char **argv, const char *prefix __maybe_unused)
+int bench_sched_pipe(int argc, const char **argv)
 {
        struct thread_data threads[2], *td;
        int pipe_1[2], pipe_2[2];
 
        NULL
 };
 
-int cmd_annotate(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_annotate(int argc, const char **argv)
 {
        struct perf_annotate annotate = {
                .tool = {
 
 #include <string.h>
 #include <sys/prctl.h>
 
-typedef int (*bench_fn_t)(int argc, const char **argv, const char *prefix);
+typedef int (*bench_fn_t)(int argc, const char **argv);
 
 struct bench {
        const char      *name;
  * to something meaningful:
  */
 static int run_bench(const char *coll_name, const char *bench_name, bench_fn_t fn,
-                    int argc, const char **argv, const char *prefix)
+                    int argc, const char **argv)
 {
        int size;
        char *name;
        prctl(PR_SET_NAME, name);
        argv[0] = name;
 
-       ret = fn(argc, argv, prefix);
+       ret = fn(argc, argv);
 
        free(name);
 
                fflush(stdout);
 
                argv[1] = bench->name;
-               run_bench(coll->name, bench->name, bench->fn, 1, argv, NULL);
+               run_bench(coll->name, bench->name, bench->fn, 1, argv);
                printf("\n");
        }
 }
                run_collection(coll);
 }
 
-int cmd_bench(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_bench(int argc, const char **argv)
 {
        struct collection *coll;
        int ret = 0;
                        if (bench_format == BENCH_FORMAT_DEFAULT)
                                printf("# Running '%s/%s' benchmark:\n", coll->name, bench->name);
                        fflush(stdout);
-                       ret = run_bench(coll->name, bench->name, bench->fn, argc-1, argv+1, prefix);
+                       ret = run_bench(coll->name, bench->name, bench->fn, argc-1, argv+1);
                        goto end;
                }
 
 
        return err;
 }
 
-int cmd_buildid_cache(int argc, const char **argv,
-                     const char *prefix __maybe_unused)
+int cmd_buildid_cache(int argc, const char **argv)
 {
        struct strlist *list;
        struct str_node *pos;
 
        return 0;
 }
 
-int cmd_buildid_list(int argc, const char **argv,
-                    const char *prefix __maybe_unused)
+int cmd_buildid_list(int argc, const char **argv)
 {
        bool show_kernel = false;
        bool with_hits = false;
 
                pr_debug("\n");
        }
 
-       ret = cmd_record(i, rec_argv, NULL);
+       ret = cmd_record(i, rec_argv);
        free(rec_argv);
        return ret;
 }
 
-int cmd_c2c(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_c2c(int argc, const char **argv)
 {
        argc = parse_options(argc, argv, c2c_options, c2c_usage,
                             PARSE_OPT_STOP_AT_NON_OPTION);
 
        return 0;
 }
 
-int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_config(int argc, const char **argv)
 {
        int i, ret = 0;
        struct perf_config_set *set;
 
 #include "data-convert.h"
 #include "data-convert-bt.h"
 
-typedef int (*data_cmd_fn_t)(int argc, const char **argv, const char *prefix);
+typedef int (*data_cmd_fn_t)(int argc, const char **argv);
 
 struct data_cmd {
        const char      *name;
        NULL
 };
 
-static int cmd_data_convert(int argc, const char **argv,
-                           const char *prefix __maybe_unused)
+static int cmd_data_convert(int argc, const char **argv)
 {
        const char *to_ctf     = NULL;
        struct perf_data_convert_opts opts = {
        { .name = NULL, },
 };
 
-int cmd_data(int argc, const char **argv, const char *prefix)
+int cmd_data(int argc, const char **argv)
 {
        struct data_cmd *cmd;
        const char *cmdstr;
                if (strcmp(cmd->name, cmdstr))
                        continue;
 
-               return cmd->fn(argc, argv, prefix);
+               return cmd->fn(argc, argv);
        }
 
        pr_err("Unknown command: %s\n", cmdstr);
 
        return 0;
 }
 
-int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_diff(int argc, const char **argv)
 {
        int ret = hists__init();
 
 
        return 0;
 }
 
-int cmd_evlist(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_evlist(int argc, const char **argv)
 {
        struct perf_attr_details details = { .verbose = false, };
        const struct option options[] = {
 
        return -1;
 }
 
-int cmd_ftrace(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_ftrace(int argc, const char **argv)
 {
        int ret;
        struct perf_ftrace ftrace = {
 
        return 0;
 }
 
-int cmd_help(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_help(int argc, const char **argv)
 {
        bool show_all = false;
        enum help_format help_format = HELP_FORMAT_MAN;
 
        return ret;
 }
 
-int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_inject(int argc, const char **argv)
 {
        struct perf_inject inject = {
                .tool = {
 
        return 0;
 }
 
-int cmd_kallsyms(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_kallsyms(int argc, const char **argv)
 {
        const struct option options[] = {
        OPT_INCR('v', "verbose", &verbose, "be more verbose (show counter open errors, etc)"),
 
        for (j = 1; j < (unsigned int)argc; j++, i++)
                rec_argv[i] = argv[j];
 
-       return cmd_record(i, rec_argv, NULL);
+       return cmd_record(i, rec_argv);
 }
 
 static int kmem_config(const char *var, const char *value, void *cb __maybe_unused)
        return 0;
 }
 
-int cmd_kmem(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_kmem(int argc, const char **argv)
 {
        const char * const default_slab_sort = "frag,hit,bytes";
        const char * const default_page_sort = "bytes,hit";
 
        set_option_flag(record_options, 0, "transaction", PARSE_OPT_DISABLED);
 
        record_usage = kvm_stat_record_usage;
-       return cmd_record(i, rec_argv, NULL);
+       return cmd_record(i, rec_argv);
 }
 
 static int
 #endif
 
 perf_stat:
-       return cmd_stat(argc, argv, NULL);
+       return cmd_stat(argc, argv);
 }
 #endif /* HAVE_KVM_STAT_SUPPORT */
 
 
        BUG_ON(i != rec_argc);
 
-       return cmd_record(i, rec_argv, NULL);
+       return cmd_record(i, rec_argv);
 }
 
 static int __cmd_report(const char *file_name, int argc, const char **argv)
 
        BUG_ON(i != rec_argc);
 
-       return cmd_report(i, rec_argv, NULL);
+       return cmd_report(i, rec_argv);
 }
 
 static int
 
        BUG_ON(i != rec_argc);
 
-       return cmd_buildid_list(i, rec_argv, NULL);
+       return cmd_buildid_list(i, rec_argv);
 }
 
-int cmd_kvm(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_kvm(int argc, const char **argv)
 {
        const char *file_name = NULL;
        const struct option kvm_options[] = {
        else if (!strncmp(argv[0], "rep", 3))
                return __cmd_report(file_name, argc, argv);
        else if (!strncmp(argv[0], "diff", 4))
-               return cmd_diff(argc, argv, NULL);
+               return cmd_diff(argc, argv);
        else if (!strncmp(argv[0], "top", 3))
-               return cmd_top(argc, argv, NULL);
+               return cmd_top(argc, argv);
        else if (!strncmp(argv[0], "buildid-list", 12))
                return __cmd_buildid_list(file_name, argc, argv);
 #ifdef HAVE_KVM_STAT_SUPPORT
 
 static bool desc_flag = true;
 static bool details_flag;
 
-int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_list(int argc, const char **argv)
 {
        int i;
        bool raw_dump = false;
 
 
        BUG_ON(i != rec_argc);
 
-       ret = cmd_record(i, rec_argv, NULL);
+       ret = cmd_record(i, rec_argv);
        free(rec_argv);
        return ret;
 }
 
-int cmd_lock(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_lock(int argc, const char **argv)
 {
        const struct option lock_options[] = {
        OPT_STRING('i', "input", &input_name, "file", "input file name"),
                rc = __cmd_report(false);
        } else if (!strcmp(argv[0], "script")) {
                /* Aliased to 'perf script' */
-               return cmd_script(argc, argv, prefix);
+               return cmd_script(argc, argv);
        } else if (!strcmp(argv[0], "info")) {
                if (argc) {
                        argc = parse_options(argc, argv,
 
                pr_debug("\n");
        }
 
-       ret = cmd_record(i, rec_argv, NULL);
+       ret = cmd_record(i, rec_argv);
        free(rec_argv);
        return ret;
 }
        for (j = 1; j < argc; j++, i++)
                rep_argv[i] = argv[j];
 
-       ret = cmd_report(i, rep_argv, NULL);
+       ret = cmd_report(i, rep_argv);
        free(rep_argv);
        return ret;
 }
        return ret;
 }
 
-int cmd_mem(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_mem(int argc, const char **argv)
 {
        struct stat st;
        struct perf_mem mem = {
 
 
 
 static int
-__cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused)
+__cmd_probe(int argc, const char **argv)
 {
        const char * const probe_usage[] = {
                "perf probe [<options>] 'PROBEDEF' ['PROBEDEF' ...]",
        return 0;
 }
 
-int cmd_probe(int argc, const char **argv, const char *prefix)
+int cmd_probe(int argc, const char **argv)
 {
        int ret;
 
        ret = init_params();
        if (!ret) {
-               ret = __cmd_probe(argc, argv, prefix);
+               ret = __cmd_probe(argc, argv);
                cleanup_params();
        }
 
 
 
 struct option *record_options = __record_options;
 
-int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_record(int argc, const char **argv)
 {
        int err;
        struct record *rec = &record;
 
                                     CALLCHAIN_REPORT_HELP
                                     "\n\t\t\t\tDefault: " CALLCHAIN_DEFAULT_OPT;
 
-int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_report(int argc, const char **argv)
 {
        struct perf_session *session;
        struct itrace_synth_opts itrace_synth_opts = { .set = 0, };
 
 
        BUG_ON(i != rec_argc);
 
-       return cmd_record(i, rec_argv, NULL);
+       return cmd_record(i, rec_argv);
 }
 
-int cmd_sched(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_sched(int argc, const char **argv)
 {
        const char default_sort_order[] = "avg, max, switch, runtime";
        struct perf_sched sched = {
         * Aliased to 'perf script' for now:
         */
        if (!strcmp(argv[0], "script"))
-               return cmd_script(argc, argv, prefix);
+               return cmd_script(argc, argv);
 
        if (!strncmp(argv[0], "rec", 3)) {
                return __cmd_record(argc, argv);
 
        return set_maps(script);
 }
 
-int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_script(int argc, const char **argv)
 {
        bool show_full_info = false;
        bool header = false;
        if (argc > 1 && !strncmp(argv[0], "rec", strlen("rec"))) {
                rec_script_path = get_script_path(argv[1], RECORD_SUFFIX);
                if (!rec_script_path)
-                       return cmd_record(argc, argv, NULL);
+                       return cmd_record(argc, argv);
        }
 
        if (argc > 1 && !strncmp(argv[0], "rep", strlen("rep"))) {
 
        }
 }
 
-int cmd_stat(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_stat(int argc, const char **argv)
 {
        const char * const stat_usage[] = {
                "perf stat [<options>] [<command>]",
 
        for (i = 0; i < (unsigned int)argc; i++)
                *p++ = argv[i];
 
-       return cmd_record(rec_argc, rec_argv, NULL);
+       return cmd_record(rec_argc, rec_argv);
 }
 
 
        for (j = 0; j < (unsigned int)argc; j++)
                *p++ = argv[j];
 
-       return cmd_record(rec_argc, rec_argv, NULL);
+       return cmd_record(rec_argc, rec_argv);
 }
 
 static int
        return 0;
 }
 
-int cmd_timechart(int argc, const char **argv,
-                 const char *prefix __maybe_unused)
+int cmd_timechart(int argc, const char **argv)
 {
        struct timechart tchart = {
                .tool = {
 
 const char top_callchain_help[] = CALLCHAIN_RECORD_HELP CALLCHAIN_REPORT_HELP
        "\n\t\t\t\tDefault: fp,graph,0.5,caller,function";
 
-int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_top(int argc, const char **argv)
 {
        char errbuf[BUFSIZ];
        struct perf_top top = {
 
        for (i = 0; i < (unsigned int)argc; i++)
                rec_argv[j++] = argv[i];
 
-       return cmd_record(j, rec_argv, NULL);
+       return cmd_record(j, rec_argv);
 }
 
 static size_t trace__fprintf_thread_summary(struct trace *trace, FILE *fp);
        return err;
 }
 
-int cmd_trace(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_trace(int argc, const char **argv)
 {
        const char *trace_usage[] = {
                "perf trace [<options>] [<command>]",
 
 #include "builtin.h"
 #include "perf.h"
 
-int cmd_version(int argc __maybe_unused, const char **argv __maybe_unused,
-               const char *prefix __maybe_unused)
+int cmd_version(int argc __maybe_unused, const char **argv __maybe_unused)
 {
        printf("perf version %s\n", perf_version_string);
        return 0;
 
 int read_line_with_nul(char *buf, int size, FILE *file);
 int check_pager_config(const char *cmd);
 
-int cmd_annotate(int argc, const char **argv, const char *prefix);
-int cmd_bench(int argc, const char **argv, const char *prefix);
-int cmd_buildid_cache(int argc, const char **argv, const char *prefix);
-int cmd_buildid_list(int argc, const char **argv, const char *prefix);
-int cmd_config(int argc, const char **argv, const char *prefix);
-int cmd_c2c(int argc, const char **argv, const char *prefix);
-int cmd_diff(int argc, const char **argv, const char *prefix);
-int cmd_evlist(int argc, const char **argv, const char *prefix);
-int cmd_help(int argc, const char **argv, const char *prefix);
-int cmd_sched(int argc, const char **argv, const char *prefix);
-int cmd_kallsyms(int argc, const char **argv, const char *prefix);
-int cmd_list(int argc, const char **argv, const char *prefix);
-int cmd_record(int argc, const char **argv, const char *prefix);
-int cmd_report(int argc, const char **argv, const char *prefix);
-int cmd_stat(int argc, const char **argv, const char *prefix);
-int cmd_timechart(int argc, const char **argv, const char *prefix);
-int cmd_top(int argc, const char **argv, const char *prefix);
-int cmd_script(int argc, const char **argv, const char *prefix);
-int cmd_version(int argc, const char **argv, const char *prefix);
-int cmd_probe(int argc, const char **argv, const char *prefix);
-int cmd_kmem(int argc, const char **argv, const char *prefix);
-int cmd_lock(int argc, const char **argv, const char *prefix);
-int cmd_kvm(int argc, const char **argv, const char *prefix);
-int cmd_test(int argc, const char **argv, const char *prefix);
-int cmd_trace(int argc, const char **argv, const char *prefix);
-int cmd_inject(int argc, const char **argv, const char *prefix);
-int cmd_mem(int argc, const char **argv, const char *prefix);
-int cmd_data(int argc, const char **argv, const char *prefix);
-int cmd_ftrace(int argc, const char **argv, const char *prefix);
+int cmd_annotate(int argc, const char **argv);
+int cmd_bench(int argc, const char **argv);
+int cmd_buildid_cache(int argc, const char **argv);
+int cmd_buildid_list(int argc, const char **argv);
+int cmd_config(int argc, const char **argv);
+int cmd_c2c(int argc, const char **argv);
+int cmd_diff(int argc, const char **argv);
+int cmd_evlist(int argc, const char **argv);
+int cmd_help(int argc, const char **argv);
+int cmd_sched(int argc, const char **argv);
+int cmd_kallsyms(int argc, const char **argv);
+int cmd_list(int argc, const char **argv);
+int cmd_record(int argc, const char **argv);
+int cmd_report(int argc, const char **argv);
+int cmd_stat(int argc, const char **argv);
+int cmd_timechart(int argc, const char **argv);
+int cmd_top(int argc, const char **argv);
+int cmd_script(int argc, const char **argv);
+int cmd_version(int argc, const char **argv);
+int cmd_probe(int argc, const char **argv);
+int cmd_kmem(int argc, const char **argv);
+int cmd_lock(int argc, const char **argv);
+int cmd_kvm(int argc, const char **argv);
+int cmd_test(int argc, const char **argv);
+int cmd_trace(int argc, const char **argv);
+int cmd_inject(int argc, const char **argv);
+int cmd_mem(int argc, const char **argv);
+int cmd_data(int argc, const char **argv);
+int cmd_ftrace(int argc, const char **argv);
 
 int find_scripts(char **scripts_array, char **scripts_path_array);
 #endif
 
 
 struct cmd_struct {
        const char *cmd;
-       int (*fn)(int, const char **, const char *);
+       int (*fn)(int, const char **);
        int option;
 };
 
 {
        int status;
        struct stat st;
-       const char *prefix;
        char sbuf[STRERR_BUFSIZE];
 
-       prefix = NULL;
-       if (p->option & RUN_SETUP)
-               prefix = NULL; /* setup_perf_directory(); */
-
        if (use_browser == -1)
                use_browser = check_browser_config(p->cmd);
 
        commit_pager_choice();
 
        perf_env__set_cmdline(&perf_env, argc, argv);
-       status = p->fn(argc, argv, prefix);
+       status = p->fn(argc, argv);
        perf_config__exit();
        exit_browser(status);
        perf_env__exit(&perf_env);
 #ifdef HAVE_LIBAUDIT_SUPPORT
                setup_path();
                argv[0] = "trace";
-               return cmd_trace(argc, argv, NULL);
+               return cmd_trace(argc, argv);
 #else
                fprintf(stderr,
                        "trace command not available: missing audit-libs devel package at build time.\n");
 
        return 0;
 }
 
-int cmd_test(int argc, const char **argv, const char *prefix __maybe_unused)
+int cmd_test(int argc, const char **argv)
 {
        const char *test_usage[] = {
        "perf test [<options>] [{list <test-name-fragment>|[<test-name-fragments>|<test-numbers>]}]",