linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mtip32xx: Remove deprecated create_workqueue
@ 2016-06-18  8:22 Bhaktipriya Shridhar
  2016-06-20 15:01 ` Tejun Heo
  0 siblings, 1 reply; 3+ messages in thread
From: Bhaktipriya Shridhar @ 2016-06-18  8:22 UTC (permalink / raw)
  To: David Airlie; +Cc: Tejun Heo, dri-devel, linux-kernel

alloc_workqueue replaces deprecated create_workqueue().

A dedicated workqueue has been used since the workqueue isr_workq is
involved in irq handling path of block driver and requires forward
progress under memory pressure. Hence, WQ_MEM_RECLAIM has been set.
Since there are only a fixed number of work items, explicit concurrency
limit is unnecessary here.

flush_workqueue is unnecessary since destroy_workqueue() itself calls
drain_workqueue() which flushes repeatedly till the workqueue
becomes empty. Hence the calls to flush_workqueue()  before
destroy_workqueue() have been dropped.

Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
---
 drivers/block/mtip32xx/mtip32xx.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c
index 6053e46..4bfb75b 100644
--- a/drivers/block/mtip32xx/mtip32xx.c
+++ b/drivers/block/mtip32xx/mtip32xx.c
@@ -4437,7 +4437,7 @@ static int mtip_pci_probe(struct pci_dev *pdev,
 	memset(dd->workq_name, 0, 32);
 	snprintf(dd->workq_name, 31, "mtipq%d", dd->instance);

-	dd->isr_workq = create_workqueue(dd->workq_name);
+	dd->isr_workq = alloc_workqueue(dd->workq_name, WQ_MEM_RECLAIM, 0);
 	if (!dd->isr_workq) {
 		dev_warn(&pdev->dev, "Can't create wq %d\n", dd->instance);
 		rv = -ENOMEM;
@@ -4538,7 +4538,6 @@ block_initialize_err:

 msi_initialize_err:
 	if (dd->isr_workq) {
-		flush_workqueue(dd->isr_workq);
 		destroy_workqueue(dd->isr_workq);
 		drop_cpu(dd->work[0].cpu_binding);
 		drop_cpu(dd->work[1].cpu_binding);
@@ -4599,7 +4598,6 @@ static void mtip_pci_remove(struct pci_dev *pdev)
 	mtip_block_remove(dd);

 	if (dd->isr_workq) {
-		flush_workqueue(dd->isr_workq);
 		destroy_workqueue(dd->isr_workq);
 		drop_cpu(dd->work[0].cpu_binding);
 		drop_cpu(dd->work[1].cpu_binding);
--
2.1.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] mtip32xx: Remove deprecated create_workqueue
  2016-06-18  8:22 [PATCH] mtip32xx: Remove deprecated create_workqueue Bhaktipriya Shridhar
@ 2016-06-20 15:01 ` Tejun Heo
  2016-06-20 15:05   ` Tejun Heo
  0 siblings, 1 reply; 3+ messages in thread
From: Tejun Heo @ 2016-06-20 15:01 UTC (permalink / raw)
  To: Bhaktipriya Shridhar; +Cc: David Airlie, dri-devel, linux-kernel

On Sat, Jun 18, 2016 at 01:52:05PM +0530, Bhaktipriya Shridhar wrote:
> alloc_workqueue replaces deprecated create_workqueue().
> 
> A dedicated workqueue has been used since the workqueue isr_workq is
> involved in irq handling path of block driver and requires forward
> progress under memory pressure. Hence, WQ_MEM_RECLAIM has been set.
> Since there are only a fixed number of work items, explicit concurrency
> limit is unnecessary here.
> 
> flush_workqueue is unnecessary since destroy_workqueue() itself calls
> drain_workqueue() which flushes repeatedly till the workqueue
> becomes empty. Hence the calls to flush_workqueue()  before
> destroy_workqueue() have been dropped.

Looks good.

Thanks!

-- 
tejun

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] mtip32xx: Remove deprecated create_workqueue
  2016-06-20 15:01 ` Tejun Heo
@ 2016-06-20 15:05   ` Tejun Heo
  0 siblings, 0 replies; 3+ messages in thread
From: Tejun Heo @ 2016-06-20 15:05 UTC (permalink / raw)
  To: Bhaktipriya Shridhar; +Cc: David Airlie, dri-devel, linux-kernel

On Mon, Jun 20, 2016 at 11:01:44AM -0400, Tejun Heo wrote:
> On Sat, Jun 18, 2016 at 01:52:05PM +0530, Bhaktipriya Shridhar wrote:
> > alloc_workqueue replaces deprecated create_workqueue().
> > 
> > A dedicated workqueue has been used since the workqueue isr_workq is
> > involved in irq handling path of block driver and requires forward
> > progress under memory pressure. Hence, WQ_MEM_RECLAIM has been set.
> > Since there are only a fixed number of work items, explicit concurrency
> > limit is unnecessary here.
> > 
> > flush_workqueue is unnecessary since destroy_workqueue() itself calls
> > drain_workqueue() which flushes repeatedly till the workqueue
> > becomes empty. Hence the calls to flush_workqueue()  before
> > destroy_workqueue() have been dropped.
> 
> Looks good.

lol thought this was a private review exchange.  Sorry about that.

 Acked-by: Tejun Heo <tj@kernel.org>

Thanks.

-- 
tejun

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-06-20 15:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-18  8:22 [PATCH] mtip32xx: Remove deprecated create_workqueue Bhaktipriya Shridhar
2016-06-20 15:01 ` Tejun Heo
2016-06-20 15:05   ` Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).