All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.