Re: [RFC PATCH 10/14] ring_buffer: Fix more races when terminating the producer in the benchmark
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2015-08-03 18:33:27
Also in:
linux-api, lkml
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2015-08-03 18:33:27
Also in:
linux-api, lkml
On Tue, 28 Jul 2015 16:39:27 +0200 Petr Mladek [off-list ref] 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); }
-- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>