Re: [PATCH v2] perf evlist: Warn when 'sleep' workload is used without system-wide (-a) option
Ian Rogers <[email protected]>
| Newsgroups | org.kernel.vger.linux-perf-users,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAP-5=fWu7+8Qp8WkkZR+tkVocSYMEzsEdnJSOnOv4D20rxa99w@mail.gmail.com> |
On Wed, Aug 5, 2026 at 9:14 PM Ian Rogers <[email protected]> wrote: > > A common mistake when trying to record system-wide profiles for a given > duration is running commands like 'perf record sleep 1' or 'perf stat > sleep 1' without passing '-a' / '--all-cpus'. When '-a' is omitted, perf > defaults to per-process monitoring of the sleep process itself, which > does not collect system-wide activity and records very few events. > > Add a warning in evlist__prepare_workload() when the workload executable > is 'sleep' and system-wide mode is not enabled. > > Assisted-by: Antigravity:gemini-3.6-flash > Signed-off-by: Ian Rogers <[email protected]> Ping. Thanks, Ian > --- > tools/perf/util/evlist.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c > index eb7c0d7be064..b3dd097fbb2c 100644 > --- a/tools/perf/util/evlist.c > +++ b/tools/perf/util/evlist.c > @@ -11,6 +11,7 @@ > #include <inttypes.h> > #include <signal.h> > #include <stdlib.h> > +#include <string.h> > > #include <fcntl.h> > #include <linux/bitops.h> > @@ -1562,6 +1563,20 @@ int evlist__prepare_workload(struct evlist *evlist, struct target *target, const > int child_ready_pipe[2], go_pipe[2]; > char bf; > > + if (argv && argv[0] && target && target__none(target)) { > + const char *cmd = strrchr(argv[0], '/'); > + > + if (cmd) > + cmd++; > + else > + cmd = argv[0]; > + > + if (!strcmp(cmd, "sleep")) { > + ui__warning("workload '%s' specified without the system-wide (-a) option\n", > + cmd); > + } > + } > + > evlist__set_workload_cork_fd(evlist, -1); > > if (pipe(child_ready_pipe) < 0) { > -- > 2.55.0.629.g250fe7f194-goog >