Re: [PATCH] qlge: Replace create_singlethread_workqueue with alloc_ordered_workqueue
From: Amitoj Kaur Chawla Date: Sat, 9 Apr 2016 17:27:45 +0530 > Replace deprecated create_singlethread_workqueue with > alloc_ordered_workqueue. > > Work items include getting tx/rx frame sizes, resetting MPI processor, > setting asic recovery bit so ordering seems necessary as only one work > item should be in queue/executing at any given time, hence the use of > alloc_ordered_workqueue. > > WQ_MEM_RECLAIM flag has been set since ethernet devices seem to sit in > memory reclaim path, so to guarantee forward progress regardless of > memory pressure. > > Signed-off-by: Amitoj Kaur Chawla > Acked-by: Tejun Heo I'll apply this to net-next, thanks.
Re: [PATCH] qlge: Replace create_singlethread_workqueue with alloc_ordered_workqueue
Hello, Manish. On Thu, Apr 14, 2016 at 07:25:15AM +, Manish Chopra wrote: > Just want to confirm that __WQ_LEGACY flag is not necessary here as this is > removed > with this change ? Yeah, that should be fine. That only affects locking dependency tracking which can fire spuriously due to workqueues created with the old interface having WQ_MEM_RECLAIM unconditionally. In this case, we actually want WQ_MEM_RECLAIM and thus we want the dependency tracking too. Thanks. -- tejun
RE: [PATCH] qlge: Replace create_singlethread_workqueue with alloc_ordered_workqueue
> -Original Message- > From: dept_hsg_linux_nic_dev-boun...@qlclistserver.qlogic.com > [mailto:dept_hsg_linux_nic_dev-boun...@qlclistserver.qlogic.com] On Behalf > Of Tejun Heo > Sent: Wednesday, April 13, 2016 11:14 PM > To: Amitoj Kaur Chawla > Cc: Sudarsana Kalluru ; netdev > ; linux-kernel ; Dept- > Eng Linux Driver ; Harish Patil > ; Dept-GE Linux NIC Dev gelinuxnic...@qlogic.com> > Subject: Re: [PATCH] qlge: Replace create_singlethread_workqueue with > alloc_ordered_workqueue > > On Sat, Apr 09, 2016 at 05:27:45PM +0530, Amitoj Kaur Chawla wrote: > > Replace deprecated create_singlethread_workqueue with > > alloc_ordered_workqueue. > > > > Work items include getting tx/rx frame sizes, resetting MPI processor, > > setting asic recovery bit so ordering seems necessary as only one work > > item should be in queue/executing at any given time, hence the use of > > alloc_ordered_workqueue. > > > > WQ_MEM_RECLAIM flag has been set since ethernet devices seem to sit in > > memory reclaim path, so to guarantee forward progress regardless of > > memory pressure. > > > > Signed-off-by: Amitoj Kaur Chawla > > Acked-by: Tejun Heo > > Ping? > Hi, Just want to confirm that __WQ_LEGACY flag is not necessary here as this is removed with this change ? Thanks
Re: [PATCH] qlge: Replace create_singlethread_workqueue with alloc_ordered_workqueue
On Sat, Apr 09, 2016 at 05:27:45PM +0530, Amitoj Kaur Chawla wrote: > Replace deprecated create_singlethread_workqueue with > alloc_ordered_workqueue. > > Work items include getting tx/rx frame sizes, resetting MPI processor, > setting asic recovery bit so ordering seems necessary as only one work > item should be in queue/executing at any given time, hence the use of > alloc_ordered_workqueue. > > WQ_MEM_RECLAIM flag has been set since ethernet devices seem to sit in > memory reclaim path, so to guarantee forward progress regardless of > memory pressure. > > Signed-off-by: Amitoj Kaur Chawla > Acked-by: Tejun Heo Ping? -- tejun
[PATCH] qlge: Replace create_singlethread_workqueue with alloc_ordered_workqueue
Replace deprecated create_singlethread_workqueue with alloc_ordered_workqueue. Work items include getting tx/rx frame sizes, resetting MPI processor, setting asic recovery bit so ordering seems necessary as only one work item should be in queue/executing at any given time, hence the use of alloc_ordered_workqueue. WQ_MEM_RECLAIM flag has been set since ethernet devices seem to sit in memory reclaim path, so to guarantee forward progress regardless of memory pressure. Signed-off-by: Amitoj Kaur Chawla Acked-by: Tejun Heo --- Not sure if the assumption of requiring ordering of work items is correct. drivers/net/ethernet/qlogic/qlge/qlge_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c index b28e73e..83d7210 100644 --- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c +++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c @@ -4687,7 +4687,7 @@ static int ql_init_device(struct pci_dev *pdev, struct net_device *ndev, /* * Set up the operating parameters. */ - qdev->workqueue = create_singlethread_workqueue(ndev->name); + qdev->workqueue = alloc_ordered_workqueue(ndev->name, WQ_MEM_RECLAIM); INIT_DELAYED_WORK(&qdev->asic_reset_work, ql_asic_reset_work); INIT_DELAYED_WORK(&qdev->mpi_reset_work, ql_mpi_reset_work); INIT_DELAYED_WORK(&qdev->mpi_work, ql_mpi_work); -- 1.9.1