Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1425672 > unrolled thread
| Started by | Bhaktipriya Shridhar <bhaktipriya96@gmail.com> |
|---|---|
| First post | 2016-06-18 10:30 +0200 |
| Last post | 2016-06-20 17:10 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH] mtip32xx: Remove deprecated create_workqueue Bhaktipriya Shridhar <bhaktipriya96@gmail.com> - 2016-06-18 10:30 +0200
Re: [PATCH] mtip32xx: Remove deprecated create_workqueue Tejun Heo <tj@kernel.org> - 2016-06-20 17:10 +0200
Re: [PATCH] mtip32xx: Remove deprecated create_workqueue Tejun Heo <tj@kernel.org> - 2016-06-20 17:10 +0200
| From | Bhaktipriya Shridhar <bhaktipriya96@gmail.com> |
|---|---|
| Date | 2016-06-18 10:30 +0200 |
| Subject | [PATCH] mtip32xx: Remove deprecated create_workqueue |
| Message-ID | <rLjNE-1CT-13@gated-at.bofh.it> |
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
[toc] | [next] | [standalone]
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Date | 2016-06-20 17:10 +0200 |
| Message-ID | <rM8ZP-1ph-1@gated-at.bofh.it> |
| In reply to | #1425672 |
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
[toc] | [prev] | [next] | [standalone]
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Date | 2016-06-20 17:10 +0200 |
| Message-ID | <rM8ZQ-1ph-33@gated-at.bofh.it> |
| In reply to | #1426669 |
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
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web