diff options
| -rw-r--r-- | tools/perf/Documentation/perf-list.txt | 1 | ||||
| -rw-r--r-- | tools/perf/builtin-record.c | 7 |
2 files changed, 6 insertions, 2 deletions
diff --git a/tools/perf/Documentation/perf-list.txt b/tools/perf/Documentation/perf-list.txt index 236b9b97dfdb..667c14e56031 100644 --- a/tools/perf/Documentation/perf-list.txt +++ b/tools/perf/Documentation/perf-list.txt | |||
| @@ -55,7 +55,6 @@ counted. The following modifiers exist: | |||
| 55 | S - read sample value (PERF_SAMPLE_READ) | 55 | S - read sample value (PERF_SAMPLE_READ) |
| 56 | D - pin the event to the PMU | 56 | D - pin the event to the PMU |
| 57 | W - group is weak and will fallback to non-group if not schedulable, | 57 | W - group is weak and will fallback to non-group if not schedulable, |
| 58 | only supported in 'perf stat' for now. | ||
| 59 | 58 | ||
| 60 | The 'p' modifier can be used for specifying how precise the instruction | 59 | The 'p' modifier can be used for specifying how precise the instruction |
| 61 | address should be. The 'p' modifier can be specified multiple times: | 60 | address should be. The 'p' modifier can be specified multiple times: |
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 10cf889c6d75..488779bc4c8d 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c | |||
| @@ -391,7 +391,12 @@ try_again: | |||
| 391 | ui__warning("%s\n", msg); | 391 | ui__warning("%s\n", msg); |
| 392 | goto try_again; | 392 | goto try_again; |
| 393 | } | 393 | } |
| 394 | 394 | if ((errno == EINVAL || errno == EBADF) && | |
| 395 | pos->leader != pos && | ||
| 396 | pos->weak_group) { | ||
| 397 | pos = perf_evlist__reset_weak_group(evlist, pos); | ||
| 398 | goto try_again; | ||
| 399 | } | ||
| 395 | rc = -errno; | 400 | rc = -errno; |
| 396 | perf_evsel__open_strerror(pos, &opts->target, | 401 | perf_evsel__open_strerror(pos, &opts->target, |
| 397 | errno, msg, sizeof(msg)); | 402 | errno, msg, sizeof(msg)); |
