Re: [PATCH] net: fjes: fjes_main: Remove create_workqueue
From: Bhaktipriya Shridhar
Date: Sat Jun 04 2016 - 10:02:28 EST
Thank you for your feedback.
Will send another patch with changed description.
On Fri, Jun 3, 2016 at 5:25 AM, Izumi, Taku <izumi.taku@xxxxxxxxxxxxxx> wrote:
> Dear Bhaktipriya,
> Thanks. Looks good to me.
> Taku Izumi
>> -----Original Message-----
>> From: Bhaktipriya Shridhar [mailto:bhaktipriya96@xxxxxxxxx]
>> Sent: Thursday, June 02, 2016 6:31 PM
>> To: David S. Miller; Izumi, Taku/æ æ; Florian Westphal; Bhaktipriya Shridhar
>> Cc: Tejun Heo; netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
>> Subject: [PATCH] net: fjes: fjes_main: Remove create_workqueue
>> alloc_workqueue replaces deprecated create_workqueue().
>> The workqueue adapter->txrx_wq has workitem
>> &adapter->raise_intr_rxdata_task per adapter. Extended Socket Network
>> Device is shared memory based, so someone's transmission denotes other's
>> reception. raise_intr_rxdata_task raises interruption of receivers from
>> the sender in order to notify receivers.
>> The workqueue adapter->control_wq has workitem
>> &adapter->interrupt_watch_task per adapter. interrupt_watch_task is used
>> to prevent delay of interrupts.
>> Dedicated workqueues have been used in both cases since the workitems
>> on the workqueues are involved in normal device operation and require
>> forward progress under memory pressure.
>> max_active has been set to 0 since there is no need for throttling
>> the number of active work items.
>> Since network devices may be used for memory reclaim,
>> WQ_MEM_RECLAIM has been set to guarantee forward progress.
>> Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@xxxxxxxxx>
>> drivers/net/fjes/fjes_main.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>> diff --git a/drivers/net/fjes/fjes_main.c b/drivers/net/fjes/fjes_main.c
>> index 86c331b..9006877 100644
>> --- a/drivers/net/fjes/fjes_main.c
>> +++ b/drivers/net/fjes/fjes_main.c
>> @@ -1187,8 +1187,9 @@ static int fjes_probe(struct platform_device *plat_dev)
>> adapter->force_reset = false;
>> adapter->open_guard = false;
>> - adapter->txrx_wq = create_workqueue(DRV_NAME "/txrx");
>> - adapter->control_wq = create_workqueue(DRV_NAME "/control");
>> + adapter->txrx_wq = alloc_workqueue(DRV_NAME "/txrx", WQ_MEM_RECLAIM, 0);
>> + adapter->control_wq = alloc_workqueue(DRV_NAME "/control",
>> + WQ_MEM_RECLAIM, 0);
>> INIT_WORK(&adapter->tx_stall_task, fjes_tx_stall_task);