* [PATCH 0/3] Remove usages of deprecated create_singlethread_workqueue
@ 2016-08-14 5:19 Bhaktipriya Shridhar
2016-08-14 5:23 ` [PATCH 1/3] Input: psmouse: Remove deprecated create_singletheread_workqueue Bhaktipriya Shridhar
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Bhaktipriya Shridhar @ 2016-08-14 5:19 UTC (permalink / raw)
To: Dmitry Torokhov, Hans de Goede, Pali Rohár, Chris Diamand,
Stefan Assmann, Richard Pospesel, Lars-Peter Clausen,
Takashi Iwai
Cc: Tejun Heo, patches, linux-input, linux-kernel
This patch set removes the instances of deprecated
create_singlethread_workqueue (scheduled for removal) in drivers/input
by making the appropriate conversions.
Bhaktipriya Shridhar (3):
Input: psmouse: Remove deprecated create_singletheread_workqueue
Input: touchscreen: mc13783_ts: Remove deprecated
create_singletheread_workqueue
Input: wm97xx: Remove deprecated create_singletheread_workqueue
drivers/input/mouse/psmouse-base.c | 2 +-
drivers/input/touchscreen/mc13783_ts.c | 19 ++++---------------
drivers/input/touchscreen/wm97xx-core.c | 2 +-
3 files changed, 6 insertions(+), 17 deletions(-)
--
2.1.4
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/3] Input: psmouse: Remove deprecated create_singletheread_workqueue
2016-08-14 5:19 [PATCH 0/3] Remove usages of deprecated create_singlethread_workqueue Bhaktipriya Shridhar
@ 2016-08-14 5:23 ` Bhaktipriya Shridhar
2016-08-15 22:53 ` Tejun Heo
2016-08-14 5:25 ` [PATCH 2/3] Input: touchscreen: mc13783_ts: " Bhaktipriya Shridhar
2016-08-14 5:26 ` [PATCH 3/3] Input: wm97xx: " Bhaktipriya Shridhar
2 siblings, 1 reply; 12+ messages in thread
From: Bhaktipriya Shridhar @ 2016-08-14 5:23 UTC (permalink / raw)
To: Dmitry Torokhov, Hans de Goede, Pali Rohár, Chris Diamand,
Stefan Assmann, Richard Pospesel, Lars-Peter Clausen,
Takashi Iwai
Cc: Tejun Heo, patches, linux-input, linux-kernel
alloc_ordered_workqueue replaces the deprecated
create_singlethread_workqueue.
There are multiple work items on the work queue viz
&priv->dev3_register_work, &priv->recalib_wq, &psmouse->resync_work,
which require execution ordering. Hence, an ordered workqueue has been
used.
The workqueue is not being used on a memory reclaim path.
Hence, WQ_MEM_RECLAIM has not been set.
Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
---
drivers/input/mouse/psmouse-base.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
index 5784e20..fb4b185 100644
--- a/drivers/input/mouse/psmouse-base.c
+++ b/drivers/input/mouse/psmouse-base.c
@@ -1916,7 +1916,7 @@ static int __init psmouse_init(void)
synaptics_module_init();
hgpk_module_init();
- kpsmoused_wq = create_singlethread_workqueue("kpsmoused");
+ kpsmoused_wq = alloc_ordered_workqueue("kpsmoused", 0);
if (!kpsmoused_wq) {
pr_err("failed to create kpsmoused workqueue\n");
return -ENOMEM;
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/3] Input: touchscreen: mc13783_ts: Remove deprecated create_singletheread_workqueue
2016-08-14 5:19 [PATCH 0/3] Remove usages of deprecated create_singlethread_workqueue Bhaktipriya Shridhar
2016-08-14 5:23 ` [PATCH 1/3] Input: psmouse: Remove deprecated create_singletheread_workqueue Bhaktipriya Shridhar
@ 2016-08-14 5:25 ` Bhaktipriya Shridhar
2016-08-15 22:53 ` Tejun Heo
2016-08-23 20:53 ` Dmitry Torokhov
2016-08-14 5:26 ` [PATCH 3/3] Input: wm97xx: " Bhaktipriya Shridhar
2 siblings, 2 replies; 12+ messages in thread
From: Bhaktipriya Shridhar @ 2016-08-14 5:25 UTC (permalink / raw)
To: Dmitry Torokhov, Hans de Goede, Pali Rohár, Chris Diamand,
Stefan Assmann, Richard Pospesel, Lars-Peter Clausen,
Takashi Iwai
Cc: Tejun Heo, patches, linux-input, linux-kernel
The workqueue "workqueue" has a single workitem(&priv->work) and hence
doesn't require ordering. Also, it is not being used on a memory reclaim
path. Hence, the singlethreaded workqueue has been replaced with the use
of system_wq.
System workqueues have been able to handle high level of concurrency
for a long time now and hence it's not required to have a singlethreaded
workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
created with create_singlethread_workqueue(), system_wq allows multiple
work items to overlap executions even on the same CPU; however, a
per-cpu workqueue doesn't have any CPU locality or global ordering
guarantee unless the target CPU is explicitly specified and thus the
increase of local concurrency shouldn't make any difference.
Workitem is sync cancelled in mc13783_ts_remove() to ensure that there
are no workitems pending when the driver is disconnected.
Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
---
drivers/input/touchscreen/mc13783_ts.c | 19 ++++---------------
1 file changed, 4 insertions(+), 15 deletions(-)
diff --git a/drivers/input/touchscreen/mc13783_ts.c b/drivers/input/touchscreen/mc13783_ts.c
index 913e25a..3b19035 100644
--- a/drivers/input/touchscreen/mc13783_ts.c
+++ b/drivers/input/touchscreen/mc13783_ts.c
@@ -37,7 +37,6 @@ struct mc13783_ts_priv {
struct input_dev *idev;
struct mc13xxx *mc13xxx;
struct delayed_work work;
- struct workqueue_struct *workq;
unsigned int sample[4];
struct mc13xxx_ts_platform_data *touch;
};
@@ -54,7 +53,7 @@ static irqreturn_t mc13783_ts_handler(int irq, void *data)
* be rescheduled for immediate execution here. However the rearm
* delay is HZ / 50 which is acceptable.
*/
- queue_delayed_work(priv->workq, &priv->work, 0);
+ schedule_delayed_work(&priv->work, 0);
return IRQ_HANDLED;
}
@@ -106,7 +105,7 @@ static void mc13783_ts_report_sample(struct mc13783_ts_priv *priv)
dev_dbg(&idev->dev, "report (%d, %d, %d)\n",
x1, y1, 0x1000 - cr0);
- queue_delayed_work(priv->workq, &priv->work, HZ / 50);
+ schedule_delayed_work(&priv->work, HZ / 50);
} else
dev_dbg(&idev->dev, "report release\n");
@@ -189,14 +188,6 @@ static int __init mc13783_ts_probe(struct platform_device *pdev)
goto err_free_mem;
}
- /*
- * We need separate workqueue because mc13783_adc_do_conversion
- * uses keventd and thus would deadlock.
- */
- priv->workq = create_singlethread_workqueue("mc13783_ts");
- if (!priv->workq)
- goto err_free_mem;
-
idev->name = MC13783_TS_NAME;
idev->dev.parent = &pdev->dev;
@@ -215,14 +206,12 @@ static int __init mc13783_ts_probe(struct platform_device *pdev)
if (ret) {
dev_err(&pdev->dev,
"register input device failed with %d\n", ret);
- goto err_destroy_wq;
+ goto err_free_mem;
}
platform_set_drvdata(pdev, priv);
return 0;
-err_destroy_wq:
- destroy_workqueue(priv->workq);
err_free_mem:
input_free_device(idev);
kfree(priv);
@@ -233,7 +222,7 @@ static int mc13783_ts_remove(struct platform_device *pdev)
{
struct mc13783_ts_priv *priv = platform_get_drvdata(pdev);
- destroy_workqueue(priv->workq);
+ cancel_delayed_work_sync(&priv->work);
input_unregister_device(priv->idev);
kfree(priv);
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/3] Input: wm97xx: Remove deprecated create_singletheread_workqueue
2016-08-14 5:19 [PATCH 0/3] Remove usages of deprecated create_singlethread_workqueue Bhaktipriya Shridhar
2016-08-14 5:23 ` [PATCH 1/3] Input: psmouse: Remove deprecated create_singletheread_workqueue Bhaktipriya Shridhar
2016-08-14 5:25 ` [PATCH 2/3] Input: touchscreen: mc13783_ts: " Bhaktipriya Shridhar
@ 2016-08-14 5:26 ` Bhaktipriya Shridhar
2016-08-15 8:53 ` Charles Keepax
` (2 more replies)
2 siblings, 3 replies; 12+ messages in thread
From: Bhaktipriya Shridhar @ 2016-08-14 5:26 UTC (permalink / raw)
To: Dmitry Torokhov, Hans de Goede, Pali Rohár, Chris Diamand,
Stefan Assmann, Richard Pospesel, Lars-Peter Clausen,
Takashi Iwai
Cc: Tejun Heo, patches, linux-input, linux-kernel
alloc_ordered_workqueue() with WQ_MEM_RECLAIM set, replaces
deprecated create_singlethread_workqueue(). This is the identity
conversion. The workqueue "ts_workq" has been identity converted.
It queues work items viz &wm->ts_reader and &wm->pen_event_work which map
to wm97xx_pen_irq_worker (handles a pen down interrupt) and
wm97xx_ts_reader (the touchscreen sample reader) respectively. Hence,
an ordered dedicated workqueue has been used.
WQ_MEM_RECLAIM has been set to ensure forward progress under memory
pressure.
Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
---
drivers/input/touchscreen/wm97xx-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/input/touchscreen/wm97xx-core.c b/drivers/input/touchscreen/wm97xx-core.c
index 1534e9b..c0af844 100644
--- a/drivers/input/touchscreen/wm97xx-core.c
+++ b/drivers/input/touchscreen/wm97xx-core.c
@@ -500,7 +500,7 @@ static int wm97xx_ts_input_open(struct input_dev *idev)
{
struct wm97xx *wm = input_get_drvdata(idev);
- wm->ts_workq = create_singlethread_workqueue("kwm97xx");
+ wm->ts_workq = alloc_ordered_workqueue("kwm97xx", WQ_MEM_RECLAIM);
if (wm->ts_workq == NULL) {
dev_err(wm->dev,
"Failed to create workqueue\n");
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] Input: wm97xx: Remove deprecated create_singletheread_workqueue
2016-08-14 5:26 ` [PATCH 3/3] Input: wm97xx: " Bhaktipriya Shridhar
@ 2016-08-15 8:53 ` Charles Keepax
2016-08-15 22:53 ` Tejun Heo
2016-08-23 21:01 ` Dmitry Torokhov
2 siblings, 0 replies; 12+ messages in thread
From: Charles Keepax @ 2016-08-15 8:53 UTC (permalink / raw)
To: Bhaktipriya Shridhar
Cc: Dmitry Torokhov, Hans de Goede, Pali Rohár, Chris Diamand,
Stefan Assmann, Richard Pospesel, Lars-Peter Clausen,
Takashi Iwai, Tejun Heo, patches, linux-input, linux-kernel
On Sun, Aug 14, 2016 at 10:56:38AM +0530, Bhaktipriya Shridhar wrote:
> alloc_ordered_workqueue() with WQ_MEM_RECLAIM set, replaces
> deprecated create_singlethread_workqueue(). This is the identity
> conversion. The workqueue "ts_workq" has been identity converted.
>
> It queues work items viz &wm->ts_reader and &wm->pen_event_work which map
> to wm97xx_pen_irq_worker (handles a pen down interrupt) and
> wm97xx_ts_reader (the touchscreen sample reader) respectively. Hence,
> an ordered dedicated workqueue has been used.
>
> WQ_MEM_RECLAIM has been set to ensure forward progress under memory
> pressure.
>
> Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
> ---
Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Thanks,
Charles
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] Input: wm97xx: Remove deprecated create_singletheread_workqueue
2016-08-14 5:26 ` [PATCH 3/3] Input: wm97xx: " Bhaktipriya Shridhar
2016-08-15 8:53 ` Charles Keepax
@ 2016-08-15 22:53 ` Tejun Heo
2016-08-23 21:01 ` Dmitry Torokhov
2 siblings, 0 replies; 12+ messages in thread
From: Tejun Heo @ 2016-08-15 22:53 UTC (permalink / raw)
To: Bhaktipriya Shridhar
Cc: Dmitry Torokhov, Hans de Goede, Pali Rohár, Chris Diamand,
Stefan Assmann, Richard Pospesel, Lars-Peter Clausen,
Takashi Iwai, patches, linux-input, linux-kernel
On Sun, Aug 14, 2016 at 10:56:38AM +0530, Bhaktipriya Shridhar wrote:
> alloc_ordered_workqueue() with WQ_MEM_RECLAIM set, replaces
> deprecated create_singlethread_workqueue(). This is the identity
> conversion. The workqueue "ts_workq" has been identity converted.
>
> It queues work items viz &wm->ts_reader and &wm->pen_event_work which map
> to wm97xx_pen_irq_worker (handles a pen down interrupt) and
> wm97xx_ts_reader (the touchscreen sample reader) respectively. Hence,
> an ordered dedicated workqueue has been used.
>
> WQ_MEM_RECLAIM has been set to ensure forward progress under memory
> pressure.
I'm not sure WQ_MEM_RECLAIM makes sense on an input driver.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/3] Input: psmouse: Remove deprecated create_singletheread_workqueue
2016-08-14 5:23 ` [PATCH 1/3] Input: psmouse: Remove deprecated create_singletheread_workqueue Bhaktipriya Shridhar
@ 2016-08-15 22:53 ` Tejun Heo
2016-08-23 20:51 ` Dmitry Torokhov
0 siblings, 1 reply; 12+ messages in thread
From: Tejun Heo @ 2016-08-15 22:53 UTC (permalink / raw)
To: Bhaktipriya Shridhar
Cc: Dmitry Torokhov, Hans de Goede, Pali Rohár, Chris Diamand,
Stefan Assmann, Richard Pospesel, Lars-Peter Clausen,
Takashi Iwai, patches, linux-input, linux-kernel
On Sun, Aug 14, 2016 at 10:53:07AM +0530, Bhaktipriya Shridhar wrote:
> alloc_ordered_workqueue replaces the deprecated
> create_singlethread_workqueue.
>
> There are multiple work items on the work queue viz
> &priv->dev3_register_work, &priv->recalib_wq, &psmouse->resync_work,
> which require execution ordering. Hence, an ordered workqueue has been
> used.
>
> The workqueue is not being used on a memory reclaim path.
> Hence, WQ_MEM_RECLAIM has not been set.
>
> Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
Acked-by: Tejun Heo <tj@kernel.org>
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] Input: touchscreen: mc13783_ts: Remove deprecated create_singletheread_workqueue
2016-08-14 5:25 ` [PATCH 2/3] Input: touchscreen: mc13783_ts: " Bhaktipriya Shridhar
@ 2016-08-15 22:53 ` Tejun Heo
2016-08-23 20:53 ` Dmitry Torokhov
1 sibling, 0 replies; 12+ messages in thread
From: Tejun Heo @ 2016-08-15 22:53 UTC (permalink / raw)
To: Bhaktipriya Shridhar
Cc: Dmitry Torokhov, Hans de Goede, Pali Rohár, Chris Diamand,
Stefan Assmann, Richard Pospesel, Lars-Peter Clausen,
Takashi Iwai, patches, linux-input, linux-kernel
On Sun, Aug 14, 2016 at 10:55:30AM +0530, Bhaktipriya Shridhar wrote:
> The workqueue "workqueue" has a single workitem(&priv->work) and hence
> doesn't require ordering. Also, it is not being used on a memory reclaim
> path. Hence, the singlethreaded workqueue has been replaced with the use
> of system_wq.
>
> System workqueues have been able to handle high level of concurrency
> for a long time now and hence it's not required to have a singlethreaded
> workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
> created with create_singlethread_workqueue(), system_wq allows multiple
> work items to overlap executions even on the same CPU; however, a
> per-cpu workqueue doesn't have any CPU locality or global ordering
> guarantee unless the target CPU is explicitly specified and thus the
> increase of local concurrency shouldn't make any difference.
>
> Workitem is sync cancelled in mc13783_ts_remove() to ensure that there
> are no workitems pending when the driver is disconnected.
>
> Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
Acked-by: Tejun Heo <tj@kernel.org>
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/3] Input: psmouse: Remove deprecated create_singletheread_workqueue
2016-08-15 22:53 ` Tejun Heo
@ 2016-08-23 20:51 ` Dmitry Torokhov
0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Torokhov @ 2016-08-23 20:51 UTC (permalink / raw)
To: Tejun Heo
Cc: Bhaktipriya Shridhar, Hans de Goede, Pali Rohár,
Chris Diamand, Stefan Assmann, Richard Pospesel,
Lars-Peter Clausen, Takashi Iwai, patches, linux-input,
linux-kernel
On Mon, Aug 15, 2016 at 06:53:45PM -0400, Tejun Heo wrote:
> On Sun, Aug 14, 2016 at 10:53:07AM +0530, Bhaktipriya Shridhar wrote:
> > alloc_ordered_workqueue replaces the deprecated
> > create_singlethread_workqueue.
> >
> > There are multiple work items on the work queue viz
> > &priv->dev3_register_work, &priv->recalib_wq, &psmouse->resync_work,
> > which require execution ordering. Hence, an ordered workqueue has been
> > used.
> >
> > The workqueue is not being used on a memory reclaim path.
> > Hence, WQ_MEM_RECLAIM has not been set.
> >
> > Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
>
> Acked-by: Tejun Heo <tj@kernel.org>
Applied, thank you.
--
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] Input: touchscreen: mc13783_ts: Remove deprecated create_singletheread_workqueue
2016-08-14 5:25 ` [PATCH 2/3] Input: touchscreen: mc13783_ts: " Bhaktipriya Shridhar
2016-08-15 22:53 ` Tejun Heo
@ 2016-08-23 20:53 ` Dmitry Torokhov
1 sibling, 0 replies; 12+ messages in thread
From: Dmitry Torokhov @ 2016-08-23 20:53 UTC (permalink / raw)
To: Bhaktipriya Shridhar
Cc: Hans de Goede, Pali Rohár, Chris Diamand, Stefan Assmann,
Richard Pospesel, Lars-Peter Clausen, Takashi Iwai, Tejun Heo,
patches, linux-input, linux-kernel
On Sun, Aug 14, 2016 at 10:55:30AM +0530, Bhaktipriya Shridhar wrote:
> The workqueue "workqueue" has a single workitem(&priv->work) and hence
> doesn't require ordering. Also, it is not being used on a memory reclaim
> path. Hence, the singlethreaded workqueue has been replaced with the use
> of system_wq.
>
> System workqueues have been able to handle high level of concurrency
> for a long time now and hence it's not required to have a singlethreaded
> workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
> created with create_singlethread_workqueue(), system_wq allows multiple
> work items to overlap executions even on the same CPU; however, a
> per-cpu workqueue doesn't have any CPU locality or global ordering
> guarantee unless the target CPU is explicitly specified and thus the
> increase of local concurrency shouldn't make any difference.
>
> Workitem is sync cancelled in mc13783_ts_remove() to ensure that there
> are no workitems pending when the driver is disconnected.
>
> Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
Applied, thank you. But:
> @@ -233,7 +222,7 @@ static int mc13783_ts_remove(struct platform_device *pdev)
> {
> struct mc13783_ts_priv *priv = platform_get_drvdata(pdev);
>
> - destroy_workqueue(priv->workq);
> + cancel_delayed_work_sync(&priv->work);
This is not needed, we cancel work in mc13783_ts_close(). I dropped this
bit.
> input_unregister_device(priv->idev);
> kfree(priv);
>
> --
> 2.1.4
>
--
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] Input: wm97xx: Remove deprecated create_singletheread_workqueue
2016-08-14 5:26 ` [PATCH 3/3] Input: wm97xx: " Bhaktipriya Shridhar
2016-08-15 8:53 ` Charles Keepax
2016-08-15 22:53 ` Tejun Heo
@ 2016-08-23 21:01 ` Dmitry Torokhov
2016-08-23 21:02 ` Dmitry Torokhov
2 siblings, 1 reply; 12+ messages in thread
From: Dmitry Torokhov @ 2016-08-23 21:01 UTC (permalink / raw)
To: Bhaktipriya Shridhar
Cc: Hans de Goede, Pali Rohár, Chris Diamand, Stefan Assmann,
Richard Pospesel, Lars-Peter Clausen, Takashi Iwai, Tejun Heo,
patches, linux-input, linux-kernel
On Sun, Aug 14, 2016 at 10:56:38AM +0530, Bhaktipriya Shridhar wrote:
> alloc_ordered_workqueue() with WQ_MEM_RECLAIM set, replaces
> deprecated create_singlethread_workqueue(). This is the identity
> conversion. The workqueue "ts_workq" has been identity converted.
>
> It queues work items viz &wm->ts_reader and &wm->pen_event_work which map
> to wm97xx_pen_irq_worker (handles a pen down interrupt) and
> wm97xx_ts_reader (the touchscreen sample reader) respectively. Hence,
> an ordered dedicated workqueue has been used.
>
> WQ_MEM_RECLAIM has been set to ensure forward progress under memory
> pressure.
>
> Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
Applied, thank you.
> ---
> drivers/input/touchscreen/wm97xx-core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/input/touchscreen/wm97xx-core.c b/drivers/input/touchscreen/wm97xx-core.c
> index 1534e9b..c0af844 100644
> --- a/drivers/input/touchscreen/wm97xx-core.c
> +++ b/drivers/input/touchscreen/wm97xx-core.c
> @@ -500,7 +500,7 @@ static int wm97xx_ts_input_open(struct input_dev *idev)
> {
> struct wm97xx *wm = input_get_drvdata(idev);
>
> - wm->ts_workq = create_singlethread_workqueue("kwm97xx");
> + wm->ts_workq = alloc_ordered_workqueue("kwm97xx", WQ_MEM_RECLAIM);
> if (wm->ts_workq == NULL) {
> dev_err(wm->dev,
> "Failed to create workqueue\n");
> --
> 2.1.4
>
--
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] Input: wm97xx: Remove deprecated create_singletheread_workqueue
2016-08-23 21:01 ` Dmitry Torokhov
@ 2016-08-23 21:02 ` Dmitry Torokhov
0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Torokhov @ 2016-08-23 21:02 UTC (permalink / raw)
To: Bhaktipriya Shridhar
Cc: Hans de Goede, Pali Rohár, Chris Diamand, Stefan Assmann,
Richard Pospesel, Lars-Peter Clausen, Takashi Iwai, Tejun Heo,
patches, linux-input, linux-kernel
On Tue, Aug 23, 2016 at 02:01:33PM -0700, Dmitry Torokhov wrote:
> On Sun, Aug 14, 2016 at 10:56:38AM +0530, Bhaktipriya Shridhar wrote:
> > alloc_ordered_workqueue() with WQ_MEM_RECLAIM set, replaces
> > deprecated create_singlethread_workqueue(). This is the identity
> > conversion. The workqueue "ts_workq" has been identity converted.
> >
> > It queues work items viz &wm->ts_reader and &wm->pen_event_work which map
> > to wm97xx_pen_irq_worker (handles a pen down interrupt) and
> > wm97xx_ts_reader (the touchscreen sample reader) respectively. Hence,
> > an ordered dedicated workqueue has been used.
> >
> > WQ_MEM_RECLAIM has been set to ensure forward progress under memory
> > pressure.
> >
> > Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
>
> Applied, thank you.
(Sans WQ_MEM_RECLAIM).
>
> > ---
> > drivers/input/touchscreen/wm97xx-core.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/input/touchscreen/wm97xx-core.c b/drivers/input/touchscreen/wm97xx-core.c
> > index 1534e9b..c0af844 100644
> > --- a/drivers/input/touchscreen/wm97xx-core.c
> > +++ b/drivers/input/touchscreen/wm97xx-core.c
> > @@ -500,7 +500,7 @@ static int wm97xx_ts_input_open(struct input_dev *idev)
> > {
> > struct wm97xx *wm = input_get_drvdata(idev);
> >
> > - wm->ts_workq = create_singlethread_workqueue("kwm97xx");
> > + wm->ts_workq = alloc_ordered_workqueue("kwm97xx", WQ_MEM_RECLAIM);
> > if (wm->ts_workq == NULL) {
> > dev_err(wm->dev,
> > "Failed to create workqueue\n");
> > --
> > 2.1.4
> >
>
> --
> Dmitry
--
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2016-08-23 21:42 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-14 5:19 [PATCH 0/3] Remove usages of deprecated create_singlethread_workqueue Bhaktipriya Shridhar
2016-08-14 5:23 ` [PATCH 1/3] Input: psmouse: Remove deprecated create_singletheread_workqueue Bhaktipriya Shridhar
2016-08-15 22:53 ` Tejun Heo
2016-08-23 20:51 ` Dmitry Torokhov
2016-08-14 5:25 ` [PATCH 2/3] Input: touchscreen: mc13783_ts: " Bhaktipriya Shridhar
2016-08-15 22:53 ` Tejun Heo
2016-08-23 20:53 ` Dmitry Torokhov
2016-08-14 5:26 ` [PATCH 3/3] Input: wm97xx: " Bhaktipriya Shridhar
2016-08-15 8:53 ` Charles Keepax
2016-08-15 22:53 ` Tejun Heo
2016-08-23 21:01 ` Dmitry Torokhov
2016-08-23 21:02 ` Dmitry Torokhov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.