Re: [PATCH v10 07/10] perf record: Read from overwritable ring buffer

From: Nilay Vaish
Date: Thu Jun 23 2016 - 10:28:18 EST


On 23 June 2016 at 00:27, Wang Nan <wangnan0@xxxxxxxxxx> 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