On 23 June 2016 at 00:27, Wang Nan <wangn...@huawei.com> wrote: > @@ -542,6 +568,79 @@ static struct perf_event_header finished_round_event = { > .type = PERF_RECORD_FINISHED_ROUND, > }; > > +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;
Wang, thanks for making the changes I suggested. The patch overall looks fine to me. Just as a matter of style, I probably would not write case labels that do not have any statements associated with them. I'll let default take care of those labels. -- Nilay