fusion: Remove deprecated create_singlethread_workqueue
Subsystems (2)
cover fusion: Remove deprecated create_singlethread_workqueue
This patch set removes deprecated create_singlethread_workqueue instances from drivers/message
Bhaktipriya Shridhar (2):
fusion/mptfc: Remove deprecated create_singlethread_workqueue
fusion: mptbase: Remove deprecated create_singlethread_workqueue
drivers/message/fusion/mptbase.c | 7 ++++--- drivers/message/fusion/mptfc.c | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-)
--
2.1.4
PATCH 1/2 fusion/mptfc: Remove deprecated create_singlethread_workqueue
The workqueue "fc_rescan_work_q" queues multiple work items viz &ioc->fc_rescan_work, &ioc->fc_lsc_work, &ioc->fc_setup_reset_work, which require strict execution ordering.
Hence, an ordered dedicated workqueue has been used.
WQ_MEM_RECLAIM has been set since the workqueue is belongs to a storage driver which is being used on a memory reclaim path and hence, requires forward progress under memory pressure.
--- drivers/message/fusion/mptfc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/message/fusion/mptfc.c +2 -1
@@ -1324,7 +1324,8 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id)snprintf (ioc->fc_rescan_work_q_name,sizeof (ioc->fc_rescan_work_q_name),"mptfc_wq_%d" , sh->host_no); ioc->fc_rescan_work_q = -create_singlethread_workqueue (ioc->fc_rescan_work_q_name); +alloc_ordered_workqueue (ioc->fc_rescan_work_q_name, +WQ_MEM_RECLAIM );if (!ioc->fc_rescan_work_q) goto out_mptfc_probe;
--
2.1.4
Re: [PATCH 1/2] fusion/mptfc: Remove deprecated create_singlethread_workqueue
Quoted 10 lines · Bhaktipriya Shridhar
The workqueue "
fc_rescan_work_q" queues multiple work items viz&ioc->fc_rescan_work,&ioc->fc_lsc_work,&ioc->fc_setup_reset_work, which require strict execution ordering.
Hence, an ordered dedicated workqueue has been used.
WQ_MEM_RECLAIMhas been set since the workqueue is belongs to a storage driver which is being used on a memory reclaim path and hence, requires forward progress under memory pressure.Signed-off-by Bhaktipriya Shridhar <[email protected]>
Thanks.
Signature · 1 line
tejun
PATCH 2/2 fusion: mptbase: Remove deprecated create_singlethread_workqueue
In reply to Bhaktipriya ShridharThe workqueues "ioc->reset_work_q" and "ioc->fw_event_q" queue a single work item &ioc->fault_reset_work and &fw_event->work, respectively and hence don't require ordering. Hence, they have been converted to use alloc_workqueue().
The WQ_MEM_RECLAIM flag has been set to ensure forward progress under memory pressure since the workqueue belongs to a storage driver which is being used on a memory reclaim path.
Since there are fixed number of work items, explicit concurrency limit is unnecessary here.
--- drivers/message/fusion/mptbase.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
drivers/message/fusion/mptbase.c +4 -3
@@ -1865,8 +1865,8 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)snprintf (ioc->reset_work_q_name,MPT_KOBJ_NAME_LEN ,"mpt_poll_%d" , ioc->id); - ioc->reset_work_q = -create_singlethread_workqueue (ioc->reset_work_q_name); + ioc->reset_work_q =alloc_workqueue (ioc->reset_work_q_name, +WQ_MEM_RECLAIM ,0 );if (!ioc->reset_work_q) {printk (MYIOC_s_ERR_FMT"Insufficient memory to add adapter!\n" , ioc->name);
@@ -1992,7 +1992,8 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)INIT_LIST_HEAD (&ioc->fw_event_list);spin_lock_init (&ioc->fw_event_lock);snprintf (ioc->fw_event_q_name,MPT_KOBJ_NAME_LEN ,"mpt/%d" , ioc->id); - ioc->fw_event_q =create_singlethread_workqueue (ioc->fw_event_q_name); + ioc->fw_event_q =alloc_workqueue (ioc->fw_event_q_name, +WQ_MEM_RECLAIM ,0 );if (!ioc->fw_event_q) {printk (MYIOC_s_ERR_FMT"Insufficient memory to add adapter!\n" , ioc->name);
--
2.1.4
Re: [PATCH 2/2] fusion: mptbase: Remove deprecated create_singlethread_workqueue
Quoted 5 lines · Bhaktipriya Shridhar
The workqueues "
ioc->reset_work_q" and "ioc->fw_event_q" queue a single work item&ioc->fault_reset_workand&fw_event->work, respectively and hence don't require ordering. Hence, they have been converted to usealloc_workqueue().
Quoted 8 lines
The
WQ_MEM_RECLAIMflag has been set to ensure forward progress under memory pressure since the workqueue belongs to a storage driver which is being used on a memory reclaim path.Since there are fixed number of work items, explicit concurrency limit is unnecessary here.
Signed-off-by Bhaktipriya Shridhar <[email protected]>
Thanks.
Signature · 1 line
tejun
Martin K. Petersen
AppliedQuoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Bhaktipriya" == Bhaktipriya Shridhar <[email protected]> writes:
Bhaktipriya> This patch set removes deprecated Bhaktipriya> create_singlethread_workqueue instances from Bhaktipriya> drivers/message
Applied to 4.9/scsi-queue.
Thanks!
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering