}
 
 static enum event_type
-process_entry(struct event_format *event __unused, struct print_arg *arg,
+process_entry(struct event_format *event __maybe_unused, struct print_arg *arg,
              char **tok)
 {
        enum event_type type;
 
 
 static enum event_type
-process_str(struct event_format *event __unused, struct print_arg *arg, char **tok)
+process_str(struct event_format *event __maybe_unused, struct print_arg *arg,
+           char **tok)
 {
        enum event_type type;
        char *token;
 }
 
 static char *
-get_bprint_format(void *data, int size __unused, struct event_format *event)
+get_bprint_format(void *data, int size __maybe_unused,
+                 struct event_format *event)
 {
        struct pevent *pevent = event->pevent;
        unsigned long long addr;
 
 #include <stdarg.h>
 #include <regex.h>
 
-#ifndef __unused
-#define __unused __attribute__ ((unused))
+#ifndef __maybe_unused
+#define __maybe_unused __attribute__((unused))
 #endif
 
 /* ----------------------- trace_seq ----------------------- */
 
 
 extern int bench_sched_messaging(int argc, const char **argv, const char *prefix);
 extern int bench_sched_pipe(int argc, const char **argv, const char *prefix);
-extern int bench_mem_memcpy(int argc, const char **argv, const char *prefix __used);
+extern int bench_mem_memcpy(int argc, const char **argv,
+                           const char *prefix __maybe_unused);
 extern int bench_mem_memset(int argc, const char **argv, const char *prefix);
 
 #define BENCH_FORMAT_DEFAULT_STR       "default"
 
        } while (0)
 
 int bench_mem_memcpy(int argc, const char **argv,
-                    const char *prefix __used)
+                    const char *prefix __maybe_unused)
 {
        int i;
        size_t len;
 
        } while (0)
 
 int bench_mem_memset(int argc, const char **argv,
-                    const char *prefix __used)
+                    const char *prefix __maybe_unused)
 {
        int i;
        size_t len;
 
 };
 
 int bench_sched_messaging(int argc, const char **argv,
-                   const char *prefix __used)
+                   const char *prefix __maybe_unused)
 {
        unsigned int i, total_children;
        struct timeval start, stop, diff;
 
 };
 
 int bench_sched_pipe(int argc, const char **argv,
-                    const char *prefix __used)
+                    const char *prefix __maybe_unused)
 {
        int pipe_1[2], pipe_2[2];
        int m = 0, i;
         * discarding returned value of read(), write()
         * causes error in building environment for perf
         */
-       int __used ret, wait_stat;
-       pid_t pid, retpid __used;
+       int __maybe_unused ret, wait_stat;
+       pid_t pid, retpid __maybe_unused;
 
        argc = parse_options(argc, argv, options,
                             bench_sched_pipe_usage, 0);
 
        NULL
 };
 
-int cmd_annotate(int argc, const char **argv, const char *prefix __used)
+int cmd_annotate(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        struct perf_annotate annotate = {
                .tool = {
 
                all_suite(&subsystems[i]);
 }
 
-int cmd_bench(int argc, const char **argv, const char *prefix __used)
+int cmd_bench(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        int i, j, status = 0;
 
 
        return err;
 }
 
-static int build_id_cache__remove_file(const char *filename __used,
-                                      const char *debugdir __used)
+static int build_id_cache__remove_file(const char *filename __maybe_unused,
+                                      const char *debugdir __maybe_unused)
 {
        u8 build_id[BUILD_ID_SIZE];
        char sbuild_id[BUILD_ID_SIZE * 2 + 1];
        return 0;
 }
 
-int cmd_buildid_cache(int argc, const char **argv, const char *prefix __used)
+int cmd_buildid_cache(int argc, const char **argv,
+                     const char *prefix __maybe_unused)
 {
        argc = parse_options(argc, argv, buildid_cache_options,
                             buildid_cache_usage, 0);
 
        return perf_session__list_build_ids();
 }
 
-int cmd_buildid_list(int argc, const char **argv, const char *prefix __used)
+int cmd_buildid_list(int argc, const char **argv,
+                    const char *prefix __maybe_unused)
 {
        argc = parse_options(argc, argv, options, buildid_list_usage, 0);
        setup_pager();
 
        return -ENOMEM;
 }
 
-static int diff__process_sample_event(struct perf_tool *tool __used,
+static int diff__process_sample_event(struct perf_tool *tool __maybe_unused,
                                      union perf_event *event,
                                      struct perf_sample *sample,
                                      struct perf_evsel *evsel,
        OPT_END()
 };
 
-int cmd_diff(int argc, const char **argv, const char *prefix __used)
+int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        sort_order = diff__default_sort_order;
        argc = parse_options(argc, argv, options, diff_usage, 0);
 
        NULL
 };
 
-int cmd_evlist(int argc, const char **argv, const char *prefix __used)
+int cmd_evlist(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        struct perf_attr_details details = { .verbose = false, };
        const char *input_name = NULL;
 
        return 0;
 }
 
-int cmd_help(int argc, const char **argv, const char *prefix __used)
+int cmd_help(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        const char *alias;
        int rc = 0;
 
 static char            const *input_name = "-";
 static bool            inject_build_ids;
 
-static int perf_event__repipe_synth(struct perf_tool *tool __used,
+static int perf_event__repipe_synth(struct perf_tool *tool __maybe_unused,
                                    union perf_event *event,
-                                   struct machine *machine __used)
+                                   struct machine *machine __maybe_unused)
 {
        uint32_t size;
        void *buf = event;
 
 static int perf_event__repipe_op2_synth(struct perf_tool *tool,
                                        union perf_event *event,
-                                       struct perf_session *session __used)
+                                       struct perf_session *session
+                                       __maybe_unused)
 {
        return perf_event__repipe_synth(tool, event, NULL);
 }
 }
 
 static int perf_event__repipe_tracing_data_synth(union perf_event *event,
-                                                struct perf_session *session __used)
+                                                struct perf_session *session
+                                                __maybe_unused)
 {
        return perf_event__repipe_synth(NULL, event, NULL);
 }
 
 static int perf_event__repipe_attr(union perf_event *event,
-                                  struct perf_evlist **pevlist __used)
+                                  struct perf_evlist **pevlist __maybe_unused)
 {
        int ret;
        ret = perf_event__process_attr(event, pevlist);
 
 static int perf_event__repipe(struct perf_tool *tool,
                              union perf_event *event,
-                             struct perf_sample *sample __used,
+                             struct perf_sample *sample __maybe_unused,
                              struct machine *machine)
 {
        return perf_event__repipe_synth(tool, event, machine);
 
 static int perf_event__repipe_sample(struct perf_tool *tool,
                                     union perf_event *event,
-                             struct perf_sample *sample __used,
-                             struct perf_evsel *evsel __used,
+                             struct perf_sample *sample __maybe_unused,
+                             struct perf_evsel *evsel __maybe_unused,
                              struct machine *machine)
 {
        return perf_event__repipe_synth(tool, event, machine);
 static int perf_event__inject_buildid(struct perf_tool *tool,
                                      union perf_event *event,
                                      struct perf_sample *sample,
-                                     struct perf_evsel *evsel __used,
+                                     struct perf_evsel *evsel __maybe_unused,
                                      struct machine *machine)
 {
        struct addr_location al;
 
 extern volatile int session_done;
 
-static void sig_handler(int sig __attribute__((__unused__)))
+static void sig_handler(int sig __maybe_unused)
 {
        session_done = 1;
 }
        OPT_END()
 };
 
-int cmd_inject(int argc, const char **argv, const char *prefix __used)
+int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        argc = parse_options(argc, argv, options, report_usage, 0);
 
 
        return 0;
 }
 
-static int process_sample_event(struct perf_tool *tool __used,
+static int process_sample_event(struct perf_tool *tool __maybe_unused,
                                union perf_event *event,
                                struct perf_sample *sample,
                                struct perf_evsel *evsel,
        return 0;
 }
 
-static int parse_sort_opt(const struct option *opt __used,
-                         const char *arg, int unset __used)
+static int parse_sort_opt(const struct option *opt __maybe_unused,
+                         const char *arg, int unset __maybe_unused)
 {
        if (!arg)
                return -1;
        return 0;
 }
 
-static int parse_caller_opt(const struct option *opt __used,
-                         const char *arg __used, int unset __used)
+static int parse_caller_opt(const struct option *opt __maybe_unused,
+                           const char *arg __maybe_unused,
+                           int unset __maybe_unused)
 {
        caller_flag = (alloc_flag + 1);
        return 0;
 }
 
-static int parse_alloc_opt(const struct option *opt __used,
-                         const char *arg __used, int unset __used)
+static int parse_alloc_opt(const struct option *opt __maybe_unused,
+                          const char *arg __maybe_unused,
+                          int unset __maybe_unused)
 {
        alloc_flag = (caller_flag + 1);
        return 0;
 }
 
-static int parse_line_opt(const struct option *opt __used,
-                         const char *arg, int unset __used)
+static int parse_line_opt(const struct option *opt __maybe_unused,
+                         const char *arg, int unset __maybe_unused)
 {
        int lines;
 
        return cmd_record(i, rec_argv, NULL);
 }
 
-int cmd_kmem(int argc, const char **argv, const char *prefix __used)
+int cmd_kmem(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        argc = parse_options(argc, argv, kmem_options, kmem_usage, 0);
 
 
        return cmd_buildid_list(i, rec_argv, NULL);
 }
 
-int cmd_kvm(int argc, const char **argv, const char *prefix __used)
+int cmd_kvm(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        perf_host  = 0;
        perf_guest = 1;
 
 #include "util/parse-events.h"
 #include "util/cache.h"
 
-int cmd_list(int argc, const char **argv, const char *prefix __used)
+int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        setup_pager();
 
 
        return rc;
 }
 
-static int process_sample_event(struct perf_tool *tool __used,
+static int process_sample_event(struct perf_tool *tool __maybe_unused,
                                union perf_event *event,
                                struct perf_sample *sample,
                                struct perf_evsel *evsel,
        return cmd_record(i, rec_argv, NULL);
 }
 
-int cmd_lock(int argc, const char **argv, const char *prefix __used)
+int cmd_lock(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        unsigned int i;
        int rc = 0;
 
        return ret;
 }
 
-static int opt_add_probe_event(const struct option *opt __used,
-                             const char *str, int unset __used)
+static int opt_add_probe_event(const struct option *opt __maybe_unused,
+                             const char *str, int unset __maybe_unused)
 {
        if (str) {
                params.mod_events = true;
                return 0;
 }
 
-static int opt_del_probe_event(const struct option *opt __used,
-                              const char *str, int unset __used)
+static int opt_del_probe_event(const struct option *opt __maybe_unused,
+                              const char *str, int unset __maybe_unused)
 {
        if (str) {
                params.mod_events = true;
 }
 
 static int opt_set_target(const struct option *opt, const char *str,
-                       int unset __used)
+                       int unset __maybe_unused)
 {
        int ret = -ENOENT;
 
 }
 
 #ifdef DWARF_SUPPORT
-static int opt_show_lines(const struct option *opt __used,
-                         const char *str, int unset __used)
+static int opt_show_lines(const struct option *opt __maybe_unused,
+                         const char *str, int unset __maybe_unused)
 {
        int ret = 0;
 
        return ret;
 }
 
-static int opt_show_vars(const struct option *opt __used,
-                        const char *str, int unset __used)
+static int opt_show_vars(const struct option *opt __maybe_unused,
+                        const char *str, int unset __maybe_unused)
 {
        struct perf_probe_event *pev = ¶ms.events[params.nevents];
        int ret;
 }
 #endif
 
-static int opt_set_filter(const struct option *opt __used,
-                         const char *str, int unset __used)
+static int opt_set_filter(const struct option *opt __maybe_unused,
+                         const char *str, int unset __maybe_unused)
 {
        const char *err;
 
        OPT_END()
 };
 
-int cmd_probe(int argc, const char **argv, const char *prefix __used)
+int cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        int ret;
 
 
 
 static int process_synthesized_event(struct perf_tool *tool,
                                     union perf_event *event,
-                                    struct perf_sample *sample __used,
-                                    struct machine *machine __used)
+                                    struct perf_sample *sample __maybe_unused,
+                                    struct machine *machine __maybe_unused)
 {
        struct perf_record *rec = container_of(tool, struct perf_record, tool);
        if (write_output(rec, event, event->header.size) < 0)
        signr = sig;
 }
 
-static void perf_record__sig_exit(int exit_status __used, void *arg)
+static void perf_record__sig_exit(int exit_status __maybe_unused, void *arg)
 {
        struct perf_record *rec = arg;
        int status;
 #endif /* !NO_LIBUNWIND_SUPPORT */
 
 static int
-parse_callchain_opt(const struct option *opt __used, const char *arg,
+parse_callchain_opt(const struct option *opt __maybe_unused, const char *arg,
                    int unset)
 {
        struct perf_record *rec = (struct perf_record *)opt->value;
        OPT_END()
 };
 
-int cmd_record(int argc, const char **argv, const char *prefix __used)
+int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        int err = -ENOMEM;
        struct perf_evsel *pos;
 
 
 static int process_read_event(struct perf_tool *tool,
                              union perf_event *event,
-                             struct perf_sample *sample __used,
+                             struct perf_sample *sample __maybe_unused,
                              struct perf_evsel *evsel,
-                             struct machine *machine __used)
+                             struct machine *machine __maybe_unused)
 {
        struct perf_report *rep = container_of(tool, struct perf_report, tool);
 
 
 extern volatile int session_done;
 
-static void sig_handler(int sig __used)
+static void sig_handler(int sig __maybe_unused)
 {
        session_done = 1;
 }
 }
 
 static int
-parse_branch_mode(const struct option *opt __used, const char *str __used, int unset)
+parse_branch_mode(const struct option *opt __maybe_unused,
+                 const char *str __maybe_unused, int unset)
 {
        sort__branch_mode = !unset;
        return 0;
 }
 
-int cmd_report(int argc, const char **argv, const char *prefix __used)
+int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        struct perf_session *session;
        struct stat st;
 
 
 static void
 add_sched_event_sleep(struct task_desc *task, u64 timestamp,
-                     u64 task_state __used)
+                     u64 task_state __maybe_unused)
 {
        struct sched_atom *event = get_new_event(task, timestamp);
 
        }
 }
 
-static void
-process_sched_event(struct task_desc *this_task __used, struct sched_atom *atom)
+static void process_sched_event(struct task_desc *this_task __maybe_unused,
+                               struct sched_atom *atom)
 {
        int ret = 0;
 
 
 static int
 replay_wakeup_event(struct trace_wakeup_event *wakeup_event,
-                   struct machine *machine __used,
+                   struct machine *machine __maybe_unused,
                    struct event_format *event, struct perf_sample *sample)
 {
        struct task_desc *waker, *wakee;
 
 static int
 replay_switch_event(struct trace_switch_event *switch_event,
-                   struct machine *machine __used,
+                   struct machine *machine __maybe_unused,
                    struct event_format *event,
                    struct perf_sample *sample)
 {
-       struct task_desc *prev, __used *next;
+       struct task_desc *prev, __maybe_unused *next;
        u64 timestamp0, timestamp = sample->time;
        int cpu = sample->cpu;
        s64 delta;
        return 0;
 }
 
-static int
-latency_fork_event(struct trace_fork_event *fork_event __used,
-                  struct event_format *event __used)
+static int latency_fork_event(struct trace_fork_event *fork_event __maybe_unused,
+                             struct event_format *event __maybe_unused)
 {
        /* should insert the newcomer */
        return 0;
 }
 
-__used
 static char sched_out_state(struct trace_switch_event *switch_event)
 {
        const char *str = TASK_STATE_TO_CHAR_STR;
 }
 
 static void
-add_runtime_event(struct work_atoms *atoms, u64 delta, u64 timestamp __used)
+add_runtime_event(struct work_atoms *atoms, u64 delta,
+                 u64 timestamp __maybe_unused)
 {
        struct work_atom *atom;
 
 static int
 latency_switch_event(struct trace_switch_event *switch_event,
                     struct machine *machine,
-                    struct event_format *event __used,
+                    struct event_format *event __maybe_unused,
                     struct perf_sample *sample)
 {
        struct work_atoms *out_events, *in_events;
 
 static int
 latency_wakeup_event(struct trace_wakeup_event *wakeup_event,
-                    struct machine *machine, struct event_format *event __used,
+                    struct machine *machine,
+                    struct event_format *event __maybe_unused,
                     struct perf_sample *sample)
 {
        struct work_atoms *atoms;
 
 static struct trace_sched_handler *trace_handler;
 
-static int
-process_sched_wakeup_event(struct perf_tool *tool __used,
-                          struct event_format *event,
-                          struct perf_sample *sample,
-                          struct machine *machine,
-                          struct thread *thread __used)
+static int process_sched_wakeup_event(struct perf_tool *tool __maybe_unused,
+                                     struct event_format *event,
+                                     struct perf_sample *sample,
+                                     struct machine *machine,
+                                     struct thread *thread __maybe_unused)
 {
        void *data = sample->raw_data;
        struct trace_wakeup_event wakeup_event;
 static int
 map_switch_event(struct trace_switch_event *switch_event,
                 struct machine *machine,
-                struct event_format *event __used,
+                struct event_format *event __maybe_unused,
                 struct perf_sample *sample)
 {
-       struct thread *sched_out __used, *sched_in;
+       struct thread *sched_out __maybe_unused, *sched_in;
        int new_shortname;
        u64 timestamp0, timestamp = sample->time;
        s64 delta;
        return 0;
 }
 
-static int
-process_sched_switch_event(struct perf_tool *tool __used,
-                          struct event_format *event,
-                          struct perf_sample *sample,
-                          struct machine *machine,
-                          struct thread *thread __used)
+static int process_sched_switch_event(struct perf_tool *tool __maybe_unused,
+                                     struct event_format *event,
+                                     struct perf_sample *sample,
+                                     struct machine *machine,
+                                     struct thread *thread __maybe_unused)
 {
        int this_cpu = sample->cpu, err = 0;
        void *data = sample->raw_data;
        return err;
 }
 
-static int
-process_sched_runtime_event(struct perf_tool *tool __used,
-                           struct event_format *event,
-                           struct perf_sample *sample,
-                           struct machine *machine,
-                           struct thread *thread __used)
+static int process_sched_runtime_event(struct perf_tool *tool __maybe_unused,
+                                      struct event_format *event,
+                                      struct perf_sample *sample,
+                                      struct machine *machine,
+                                      struct thread *thread __maybe_unused)
 {
        void *data = sample->raw_data;
        struct trace_runtime_event runtime_event;
        return err;
 }
 
-static int
-process_sched_fork_event(struct perf_tool *tool __used,
-                        struct event_format *event,
-                        struct perf_sample *sample,
-                        struct machine *machine __used,
-                        struct thread *thread __used)
+static int process_sched_fork_event(struct perf_tool *tool __maybe_unused,
+                                   struct event_format *event,
+                                   struct perf_sample *sample,
+                                   struct machine *machine __maybe_unused,
+                                   struct thread *thread __maybe_unused)
 {
        void *data = sample->raw_data;
        struct trace_fork_event fork_event;
        return err;
 }
 
-static int
-process_sched_exit_event(struct perf_tool *tool __used,
-                        struct event_format *event,
-                        struct perf_sample *sample __used,
-                        struct machine *machine __used,
-                        struct thread *thread __used)
+static int process_sched_exit_event(struct perf_tool *tool __maybe_unused,
+                                   struct event_format *event,
+                                   struct perf_sample *sample __maybe_unused,
+                                   struct machine *machine __maybe_unused,
+                                   struct thread *thread __maybe_unused)
 {
        if (verbose)
                printf("sched_exit event %p\n", event);
        return 0;
 }
 
-static int
-process_sched_migrate_task_event(struct perf_tool *tool __used,
-                                struct event_format *event,
-                                struct perf_sample *sample,
-                                struct machine *machine,
-                                struct thread *thread __used)
+static int process_sched_migrate_task_event(struct perf_tool *tool __maybe_unused,
+                                           struct event_format *event,
+                                           struct perf_sample *sample,
+                                           struct machine *machine,
+                                           struct thread *thread __maybe_unused)
 {
        void *data = sample->raw_data;
        struct trace_migrate_task_event migrate_task_event;
                                  struct machine *machine,
                                  struct thread *thread);
 
-static int perf_sched__process_tracepoint_sample(struct perf_tool *tool __used,
-                                                union perf_event *event __used,
+static int perf_sched__process_tracepoint_sample(struct perf_tool *tool __maybe_unused,
+                                                union perf_event *event __maybe_unused,
                                                 struct perf_sample *sample,
                                                 struct perf_evsel *evsel,
                                                 struct machine *machine)
        return cmd_record(i, rec_argv, NULL);
 }
 
-int cmd_sched(int argc, const char **argv, const char *prefix __used)
+int cmd_sched(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        argc = parse_options(argc, argv, sched_options, sched_usage,
                             PARSE_OPT_STOP_AT_NON_OPTION);
 
        printf("\n");
 }
 
-static int default_start_script(const char *script __unused,
-                               int argc __unused,
-                               const char **argv __unused)
+static int default_start_script(const char *script __maybe_unused,
+                               int argc __maybe_unused,
+                               const char **argv __maybe_unused)
 {
        return 0;
 }
        return 0;
 }
 
-static int default_generate_script(struct pevent *pevent __unused,
-                                  const char *outfile __unused)
+static int default_generate_script(struct pevent *pevent __maybe_unused,
+                                  const char *outfile __maybe_unused)
 {
        return 0;
 }
 
 static const char *input_name;
 
-static int process_sample_event(struct perf_tool *tool __used,
+static int process_sample_event(struct perf_tool *tool __maybe_unused,
                                union perf_event *event,
                                struct perf_sample *sample,
                                struct perf_evsel *evsel,
 
 extern volatile int session_done;
 
-static void sig_handler(int sig __unused)
+static void sig_handler(int sig __maybe_unused)
 {
        session_done = 1;
 }
        fprintf(stderr, "\n");
 }
 
-static int parse_scriptname(const struct option *opt __used,
-                           const char *str, int unset __used)
+static int parse_scriptname(const struct option *opt __maybe_unused,
+                           const char *str, int unset __maybe_unused)
 {
        char spec[PATH_MAX];
        const char *script, *ext;
        return 0;
 }
 
-static int parse_output_fields(const struct option *opt __used,
-                           const char *arg, int unset __used)
+static int parse_output_fields(const struct option *opt __maybe_unused,
+                           const char *arg, int unset __maybe_unused)
 {
        char *tok;
        int i, imax = sizeof(all_output_options) / sizeof(struct output_option);
        return script_root;
 }
 
-static int list_available_scripts(const struct option *opt __used,
-                                 const char *s __used, int unset __used)
+static int list_available_scripts(const struct option *opt __maybe_unused,
+                                 const char *s __maybe_unused,
+                                 int unset __maybe_unused)
 {
        struct dirent *script_next, *lang_next, script_dirent, lang_dirent;
        char scripts_path[MAXPATHLEN];
        return 0;
 }
 
-int cmd_script(int argc, const char **argv, const char *prefix __used)
+int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        char *rec_script_path = NULL;
        char *rep_script_path = NULL;
 
        return 0;
 }
 
-static int run_perf_stat(int argc __used, const char **argv)
+static int run_perf_stat(int argc __maybe_unused, const char **argv)
 {
        unsigned long long t0, t1;
        struct perf_evsel *counter, *first;
        return color;
 }
 
-static void print_stalled_cycles_frontend(int cpu, struct perf_evsel *evsel __used, double avg)
+static void print_stalled_cycles_frontend(int cpu,
+                                         struct perf_evsel *evsel
+                                         __maybe_unused, double avg)
 {
        double total, ratio = 0.0;
        const char *color;
        fprintf(output, " frontend cycles idle   ");
 }
 
-static void print_stalled_cycles_backend(int cpu, struct perf_evsel *evsel __used, double avg)
+static void print_stalled_cycles_backend(int cpu,
+                                        struct perf_evsel *evsel
+                                        __maybe_unused, double avg)
 {
        double total, ratio = 0.0;
        const char *color;
        fprintf(output, " backend  cycles idle   ");
 }
 
-static void print_branch_misses(int cpu, struct perf_evsel *evsel __used, double avg)
+static void print_branch_misses(int cpu,
+                               struct perf_evsel *evsel __maybe_unused,
+                               double avg)
 {
        double total, ratio = 0.0;
        const char *color;
        fprintf(output, " of all branches        ");
 }
 
-static void print_l1_dcache_misses(int cpu, struct perf_evsel *evsel __used, double avg)
+static void print_l1_dcache_misses(int cpu,
+                                  struct perf_evsel *evsel __maybe_unused,
+                                  double avg)
 {
        double total, ratio = 0.0;
        const char *color;
        fprintf(output, " of all L1-dcache hits  ");
 }
 
-static void print_l1_icache_misses(int cpu, struct perf_evsel *evsel __used, double avg)
+static void print_l1_icache_misses(int cpu,
+                                  struct perf_evsel *evsel __maybe_unused,
+                                  double avg)
 {
        double total, ratio = 0.0;
        const char *color;
        fprintf(output, " of all L1-icache hits  ");
 }
 
-static void print_dtlb_cache_misses(int cpu, struct perf_evsel *evsel __used, double avg)
+static void print_dtlb_cache_misses(int cpu,
+                                   struct perf_evsel *evsel __maybe_unused,
+                                   double avg)
 {
        double total, ratio = 0.0;
        const char *color;
        fprintf(output, " of all dTLB cache hits ");
 }
 
-static void print_itlb_cache_misses(int cpu, struct perf_evsel *evsel __used, double avg)
+static void print_itlb_cache_misses(int cpu,
+                                   struct perf_evsel *evsel __maybe_unused,
+                                   double avg)
 {
        double total, ratio = 0.0;
        const char *color;
        fprintf(output, " of all iTLB cache hits ");
 }
 
-static void print_ll_cache_misses(int cpu, struct perf_evsel *evsel __used, double avg)
+static void print_ll_cache_misses(int cpu,
+                                 struct perf_evsel *evsel __maybe_unused,
+                                 double avg)
 {
        double total, ratio = 0.0;
        const char *color;
        NULL
 };
 
-static int stat__set_big_num(const struct option *opt __used,
-                            const char *s __used, int unset)
+static int stat__set_big_num(const struct option *opt __maybe_unused,
+                            const char *s __maybe_unused, int unset)
 {
        big_num_opt = unset ? 0 : 1;
        return 0;
        return perf_evlist__add_default_attrs(evsel_list, very_very_detailed_attrs);
 }
 
-int cmd_stat(int argc, const char **argv, const char *prefix __used)
+int cmd_stat(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        struct perf_evsel *pos;
        int status = -ENOMEM;
 
 
 #include <sys/mman.h>
 
-static int vmlinux_matches_kallsyms_filter(struct map *map __used, struct symbol *sym)
+static int vmlinux_matches_kallsyms_filter(struct map *map __maybe_unused,
+                                          struct symbol *sym)
 {
        bool *visited = symbol__priv(sym);
        *visited = true;
 /*
  * If the RDPMC instruction faults then signal this back to the test parent task:
  */
-static void segfault_handler(int sig __used, siginfo_t *info __used, void *uc __used)
+static void segfault_handler(int sig __maybe_unused,
+                            siginfo_t *info __maybe_unused,
+                            void *uc __maybe_unused)
 {
        exit(-1);
 }
        return 0;
 }
 
-int cmd_test(int argc, const char **argv, const char *prefix __used)
+int cmd_test(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        const char * const test_usage[] = {
        "perf test [<options>] [{list <test-name-fragment>|[<test-name-fragments>|<test-numbers>]}]",
 
 static u64 cpus_pstate_start_times[MAX_CPUS];
 static u64 cpus_pstate_state[MAX_CPUS];
 
-static int process_comm_event(struct perf_tool *tool __used,
+static int process_comm_event(struct perf_tool *tool __maybe_unused,
                              union perf_event *event,
-                             struct perf_sample *sample __used,
-                             struct machine *machine __used)
+                             struct perf_sample *sample __maybe_unused,
+                             struct machine *machine __maybe_unused)
 {
        pid_set_comm(event->comm.tid, event->comm.comm);
        return 0;
 }
 
-static int process_fork_event(struct perf_tool *tool __used,
+static int process_fork_event(struct perf_tool *tool __maybe_unused,
                              union perf_event *event,
-                             struct perf_sample *sample __used,
-                             struct machine *machine __used)
+                             struct perf_sample *sample __maybe_unused,
+                             struct machine *machine __maybe_unused)
 {
        pid_fork(event->fork.pid, event->fork.ppid, event->fork.time);
        return 0;
 }
 
-static int process_exit_event(struct perf_tool *tool __used,
+static int process_exit_event(struct perf_tool *tool __maybe_unused,
                              union perf_event *event,
-                             struct perf_sample *sample __used,
-                             struct machine *machine __used)
+                             struct perf_sample *sample __maybe_unused,
+                             struct machine *machine __maybe_unused)
 {
        pid_exit(event->fork.pid, event->fork.time);
        return 0;
 }
 
 
-static int process_sample_event(struct perf_tool *tool __used,
-                               union perf_event *event __used,
+static int process_sample_event(struct perf_tool *tool __maybe_unused,
+                               union perf_event *event __maybe_unused,
                                struct perf_sample *sample,
                                struct perf_evsel *evsel,
-                               struct machine *machine __used)
+                               struct machine *machine __maybe_unused)
 {
        struct trace_entry *te;
 
 }
 
 static int
-parse_process(const struct option *opt __used, const char *arg, int __used unset)
+parse_process(const struct option *opt __maybe_unused, const char *arg,
+             int __maybe_unused unset)
 {
        if (arg)
                add_process_filter(arg);
 };
 
 
-int cmd_timechart(int argc, const char **argv, const char *prefix __used)
+int cmd_timechart(int argc, const char **argv,
+                 const char *prefix __maybe_unused)
 {
        argc = parse_options(argc, argv, options, timechart_usage,
                        PARSE_OPT_STOP_AT_NON_OPTION);
 
                top->print_entries -= 9;
 }
 
-static void perf_top__sig_winch(int sig __used, siginfo_t *info __used, void *arg)
+static void perf_top__sig_winch(int sig __maybe_unused,
+                               siginfo_t *info __maybe_unused, void *arg)
 {
        struct perf_top *top = arg;
 
        NULL
 };
 
-static int symbol_filter(struct map *map __used, struct symbol *sym)
+static int symbol_filter(struct map *map __maybe_unused, struct symbol *sym)
 {
        const char *name = sym->name;
        int i;
        NULL
 };
 
-int cmd_top(int argc, const char **argv, const char *prefix __used)
+int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused)
 {
        struct perf_evsel *pos;
        int status;
 
        return err ? 0 : -1;
 }
 
-void ui_browser__hide(struct ui_browser *browser __used)
+void ui_browser__hide(struct ui_browser *browser __maybe_unused)
 {
        pthread_mutex_lock(&ui__lock);
        ui_helpline__pop();
 
 
 static int ui_browser__color_config(const char *var, const char *value,
-                                   void *data __used)
+                                   void *data __maybe_unused)
 {
        char *fg = NULL, *bg;
        int i;
        SLsmg_set_char_set(0);
 }
 
-void ui_browser__write_graph(struct ui_browser *browser __used, int graph)
+void ui_browser__write_graph(struct ui_browser *browser __maybe_unused,
+                            int graph)
 {
        SLsmg_set_char_set(1);
        SLsmg_write_char(graph);
 
        return (struct browser_disasm_line *)(dl + 1);
 }
 
-static bool disasm_line__filter(struct ui_browser *browser __used, void *entry)
+static bool disasm_line__filter(struct ui_browser *browser __maybe_unused,
+                               void *entry)
 {
        if (annotate_browser__opts.hide_src_code) {
                struct disasm_line *dl = list_entry(entry, struct disasm_line, node);
        return strcmp(name, cfg->name);
 }
 
-static int annotate__config(const char *var, const char *value, void *data __used)
+static int annotate__config(const char *var, const char *value,
+                           void *data __maybe_unused)
 {
        struct annotate__config *cfg;
        const char *name;
 
 
 int perf_evlist__gtk_browse_hists(struct perf_evlist *evlist,
                                  const char *help,
-                                 void (*timer) (void *arg)__used,
-                                 void *arg __used, int delay_secs __used)
+                                 void (*timer) (void *arg)__maybe_unused,
+                                 void *arg __maybe_unused,
+                                 int delay_secs __maybe_unused)
 {
        struct perf_evsel *pos;
        GtkWidget *vbox;
 
        return gtk_init_check(NULL, NULL) ? 0 : -1;
 }
 
-void perf_gtk__exit(bool wait_for_ok __used)
+void perf_gtk__exit(bool wait_for_ok __maybe_unused)
 {
        if (!perf_gtk__is_active_context(pgctx))
                return;
 
  *        For now, just add stubs for NO_NEWT=1 build.
  */
 #ifdef NO_NEWT_SUPPORT
-void ui_progress__update(u64 curr __used, u64 total __used,
-                        const char *title __used)
+void ui_progress__update(u64 curr __maybe_unused, u64 total __maybe_unused,
+                        const char *title __maybe_unused)
 {
 }
 #endif
 
 {
 }
 
-static void nop_helpline__push(const char *msg __used)
+static void nop_helpline__push(const char *msg __maybe_unused)
 {
 }
 
 
 extern char ui_helpline__current[512];
 
 #ifdef NO_NEWT_SUPPORT
-static inline int ui_helpline__show_help(const char *format __used,
-                                        va_list ap __used)
+static inline int ui_helpline__show_help(const char *format __maybe_unused,
+                                        va_list ap __maybe_unused)
 {
        return 0;
 }
 #endif /* NO_NEWT_SUPPORT */
 
 #ifdef NO_GTK2_SUPPORT
-static inline int perf_gtk__show_helpline(const char *format __used,
-                                         va_list ap __used)
+static inline int perf_gtk__show_helpline(const char *format __maybe_unused,
+                                         va_list ap __maybe_unused)
 {
        return 0;
 }
 
        return scnprintf(hpp->buf, hpp->size, fmt);
 }
 
-static int hpp__width_overhead(struct perf_hpp *hpp __used)
+static int hpp__width_overhead(struct perf_hpp *hpp __maybe_unused)
 {
        return 8;
 }
        return scnprintf(hpp->buf, hpp->size, fmt, "sys");
 }
 
-static int hpp__width_overhead_sys(struct perf_hpp *hpp __used)
+static int hpp__width_overhead_sys(struct perf_hpp *hpp __maybe_unused)
 {
        return 6;
 }
        return scnprintf(hpp->buf, hpp->size, fmt, "user");
 }
 
-static int hpp__width_overhead_us(struct perf_hpp *hpp __used)
+static int hpp__width_overhead_us(struct perf_hpp *hpp __maybe_unused)
 {
        return 6;
 }
        return scnprintf(hpp->buf, hpp->size, "guest sys");
 }
 
-static int hpp__width_overhead_guest_sys(struct perf_hpp *hpp __used)
+static int hpp__width_overhead_guest_sys(struct perf_hpp *hpp __maybe_unused)
 {
        return 9;
 }
        return scnprintf(hpp->buf, hpp->size, "guest usr");
 }
 
-static int hpp__width_overhead_guest_us(struct perf_hpp *hpp __used)
+static int hpp__width_overhead_guest_us(struct perf_hpp *hpp __maybe_unused)
 {
        return 9;
 }
        return scnprintf(hpp->buf, hpp->size, fmt, "Samples");
 }
 
-static int hpp__width_samples(struct perf_hpp *hpp __used)
+static int hpp__width_samples(struct perf_hpp *hpp __maybe_unused)
 {
        return 11;
 }
        return scnprintf(hpp->buf, hpp->size, fmt, "Period");
 }
 
-static int hpp__width_period(struct perf_hpp *hpp __used)
+static int hpp__width_period(struct perf_hpp *hpp __maybe_unused)
 {
        return 12;
 }
        return scnprintf(hpp->buf, hpp->size, fmt, "Delta");
 }
 
-static int hpp__width_delta(struct perf_hpp *hpp __used)
+static int hpp__width_delta(struct perf_hpp *hpp __maybe_unused)
 {
        return 7;
 }
        return scnprintf(hpp->buf, hpp->size, "Displ.");
 }
 
-static int hpp__width_displ(struct perf_hpp *hpp __used)
+static int hpp__width_displ(struct perf_hpp *hpp __maybe_unused)
 {
        return 6;
 }
 
-static int hpp__entry_displ(struct perf_hpp *hpp, struct hist_entry *he __used)
+static int hpp__entry_displ(struct perf_hpp *hpp,
+                           struct hist_entry *he __maybe_unused)
 {
        const char *fmt = symbol_conf.field_sep ? "%s" : "%6.6s";
        char buf[32] = " ";
 
        }
 }
 
-static void ui__sigwinch(int sig __used)
+static void ui__sigwinch(int sig __maybe_unused)
 {
        ui__need_resize = 1;
 }
        return SLkp_getkey();
 }
 
-static void newt_suspend(void *d __used)
+static void newt_suspend(void *d __maybe_unused)
 {
        newtSuspend();
        raise(SIGTSTP);
 
 static const char *alias_key;
 static char *alias_val;
 
-static int alias_lookup_cb(const char *k, const char *v, void *cb __used)
+static int alias_lookup_cb(const char *k, const char *v,
+                          void *cb __maybe_unused)
 {
        if (!prefixcmp(k, "alias.") && !strcmp(k+6, alias_key)) {
                if (!v)
 
        .scnprintf = dec__scnprintf,
 };
 
-static int nop__scnprintf(struct ins *ins __used, char *bf, size_t size,
-                         struct ins_operands *ops __used)
+static int nop__scnprintf(struct ins *ins __maybe_unused, char *bf, size_t size,
+                         struct ins_operands *ops __maybe_unused)
 {
        return scnprintf(bf, size, "%-6.6s", "nop");
 }
        return bsearch(name, instructions, nmemb, sizeof(struct ins), ins__cmp);
 }
 
-int symbol__annotate_init(struct map *map __used, struct symbol *sym)
+int symbol__annotate_init(struct map *map __maybe_unused, struct symbol *sym)
 {
        struct annotation *notes = symbol__annotation(sym);
        pthread_mutex_init(¬es->lock, NULL);
 
 void symbol__annotate_zero_histograms(struct symbol *sym);
 
 int symbol__annotate(struct symbol *sym, struct map *map, size_t privsize);
-int symbol__annotate_init(struct map *map __used, struct symbol *sym);
+int symbol__annotate_init(struct map *map __maybe_unused, struct symbol *sym);
 int symbol__annotate_printf(struct symbol *sym, struct map *map, int evidx,
                            bool full_paths, int min_pcnt, int max_lines,
                            int context);
                         int max_lines);
 
 #ifdef NO_NEWT_SUPPORT
-static inline int symbol__tui_annotate(struct symbol *sym __used,
-                                      struct map *map __used,
-                                      int evidx __used,
-                                      void(*timer)(void *arg) __used,
-                                      void *arg __used, int delay_secs __used)
+static inline int symbol__tui_annotate(struct symbol *sym __maybe_unused,
+                                      struct map *map __maybe_unused,
+                                      int evidx __maybe_unused,
+                                      void(*timer)(void *arg) __maybe_unused,
+                                      void *arg __maybe_unused,
+                                      int delay_secs __maybe_unused)
 {
        return 0;
 }
 
 #include "session.h"
 #include "tool.h"
 
-static int build_id__mark_dso_hit(struct perf_tool *tool __used,
+static int build_id__mark_dso_hit(struct perf_tool *tool __maybe_unused,
                                  union perf_event *event,
-                                 struct perf_sample *sample __used,
-                                 struct perf_evsel *evsel __used,
+                                 struct perf_sample *sample __maybe_unused,
+                                 struct perf_evsel *evsel __maybe_unused,
                                  struct machine *machine)
 {
        struct addr_location al;
        return 0;
 }
 
-static int perf_event__exit_del_thread(struct perf_tool *tool __used,
+static int perf_event__exit_del_thread(struct perf_tool *tool __maybe_unused,
                                       union perf_event *event,
-                                      struct perf_sample *sample __used,
+                                      struct perf_sample *sample
+                                      __maybe_unused,
                                       struct machine *machine)
 {
        struct thread *thread = machine__findnew_thread(machine, event->fork.tid);
 
        if (fallback_to_pager)
                setup_pager();
 }
-static inline void exit_browser(bool wait_for_ok __used) {}
+static inline void exit_browser(bool wait_for_ok __maybe_unused) {}
 #else
 void setup_browser(bool fallback_to_pager);
 void exit_browser(bool wait_for_ok);
 {
        return -1;
 }
-static inline void ui__exit(bool wait_for_ok __used) {}
+static inline void ui__exit(bool wait_for_ok __maybe_unused) {}
 #else
 int ui__init(void);
 void ui__exit(bool wait_for_ok);
 {
        return -1;
 }
-static inline void perf_gtk__exit(bool wait_for_ok __used) {}
+static inline void perf_gtk__exit(bool wait_for_ok __maybe_unused) {}
 #else
 int perf_gtk__init(void);
 void perf_gtk__exit(bool wait_for_ok);
 
  */
 static void
 sort_chain_flat(struct rb_root *rb_root, struct callchain_root *root,
-               u64 min_hit, struct callchain_param *param __used)
+               u64 min_hit, struct callchain_param *param __maybe_unused)
 {
        __sort_chain_flat(rb_root, &root->node, min_hit);
 }
 
 static void
 sort_chain_graph_abs(struct rb_root *rb_root, struct callchain_root *chain_root,
-                    u64 min_hit, struct callchain_param *param __used)
+                    u64 min_hit, struct callchain_param *param __maybe_unused)
 {
        __sort_chain_graph_abs(&chain_root->node, min_hit);
        rb_root->rb_node = chain_root->node.rb_root.rb_node;
 
 static void
 sort_chain_graph_rel(struct rb_root *rb_root, struct callchain_root *chain_root,
-                    u64 min_hit __used, struct callchain_param *param)
+                    u64 min_hit __maybe_unused, struct callchain_param *param)
 {
        __sort_chain_graph_rel(&chain_root->node, param->min_percent / 100.0);
        rb_root->rb_node = chain_root->node.rb_root.rb_node;
 
        }
 }
 
-int parse_cgroups(const struct option *opt __used, const char *str,
-                 int unset __used)
+int parse_cgroups(const struct option *opt __maybe_unused, const char *str,
+                 int unset __maybe_unused)
 {
        struct perf_evlist *evlist = *(struct perf_evlist **)opt->value;
        const char *p, *e, *eos = str + strlen(str);
 
        return value;
 }
 
-static int perf_default_core_config(const char *var __used, const char *value __used)
+static int perf_default_core_config(const char *var __maybe_unused,
+                                   const char *value __maybe_unused)
 {
        /* Add other config variables here. */
        return 0;
 }
 
-int perf_default_config(const char *var, const char *value, void *dummy __used)
+int perf_default_config(const char *var, const char *value,
+                       void *dummy __maybe_unused)
 {
        if (!prefixcmp(var, "core."))
                return perf_default_core_config(var, value);
 
 struct perf_error_ops;
 
 #if defined(NO_NEWT_SUPPORT) && defined(NO_GTK2_SUPPORT)
-static inline void ui_progress__update(u64 curr __used, u64 total __used,
-                                      const char *title __used) {}
+static inline void ui_progress__update(u64 curr __maybe_unused,
+                                      u64 total __maybe_unused,
+                                      const char *title __maybe_unused) {}
 
 #define ui__error(format, arg...) ui__warning(format, ##arg)
 
 static inline int
-perf_error__register(struct perf_error_ops *eops __used)
+perf_error__register(struct perf_error_ops *eops __maybe_unused)
 {
        return 0;
 }
 
 static inline int
-perf_error__unregister(struct perf_error_ops *eops __used)
+perf_error__unregister(struct perf_error_ops *eops __maybe_unused)
 {
        return 0;
 }
 
        return fprintf(fp, ": %s:%d\n", event->comm.comm, event->comm.tid);
 }
 
-int perf_event__process_comm(struct perf_tool *tool __used,
+int perf_event__process_comm(struct perf_tool *tool __maybe_unused,
                             union perf_event *event,
-                            struct perf_sample *sample __used,
+                            struct perf_sample *sample __maybe_unused,
                             struct machine *machine)
 {
        struct thread *thread = machine__findnew_thread(machine, event->comm.tid);
        return 0;
 }
 
-int perf_event__process_lost(struct perf_tool *tool __used,
+int perf_event__process_lost(struct perf_tool *tool __maybe_unused,
                             union perf_event *event,
-                            struct perf_sample *sample __used,
-                            struct machine *machine __used)
+                            struct perf_sample *sample __maybe_unused,
+                            struct machine *machine __maybe_unused)
 {
        dump_printf(": id:%" PRIu64 ": lost:%" PRIu64 "\n",
                    event->lost.id, event->lost.lost);
                maps[MAP__FUNCTION]->end = ~0ULL;
 }
 
-static int perf_event__process_kernel_mmap(struct perf_tool *tool __used,
+static int perf_event__process_kernel_mmap(struct perf_tool *tool
+                                          __maybe_unused,
                                           union perf_event *event,
                                           struct machine *machine)
 {
 
 int perf_event__process_mmap(struct perf_tool *tool,
                             union perf_event *event,
-                            struct perf_sample *sample __used,
+                            struct perf_sample *sample __maybe_unused,
                             struct machine *machine)
 {
        struct thread *thread;
                       event->fork.ppid, event->fork.ptid);
 }
 
-int perf_event__process_task(struct perf_tool *tool __used,
+int perf_event__process_task(struct perf_tool *tool __maybe_unused,
                             union perf_event *event,
-                            struct perf_sample *sample __used,
+                            struct perf_sample *sample __maybe_unused,
                              struct machine *machine)
 {
        struct thread *thread = machine__findnew_thread(machine, event->fork.tid);
 
        return ret;
 }
 
-static int write_tracing_data(int fd, struct perf_header *h __used,
+static int write_tracing_data(int fd, struct perf_header *h __maybe_unused,
                            struct perf_evlist *evlist)
 {
        return read_tracing_data(fd, &evlist->entries);
 
 
 static int write_build_id(int fd, struct perf_header *h,
-                         struct perf_evlist *evlist __used)
+                         struct perf_evlist *evlist __maybe_unused)
 {
        struct perf_session *session;
        int err;
        return 0;
 }
 
-static int write_hostname(int fd, struct perf_header *h __used,
-                         struct perf_evlist *evlist __used)
+static int write_hostname(int fd, struct perf_header *h __maybe_unused,
+                         struct perf_evlist *evlist __maybe_unused)
 {
        struct utsname uts;
        int ret;
        return do_write_string(fd, uts.nodename);
 }
 
-static int write_osrelease(int fd, struct perf_header *h __used,
-                          struct perf_evlist *evlist __used)
+static int write_osrelease(int fd, struct perf_header *h __maybe_unused,
+                          struct perf_evlist *evlist __maybe_unused)
 {
        struct utsname uts;
        int ret;
        return do_write_string(fd, uts.release);
 }
 
-static int write_arch(int fd, struct perf_header *h __used,
-                     struct perf_evlist *evlist __used)
+static int write_arch(int fd, struct perf_header *h __maybe_unused,
+                     struct perf_evlist *evlist __maybe_unused)
 {
        struct utsname uts;
        int ret;
        return do_write_string(fd, uts.machine);
 }
 
-static int write_version(int fd, struct perf_header *h __used,
-                        struct perf_evlist *evlist __used)
+static int write_version(int fd, struct perf_header *h __maybe_unused,
+                        struct perf_evlist *evlist __maybe_unused)
 {
        return do_write_string(fd, perf_version_string);
 }
 
-static int write_cpudesc(int fd, struct perf_header *h __used,
-                      struct perf_evlist *evlist __used)
+static int write_cpudesc(int fd, struct perf_header *h __maybe_unused,
+                      struct perf_evlist *evlist __maybe_unused)
 {
 #ifndef CPUINFO_PROC
 #define CPUINFO_PROC NULL
        return ret;
 }
 
-static int write_nrcpus(int fd, struct perf_header *h __used,
-                       struct perf_evlist *evlist __used)
+static int write_nrcpus(int fd, struct perf_header *h __maybe_unused,
+                       struct perf_evlist *evlist __maybe_unused)
 {
        long nr;
        u32 nrc, nra;
        return do_write(fd, &nra, sizeof(nra));
 }
 
-static int write_event_desc(int fd, struct perf_header *h __used,
+static int write_event_desc(int fd, struct perf_header *h __maybe_unused,
                            struct perf_evlist *evlist)
 {
        struct perf_evsel *evsel;
        return 0;
 }
 
-static int write_cmdline(int fd, struct perf_header *h __used,
-                        struct perf_evlist *evlist __used)
+static int write_cmdline(int fd, struct perf_header *h __maybe_unused,
+                        struct perf_evlist *evlist __maybe_unused)
 {
        char buf[MAXPATHLEN];
        char proc[32];
        return tp;
 }
 
-static int write_cpu_topology(int fd, struct perf_header *h __used,
-                         struct perf_evlist *evlist __used)
+static int write_cpu_topology(int fd, struct perf_header *h __maybe_unused,
+                         struct perf_evlist *evlist __maybe_unused)
 {
        struct cpu_topo *tp;
        u32 i;
 
 
 
-static int write_total_mem(int fd, struct perf_header *h __used,
-                         struct perf_evlist *evlist __used)
+static int write_total_mem(int fd, struct perf_header *h __maybe_unused,
+                         struct perf_evlist *evlist __maybe_unused)
 {
        char *buf = NULL;
        FILE *fp;
        return ret;
 }
 
-static int write_numa_topology(int fd, struct perf_header *h __used,
-                         struct perf_evlist *evlist __used)
+static int write_numa_topology(int fd, struct perf_header *h __maybe_unused,
+                         struct perf_evlist *evlist __maybe_unused)
 {
        char *buf = NULL;
        size_t len = 0;
  * };
  */
 
-static int write_pmu_mappings(int fd, struct perf_header *h __used,
-                             struct perf_evlist *evlist __used)
+static int write_pmu_mappings(int fd, struct perf_header *h __maybe_unused,
+                             struct perf_evlist *evlist __maybe_unused)
 {
        struct perf_pmu *pmu = NULL;
        off_t offset = lseek(fd, 0, SEEK_CUR);
  * default get_cpuid(): nothing gets recorded
  * actual implementation must be in arch/$(ARCH)/util/header.c
  */
-int __attribute__((weak)) get_cpuid(char *buffer __used, size_t sz __used)
+int __attribute__ ((weak)) get_cpuid(char *buffer __maybe_unused,
+                                    size_t sz __maybe_unused)
 {
        return -1;
 }
 
-static int write_cpuid(int fd, struct perf_header *h __used,
-                      struct perf_evlist *evlist __used)
+static int write_cpuid(int fd, struct perf_header *h __maybe_unused,
+                      struct perf_evlist *evlist __maybe_unused)
 {
        char buffer[64];
        int ret;
        return do_write_string(fd, buffer);
 }
 
-static int write_branch_stack(int fd __used, struct perf_header *h __used,
-                      struct perf_evlist *evlist __used)
+static int write_branch_stack(int fd __maybe_unused,
+                             struct perf_header *h __maybe_unused,
+                      struct perf_evlist *evlist __maybe_unused)
 {
        return 0;
 }
        free_event_desc(events);
 }
 
-static void print_total_mem(struct perf_header *h __used, int fd, FILE *fp)
+static void print_total_mem(struct perf_header *h __maybe_unused, int fd,
+                           FILE *fp)
 {
        uint64_t mem;
        ssize_t ret;
        fprintf(fp, "# total memory : unknown\n");
 }
 
-static void print_numa_topology(struct perf_header *h __used, int fd, FILE *fp)
+static void print_numa_topology(struct perf_header *h __maybe_unused, int fd,
+                               FILE *fp)
 {
        ssize_t ret;
        u32 nr, c, i;
        free(str);
 }
 
-static void print_branch_stack(struct perf_header *ph __used, int fd __used,
+static void print_branch_stack(struct perf_header *ph __maybe_unused,
+                              int fd __maybe_unused,
                               FILE *fp)
 {
        fprintf(fp, "# contains samples with branch stack\n");
        return err;
 }
 
-static int process_tracing_data(struct perf_file_section *section __unused,
-                             struct perf_header *ph __unused,
-                             int feat __unused, int fd, void *data)
+static int process_tracing_data(struct perf_file_section *section
+                               __maybe_unused,
+                             struct perf_header *ph __maybe_unused,
+                             int feat __maybe_unused, int fd, void *data)
 {
        trace_report(fd, data, false);
        return 0;
 
 static int process_build_id(struct perf_file_section *section,
                            struct perf_header *ph,
-                           int feat __unused, int fd, void *data __used)
+                           int feat __maybe_unused, int fd,
+                           void *data __maybe_unused)
 {
        if (perf_header__read_build_ids(ph, fd, section->offset, section->size))
                pr_debug("Failed to read buildids, continuing...\n");
 }
 
 static int
-process_event_desc(struct perf_file_section *section __unused,
-                  struct perf_header *header, int feat __unused, int fd,
-                  void *data __used)
+process_event_desc(struct perf_file_section *section __maybe_unused,
+                  struct perf_header *header, int feat __maybe_unused, int fd,
+                  void *data __maybe_unused)
 {
        struct perf_session *session = container_of(header, struct perf_session, header);
        struct perf_evsel *evsel, *events = read_event_desc(header, fd);
        return err;
 }
 
-int perf_event__process_event_type(struct perf_tool *tool __unused,
+int perf_event__process_event_type(struct perf_tool *tool __maybe_unused,
                                   union perf_event *event)
 {
        if (perf_header__push_event(event->event_type.event_type.event_id,
        union perf_event ev;
        struct tracing_data *tdata;
        ssize_t size = 0, aligned_size = 0, padding;
-       int err __used = 0;
+       int err __maybe_unused = 0;
 
        /*
         * We are going to store the size of the data followed
        return err;
 }
 
-int perf_event__process_build_id(struct perf_tool *tool __used,
+int perf_event__process_build_id(struct perf_tool *tool __maybe_unused,
                                 union perf_event *event,
                                 struct perf_session *session)
 {
 
        exit(1);
 }
 
-int cmd_version(int argc __used, const char **argv __used, const char *prefix __used)
+int cmd_version(int argc __maybe_unused, const char **argv __maybe_unused,
+               const char *prefix __maybe_unused)
 {
        printf("perf version %s\n", perf_version_string);
        return 0;
 
  * collapse the histogram
  */
 
-static bool hists__collapse_insert_entry(struct hists *hists __used,
+static bool hists__collapse_insert_entry(struct hists *hists __maybe_unused,
                                         struct rb_root *root,
                                         struct hist_entry *he)
 {
 
 
 #ifdef NO_NEWT_SUPPORT
 static inline
-int perf_evlist__tui_browse_hists(struct perf_evlist *evlist __used,
-                                 const char *help __used,
-                                 void(*timer)(void *arg) __used,
-                                 void *arg __used,
-                                 int refresh __used)
+int perf_evlist__tui_browse_hists(struct perf_evlist *evlist __maybe_unused,
+                                 const char *help __maybe_unused,
+                                 void(*timer)(void *arg) __maybe_unused,
+                                 void *arg __maybe_unused,
+                                 int refresh __maybe_unused)
 {
        return 0;
 }
 
-static inline int hist_entry__tui_annotate(struct hist_entry *self __used,
-                                          int evidx __used,
-                                          void(*timer)(void *arg) __used,
-                                          void *arg __used,
-                                          int delay_secs __used)
+static inline int hist_entry__tui_annotate(struct hist_entry *self
+                                          __maybe_unused,
+                                          int evidx __maybe_unused,
+                                          void(*timer)(void *arg)
+                                          __maybe_unused,
+                                          void *arg __maybe_unused,
+                                          int delay_secs __maybe_unused)
 {
        return 0;
 }
 
 #ifdef NO_GTK2_SUPPORT
 static inline
-int perf_evlist__gtk_browse_hists(struct perf_evlist *evlist __used,
-                                 const char *help __used,
-                                 void(*timer)(void *arg) __used,
-                                 void *arg __used,
-                                 int refresh __used)
+int perf_evlist__gtk_browse_hists(struct perf_evlist *evlist __maybe_unused,
+                                 const char *help __maybe_unused,
+                                 void(*timer)(void *arg) __maybe_unused,
+                                 void *arg __maybe_unused,
+                                 int refresh __maybe_unused)
 {
        return 0;
 }
 
 #define __attribute_const__
 #endif
 
-#define __used         __attribute__((__unused__))
+#ifndef __maybe_unused
+#define __maybe_unused         __attribute__((unused))
+#endif
 #define __packed       __attribute__((__packed__))
 
 #ifndef __force
 
 
 #include "intlist.h"
 
-static struct rb_node *intlist__node_new(struct rblist *rblist __used,
+static struct rb_node *intlist__node_new(struct rblist *rblist __maybe_unused,
                                         const void *entry)
 {
        int i = (int)((long)entry);
        free(ilist);
 }
 
-static void intlist__node_delete(struct rblist *rblist __used,
+static void intlist__node_delete(struct rblist *rblist __maybe_unused,
                                 struct rb_node *rb_node)
 {
        struct int_node *node = container_of(rb_node, struct int_node, rb_node);
 
        return ip + map->start - map->pgoff;
 }
 
-static inline u64 identity__map_ip(struct map *map __used, u64 ip)
+static inline u64 identity__map_ip(struct map *map __maybe_unused, u64 ip)
 {
        return ip;
 }
 
        return 0;
 }
 
-static int test__group3(struct perf_evlist *evlist __used)
+static int test__group3(struct perf_evlist *evlist __maybe_unused)
 {
        struct perf_evsel *evsel, *leader;
 
        return 0;
 }
 
-static int test__group4(struct perf_evlist *evlist __used)
+static int test__group4(struct perf_evlist *evlist __maybe_unused)
 {
        struct perf_evsel *evsel, *leader;
 
        return 0;
 }
 
-static int test__group5(struct perf_evlist *evlist __used)
+static int test__group5(struct perf_evlist *evlist __maybe_unused)
 {
        struct perf_evsel *evsel, *leader;
 
 
        return ret;
 }
 
-int parse_events(struct perf_evlist *evlist, const char *str, int unset __used)
+int parse_events(struct perf_evlist *evlist, const char *str,
+                int unset __maybe_unused)
 {
        struct parse_events_data__events data = {
                .list = LIST_HEAD_INIT(data.list),
 }
 
 int parse_events_option(const struct option *opt, const char *str,
-                       int unset __used)
+                       int unset __maybe_unused)
 {
        struct perf_evlist *evlist = *(struct perf_evlist **)opt->value;
        return parse_events(evlist, str, unset);
 }
 
 int parse_filter(const struct option *opt, const char *str,
-                int unset __used)
+                int unset __maybe_unused)
 {
        struct perf_evlist *evlist = *(struct perf_evlist **)opt->value;
        struct perf_evsel *last = NULL;
 
 
 %%
 
-int parse_events_wrap(void *scanner __used)
+int parse_events_wrap(void *scanner __maybe_unused)
 {
        return 1;
 }
 
 
 %%
 
-void parse_events_error(void *data __used, void *scanner __used,
-                       char const *msg __used)
+void parse_events_error(void *data __maybe_unused, void *scanner __maybe_unused,
+                       char const *msg __maybe_unused)
 {
 }
 
 }
 
 
-int parse_opt_verbosity_cb(const struct option *opt, const char *arg __used,
+int parse_opt_verbosity_cb(const struct option *opt,
+                          const char *arg __maybe_unused,
                           int unset)
 {
        int *target = opt->value;
 
 #else
 #define PERF_REGS_MASK 0
 
-static inline const char *perf_reg_name(int id __used)
+static inline const char *perf_reg_name(int id __maybe_unused)
 {
        return NULL;
 }
 
 
 %%
 
-void perf_pmu_error(struct list_head *list __used,
-                   char *name __used,
-                   char const *msg __used)
+void perf_pmu_error(struct list_head *list __maybe_unused,
+                   char *name __maybe_unused,
+                   char const *msg __maybe_unused)
 {
 }
 
 #include "symbol.h"
 #include "thread.h"
 #include "debugfs.h"
-#include "trace-event.h"       /* For __unused */
+#include "trace-event.h"       /* For __maybe_unused */
 #include "probe-event.h"
 #include "probe-finder.h"
 #include "session.h"
 }
 
 static int try_to_find_probe_trace_events(struct perf_probe_event *pev,
-                               struct probe_trace_event **tevs __unused,
-                               int max_tevs __unused, const char *target)
+                               struct probe_trace_event **tevs __maybe_unused,
+                               int max_tevs __maybe_unused, const char *target)
 {
        if (perf_probe_event_need_dwarf(pev)) {
                pr_warning("Debuginfo-analysis is not supported.\n");
        return 0;
 }
 
-int show_line_range(struct line_range *lr __unused, const char *module __unused)
+int show_line_range(struct line_range *lr __maybe_unused,
+                   const char *module __maybe_unused)
 {
        pr_warning("Debuginfo-analysis is not supported.\n");
        return -ENOSYS;
 }
 
-int show_available_vars(struct perf_probe_event *pevs __unused,
-                       int npevs __unused, int max_vls __unused,
-                       const char *module __unused,
-                       struct strfilter *filter __unused,
-                       bool externs __unused)
+int show_available_vars(struct perf_probe_event *pevs __maybe_unused,
+                       int npevs __maybe_unused, int max_vls __maybe_unused,
+                       const char *module __maybe_unused,
+                       struct strfilter *filter __maybe_unused,
+                       bool externs __maybe_unused)
 {
        pr_warning("Debuginfo-analysis is not supported.\n");
        return -ENOSYS;
  * If a symbol corresponds to a function with global binding and
  * matches filter return 0. For all others return 1.
  */
-static int filter_available_functions(struct map *map __unused,
+static int filter_available_functions(struct map *map __maybe_unused,
                                      struct symbol *sym)
 {
        if (sym->binding == STB_GLOBAL &&
 
 #else
 /* With older elfutils, this just support kernel module... */
 static int debuginfo__init_online_kernel_dwarf(struct debuginfo *self,
-                                              Dwarf_Addr addr __used)
+                                              Dwarf_Addr addr __maybe_unused)
 {
        const char *path = kernel_get_module_path("kernel");
 
 }
 
 static int line_range_walk_cb(const char *fname, int lineno,
-                             Dwarf_Addr addr __used,
+                             Dwarf_Addr addr __maybe_unused,
                              void *data)
 {
        struct line_finder *lf = data;
 
 };
 
 static int pyrf_evlist__init(struct pyrf_evlist *pevlist,
-                            PyObject *args, PyObject *kwargs __used)
+                            PyObject *args, PyObject *kwargs __maybe_unused)
 {
        PyObject *pcpus = NULL, *pthreads = NULL;
        struct cpu_map *cpus;
 }
 
 static PyObject *pyrf_evlist__get_pollfd(struct pyrf_evlist *pevlist,
-                                        PyObject *args __used, PyObject *kwargs __used)
+                                        PyObject *args __maybe_unused,
+                                        PyObject *kwargs __maybe_unused)
 {
        struct perf_evlist *evlist = &pevlist->evlist;
         PyObject *list = PyList_New(0);
 
 
 static PyObject *pyrf_evlist__add(struct pyrf_evlist *pevlist,
-                                 PyObject *args, PyObject *kwargs __used)
+                                 PyObject *args,
+                                 PyObject *kwargs __maybe_unused)
 {
        struct perf_evlist *evlist = &pevlist->evlist;
        PyObject *pevsel;
 
        return event;
 }
 
-static void perl_process_tracepoint(union perf_event *perf_event __unused,
+static void perl_process_tracepoint(union perf_event *perf_event __maybe_unused,
                                    struct perf_sample *sample,
                                    struct perf_evsel *evsel,
-                                   struct machine *machine __unused,
+                                   struct machine *machine __maybe_unused,
                                    struct addr_location *al)
 {
        struct format_field *field;
 static void perl_process_event_generic(union perf_event *event,
                                       struct perf_sample *sample,
                                       struct perf_evsel *evsel,
-                                      struct machine *machine __unused,
-                                      struct addr_location *al __unused)
+                                      struct machine *machine __maybe_unused,
+                                      struct addr_location *al __maybe_unused)
 {
        dSP;
 
 
        return event;
 }
 
-static void python_process_tracepoint(union perf_event *perf_event __unused,
+static void python_process_tracepoint(union perf_event *perf_event
+                                     __maybe_unused,
                                 struct perf_sample *sample,
                                 struct perf_evsel *evsel,
-                                struct machine *machine __unused,
+                                struct machine *machine __maybe_unused,
                                 struct addr_location *al)
 {
        PyObject *handler, *retval, *context, *t, *obj, *dict = NULL;
        Py_DECREF(t);
 }
 
-static void python_process_general_event(union perf_event *perf_event __unused,
+static void python_process_general_event(union perf_event *perf_event
+                                        __maybe_unused,
                                         struct perf_sample *sample,
                                         struct perf_evsel *evsel,
-                                        struct machine *machine __unused,
+                                        struct machine *machine __maybe_unused,
                                         struct addr_location *al)
 {
        PyObject *handler, *retval, *t, *dict;
 
 
 }
 
-static int process_event_synth_tracing_data_stub(union perf_event *event __used,
-                                                struct perf_session *session __used)
+static int process_event_synth_tracing_data_stub(union perf_event *event
+                                                __maybe_unused,
+                                                struct perf_session *session
+                                               __maybe_unused)
 {
        dump_printf(": unhandled!\n");
        return 0;
 }
 
-static int process_event_synth_attr_stub(union perf_event *event __used,
-                                        struct perf_evlist **pevlist __used)
+static int process_event_synth_attr_stub(union perf_event *event __maybe_unused,
+                                        struct perf_evlist **pevlist
+                                        __maybe_unused)
 {
        dump_printf(": unhandled!\n");
        return 0;
 }
 
-static int process_event_sample_stub(struct perf_tool *tool __used,
-                                    union perf_event *event __used,
-                                    struct perf_sample *sample __used,
-                                    struct perf_evsel *evsel __used,
-                                    struct machine *machine __used)
+static int process_event_sample_stub(struct perf_tool *tool __maybe_unused,
+                                    union perf_event *event __maybe_unused,
+                                    struct perf_sample *sample __maybe_unused,
+                                    struct perf_evsel *evsel __maybe_unused,
+                                    struct machine *machine __maybe_unused)
 {
        dump_printf(": unhandled!\n");
        return 0;
 }
 
-static int process_event_stub(struct perf_tool *tool __used,
-                             union perf_event *event __used,
-                             struct perf_sample *sample __used,
-                             struct machine *machine __used)
+static int process_event_stub(struct perf_tool *tool __maybe_unused,
+                             union perf_event *event __maybe_unused,
+                             struct perf_sample *sample __maybe_unused,
+                             struct machine *machine __maybe_unused)
 {
        dump_printf(": unhandled!\n");
        return 0;
 }
 
-static int process_finished_round_stub(struct perf_tool *tool __used,
-                                      union perf_event *event __used,
-                                      struct perf_session *perf_session __used)
+static int process_finished_round_stub(struct perf_tool *tool __maybe_unused,
+                                      union perf_event *event __maybe_unused,
+                                      struct perf_session *perf_session
+                                      __maybe_unused)
 {
        dump_printf(": unhandled!\n");
        return 0;
 }
 
-static int process_event_type_stub(struct perf_tool *tool __used,
-                                  union perf_event *event __used)
+static int process_event_type_stub(struct perf_tool *tool __maybe_unused,
+                                  union perf_event *event __maybe_unused)
 {
        dump_printf(": unhandled!\n");
        return 0;
 }
 
 static void perf_event__all64_swap(union perf_event *event,
-                                  bool sample_id_all __used)
+                                  bool sample_id_all __maybe_unused)
 {
        struct perf_event_header *hdr = &event->header;
        mem_bswap_64(hdr + 1, event->header.size - sizeof(*hdr));
 }
 
 static void perf_event__hdr_attr_swap(union perf_event *event,
-                                     bool sample_id_all __used)
+                                     bool sample_id_all __maybe_unused)
 {
        size_t size;
 
 }
 
 static void perf_event__event_type_swap(union perf_event *event,
-                                       bool sample_id_all __used)
+                                       bool sample_id_all __maybe_unused)
 {
        event->event_type.event_type.event_id =
                bswap_64(event->event_type.event_type.event_id);
 }
 
 static void perf_event__tracing_data_swap(union perf_event *event,
-                                         bool sample_id_all __used)
+                                         bool sample_id_all __maybe_unused)
 {
        event->tracing_data.size = bswap_32(event->tracing_data.size);
 }
  *      etc...
  */
 static int process_finished_round(struct perf_tool *tool,
-                                 union perf_event *event __used,
+                                 union perf_event *event __maybe_unused,
                                  struct perf_session *session)
 {
        int ret = flush_sample_queue(session, tool);
 
 
 static int _hist_entry__sym_snprintf(struct map *map, struct symbol *sym,
                                     u64 ip, char level, char *bf, size_t size,
-                                    unsigned int width __used)
+                                    unsigned int width __maybe_unused)
 {
        size_t ret = 0;
 
 };
 
 static int hist_entry__sym_snprintf(struct hist_entry *self, char *bf,
-                                   size_t size, unsigned int width __used)
+                                   size_t size,
+                                   unsigned int width __maybe_unused)
 {
        return _hist_entry__sym_snprintf(self->ms.map, self->ms.sym, self->ip,
                                         self->level, bf, size, width);
 }
 
 static int hist_entry__srcline_snprintf(struct hist_entry *self, char *bf,
-                                  size_t size, unsigned int width __used)
+                                       size_t size,
+                                       unsigned int width __maybe_unused)
 {
        FILE *fp;
        char cmd[PATH_MAX + 2], *path = self->srcline, *nl;
 }
 
 static int hist_entry__sym_from_snprintf(struct hist_entry *self, char *bf,
-                                   size_t size, unsigned int width __used)
+                                       size_t size,
+                                       unsigned int width __maybe_unused)
 {
        struct addr_map_symbol *from = &self->branch_info->from;
        return _hist_entry__sym_snprintf(from->map, from->sym, from->addr,
 }
 
 static int hist_entry__sym_to_snprintf(struct hist_entry *self, char *bf,
-                                   size_t size, unsigned int width __used)
+                                      size_t size,
+                                      unsigned int width __maybe_unused)
 {
        struct addr_map_symbol *to = &self->branch_info->to;
        return _hist_entry__sym_snprintf(to->map, to->sym, to->addr,
 
        return -1;
 }
 
-int filename__read_debuglink(const char *filename __used,
-                            char *debuglink __used, size_t size __used)
+int filename__read_debuglink(const char *filename __maybe_unused,
+                            char *debuglink __maybe_unused,
+                            size_t size __maybe_unused)
 {
        return -1;
 }
        return ret;
 }
 
-int symsrc__init(struct symsrc *ss, struct dso *dso __used, const char *name,
+int symsrc__init(struct symsrc *ss, struct dso *dso __maybe_unused,
+                const char *name,
                 enum dso_binary_type type)
 {
        int fd = open(name, O_RDONLY);
        return -1;
 }
 
-bool symsrc__possibly_runtime(struct symsrc *ss __used)
+bool symsrc__possibly_runtime(struct symsrc *ss __maybe_unused)
 {
        /* Assume all sym sources could be a runtime image. */
        return true;
 }
 
-bool symsrc__has_symtab(struct symsrc *ss __used)
+bool symsrc__has_symtab(struct symsrc *ss __maybe_unused)
 {
        return false;
 }
        close(ss->fd);
 }
 
-int dso__synthesize_plt_symbols(struct dso *dso __used,
-                               struct symsrc *ss __used,
-                               struct map *map __used,
-                               symbol_filter_t filter __used)
+int dso__synthesize_plt_symbols(struct dso *dso __maybe_unused,
+                               struct symsrc *ss __maybe_unused,
+                               struct map *map __maybe_unused,
+                               symbol_filter_t filter __maybe_unused)
 {
        return 0;
 }
 
-int dso__load_sym(struct dso *dso, struct map *map __used, struct symsrc *ss,
-                 struct symsrc *runtime_ss __used,
-                 symbol_filter_t filter __used, int kmodule __used)
+int dso__load_sym(struct dso *dso, struct map *map __maybe_unused,
+                 struct symsrc *ss,
+                 struct symsrc *runtime_ss __maybe_unused,
+                 symbol_filter_t filter __maybe_unused,
+                 int kmodule __maybe_unused)
 {
        unsigned char *build_id[BUILD_ID_SIZE];
 
 
 };
 
 static int symbol__in_kernel(void *arg, const char *name,
-                            char type __used, u64 start)
+                            char type __maybe_unused, u64 start)
 {
        struct process_args *args = arg;
 
 
 #ifdef HAVE_CPLUS_DEMANGLE
 extern char *cplus_demangle(const char *, int);
 
-static inline char *bfd_demangle(void __used *v, const char *c, int i)
+static inline char *bfd_demangle(void __maybe_unused *v, const char *c, int i)
 {
        return cplus_demangle(c, i);
 }
 #else
 #ifdef NO_DEMANGLE
-static inline char *bfd_demangle(void __used *v, const char __used *c,
-                                int __used i)
+static inline char *bfd_demangle(void __maybe_unused *v,
+                                const char __maybe_unused *c,
+                                int __maybe_unused i)
 {
        return NULL;
 }
 
 }
 
 void parse_proc_kallsyms(struct pevent *pevent,
-                        char *file, unsigned int size __unused)
+                        char *file, unsigned int size __maybe_unused)
 {
        unsigned long long addr;
        char *func;
 }
 
 void parse_ftrace_printk(struct pevent *pevent,
-                        char *file, unsigned int size __unused)
+                        char *file, unsigned int size __maybe_unused)
 {
        unsigned long long addr;
        char *printk;
 
        return 0;
 }
 
-static void process_event_unsupported(union perf_event *event __unused,
-                                     struct perf_sample *sample __unused,
-                                     struct perf_evsel *evsel __unused,
-                                     struct machine *machine __unused,
-                                     struct addr_location *al __unused)
+static void process_event_unsupported(union perf_event *event __maybe_unused,
+                                     struct perf_sample *sample __maybe_unused,
+                                     struct perf_evsel *evsel __maybe_unused,
+                                     struct machine *machine __maybe_unused,
+                                     struct addr_location *al __maybe_unused)
 {
 }
 
                "\n  etc.\n");
 }
 
-static int python_start_script_unsupported(const char *script __unused,
-                                          int argc __unused,
-                                          const char **argv __unused)
+static int python_start_script_unsupported(const char *script __maybe_unused,
+                                          int argc __maybe_unused,
+                                          const char **argv __maybe_unused)
 {
        print_python_unsupported_msg();
 
        return -1;
 }
 
-static int python_generate_script_unsupported(struct pevent *pevent __unused,
-                                             const char *outfile __unused)
+static int python_generate_script_unsupported(struct pevent *pevent
+                                             __maybe_unused,
+                                             const char *outfile
+                                             __maybe_unused)
 {
        print_python_unsupported_msg();
 
                "\n  etc.\n");
 }
 
-static int perl_start_script_unsupported(const char *script __unused,
-                                        int argc __unused,
-                                        const char **argv __unused)
+static int perl_start_script_unsupported(const char *script __maybe_unused,
+                                        int argc __maybe_unused,
+                                        const char **argv __maybe_unused)
 {
        print_perl_unsupported_msg();
 
        return -1;
 }
 
-static int perl_generate_script_unsupported(struct pevent *pevent __unused,
-                                           const char *outfile __unused)
+static int perl_generate_script_unsupported(struct pevent *pevent
+                                           __maybe_unused,
+                                           const char *outfile __maybe_unused)
 {
        print_perl_unsupported_msg();
 
 
                                         need_unwind_info, arg);
 }
 
-static int access_fpreg(unw_addr_space_t __used as, unw_regnum_t __used num,
-                       unw_fpreg_t __used *val, int __used __write,
-                       void __used *arg)
+static int access_fpreg(unw_addr_space_t __maybe_unused as,
+                       unw_regnum_t __maybe_unused num,
+                       unw_fpreg_t __maybe_unused *val,
+                       int __maybe_unused __write,
+                       void __maybe_unused *arg)
 {
        pr_err("unwind: access_fpreg unsupported\n");
        return -UNW_EINVAL;
 }
 
-static int get_dyn_info_list_addr(unw_addr_space_t __used as,
-                                 unw_word_t __used *dil_addr,
-                                 void __used *arg)
+static int get_dyn_info_list_addr(unw_addr_space_t __maybe_unused as,
+                                 unw_word_t __maybe_unused *dil_addr,
+                                 void __maybe_unused *arg)
 {
        return -UNW_ENOINFO;
 }
 
-static int resume(unw_addr_space_t __used as, unw_cursor_t __used *cu,
-                 void __used *arg)
+static int resume(unw_addr_space_t __maybe_unused as,
+                 unw_cursor_t __maybe_unused *cu,
+                 void __maybe_unused *arg)
 {
        pr_err("unwind: resume unsupported\n");
        return -UNW_EINVAL;
 }
 
 static int
-get_proc_name(unw_addr_space_t __used as, unw_word_t __used addr,
-               char __used *bufp, size_t __used buf_len,
-               unw_word_t __used *offp, void __used *arg)
+get_proc_name(unw_addr_space_t __maybe_unused as,
+             unw_word_t __maybe_unused addr,
+               char __maybe_unused *bufp, size_t __maybe_unused buf_len,
+               unw_word_t __maybe_unused *offp, void __maybe_unused *arg)
 {
        pr_err("unwind: get_proc_name unsupported\n");
        return -UNW_EINVAL;
        return 0;
 }
 
-static int access_mem(unw_addr_space_t __used as,
+static int access_mem(unw_addr_space_t __maybe_unused as,
                      unw_word_t addr, unw_word_t *valp,
                      int __write, void *arg)
 {
        return 0;
 }
 
-static int access_reg(unw_addr_space_t __used as,
+static int access_reg(unw_addr_space_t __maybe_unused as,
                      unw_regnum_t regnum, unw_word_t *valp,
                      int __write, void *arg)
 {
        return 0;
 }
 
-static void put_unwind_info(unw_addr_space_t __used as,
-                           unw_proc_info_t *pi __used,
-                           void *arg __used)
+static void put_unwind_info(unw_addr_space_t __maybe_unused as,
+                           unw_proc_info_t *pi __maybe_unused,
+                           void *arg __maybe_unused)
 {
        pr_debug("unwind: put_unwind_info called\n");
 }
 
 int unwind__arch_reg_id(int regnum);
 #else
 static inline int
-unwind__get_entries(unwind_entry_cb_t cb __used, void *arg __used,
-                   struct machine *machine __used,
-                   struct thread *thread __used,
-                   u64 sample_uregs __used,
-                   struct perf_sample *data __used)
+unwind__get_entries(unwind_entry_cb_t cb __maybe_unused,
+                   void *arg __maybe_unused,
+                   struct machine *machine __maybe_unused,
+                   struct thread *thread __maybe_unused,
+                   u64 sample_uregs __maybe_unused,
+                   struct perf_sample *data __maybe_unused)
 {
        return 0;
 }
 
  * There's no pack memory to release - but stay close to the Git
  * version so wrap this away:
  */
-static inline void release_pack_memory(size_t size __used, int flag __used)
+static inline void release_pack_memory(size_t size __maybe_unused,
+                                      int flag __maybe_unused)
 {
 }