Messages in this thread | | | Date | Mon, 3 Aug 2015 14:33:23 -0400 | From | Steven Rostedt <> | Subject | Re: [RFC PATCH 10/14] ring_buffer: Fix more races when terminating the producer in the benchmark |
| |
On Tue, 28 Jul 2015 16:39:27 +0200 Petr Mladek <pmladek@suse.com> wrote:
> @@ -384,7 +389,7 @@ static int ring_buffer_consumer_thread(void *arg) > > static int ring_buffer_producer_thread(void *arg) > { > - while (!kthread_should_stop() && !kill_test) { > + while (!break_test()) { > ring_buffer_reset(buffer); > > if (consumer) { > @@ -393,11 +398,15 @@ static int ring_buffer_producer_thread(void *arg) > } > > ring_buffer_producer(); > - if (kill_test) > + if (break_test()) > goto out_kill; > > trace_printk("Sleeping for 10 secs\n"); > set_current_state(TASK_INTERRUPTIBLE); > + if (break_test()) { > + __set_current_state(TASK_RUNNING);
Move the setting of the current state to after the out_kill label.
-- Steve
> + goto out_kill; > + } > schedule_timeout(HZ * SLEEP_TIME); > } >
| |