On 7/9/2013 8:55 AM, Morten Rasmussen wrote:
+       mod_delayed_work_on(schedule_cpu(), system_wq, &dwork,
+                               msecs_to_jiffies(INTERVAL));

so thinking about this more, this really really should not be a work queue.

a work queue will cause a large number of context switches for no reason
(on Intel and AMD you can switch P state from interrupt context, and I'm pretty 
sure
that holds for many ARM as well)

and in addition, it causes some really nasty cases, especially around real time 
tasks.
Your workqueue will schedule a kernel thread, which will run
BEHIND real time tasks, and such real time task will then never be able to 
start running at a higher performance.

(and with the delta between lowest and highest performance sometimes being 10x 
or more,
the real time task will be running SLOW... quite possible longer than several 
milliseconds)


and all for no good reason; a normal timer running in irq context would be much 
better for this kind of thing!

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to