Hello,
On Thu, Mar 17, 2016 at 01:43:22PM +0100, Johannes Berg wrote:
quoted
On Thu, 2016-03-17 at 20:37 +0800, Eva Rachel Retuya wrote:
quoted
Use alloc_workqueue() to allocate the workqueue instead of
create_singlethread_workqueue() since the latter is deprecated and
is scheduled for removal.
Scheduled where?
They've been deprecated for years now. I should note that in the header.
quoted
quoted
static void iwl_setup_deferred_work(struct iwl_priv *priv)
{
- priv->workqueue = create_singlethread_workqueue(DRV_NAME);
+ priv->workqueue = alloc_workqueue(DRV_NAME, WQ_HIGHPRI |
WQ_UNBOUND |
+ WQ_MEM_RECLAIM, 1);
Seems like you should use alloc_ordered_workqueue() though? That also
gets you UNBOUND immediately, and the "1".
Right, this one should have been alloc_ordered_workqueue().
quoted
I'm not really sure HIGHPRI is needed either.
So, no WQ_MEM_RECLAIM either then, I suppose? What are the latency
requirements here - what happens if a thermal management work gets
delayed?
This worker is not supposed to free memory, so no WQ_MEM_RECLAIM needed. The latency is not critical.