Messages in this thread | | | Date | Wed, 6 Jul 2016 13:38:57 +0200 | From | Jiri Olsa <> | Subject | Re: [PATCH v13 5/8] perf record: Read from overwritable ring buffer |
| |
On Mon, Jul 04, 2016 at 06:20:06AM +0000, Wang Nan wrote:
SNIP
> +static void > +record__toggle_overwrite_evsels(struct record *rec, > + enum overwrite_evt_state state) > +{ > + struct perf_evlist *evlist = rec->overwrite_evlist; > + enum overwrite_evt_state old_state = rec->overwrite_evt_state; > + enum action { > + NONE, > + PAUSE, > + RESUME, > + } action = NONE; > + > + switch (old_state) { > + case OVERWRITE_EVT_RUNNING: { > + switch (state) { > + case OVERWRITE_EVT_DATA_PENDING: > + action = PAUSE; > + break; > + case OVERWRITE_EVT_RUNNING: > + case OVERWRITE_EVT_EMPTY: > + default: > + goto state_err; > + } > + break; > + } > + case OVERWRITE_EVT_DATA_PENDING: { > + switch (state) { > + case OVERWRITE_EVT_EMPTY: > + break; > + case OVERWRITE_EVT_RUNNING: > + case OVERWRITE_EVT_DATA_PENDING: > + default: > + goto state_err; > + } > + break; > + } > + case OVERWRITE_EVT_EMPTY: { > + switch (state) { > + case OVERWRITE_EVT_RUNNING: > + action = RESUME; > + break; > + case OVERWRITE_EVT_EMPTY: > + case OVERWRITE_EVT_DATA_PENDING: > + default: > + goto state_err; > + } > + break; > + } > + default: > + WARN_ONCE(1, "Shouldn't get there\n"); > + } > + > + rec->overwrite_evt_state = state; > + > + if (!evlist) > + return;
I'd expect this check at the begining
jirka
| |