Re: [PATCH] PM / QoS: Fix workqueue deadlock when using pm_qos_update_request_timeout()

2013-08-13 Thread Rafael J. Wysocki
On Tuesday, August 13, 2013 06:13:25 PM Tejun Heo wrote: > Hello, > > On Tue, Aug 13, 2013 at 02:12:40PM -0700, Stephen Boyd wrote: > > @@ -308,7 +319,7 @@ static void pm_qos_work_fn(struct work_struct *work) > > struct pm_qos_request, > >

Re: [PATCH] PM / QoS: Fix workqueue deadlock when using pm_qos_update_request_timeout()

2013-08-13 Thread Tejun Heo
Hello, On Tue, Aug 13, 2013 at 02:12:40PM -0700, Stephen Boyd wrote: > @@ -308,7 +319,7 @@ static void pm_qos_work_fn(struct work_struct *work) > struct pm_qos_request, > work); > > - pm_qos_updat

[PATCH] PM / QoS: Fix workqueue deadlock when using pm_qos_update_request_timeout()

2013-08-13 Thread Stephen Boyd
pm_qos_update_request_timeout() updates a qos and then schedules a delayed work item to bring the qos back down to the default after the timeout. When the work item runs, pm_qos_work_fn() will call pm_qos_update_request() and deadlock because it tries to cancel itself via cancel_delayed_work_sync()

Re: [PATCH] PM / QoS: Fix workqueue deadlock when using pm_qos_update_request_timeout()

2013-08-13 Thread Stephen Boyd
On 08/13, Rafael J. Wysocki wrote: > On Tuesday, August 13, 2013 01:01:46 PM Tejun Heo wrote: > > Hello, > > > > On Tue, Aug 13, 2013 at 09:46:26AM -0700, Stephen Boyd wrote: > > > >> + if (PM_QOS_DEFAULT_VALUE != req->node.prio) > > > >> + pm_qos_update_target( > > > >> +

Re: [PATCH] PM / QoS: Fix workqueue deadlock when using pm_qos_update_request_timeout()

2013-08-13 Thread Rafael J. Wysocki
On Tuesday, August 13, 2013 01:01:46 PM Tejun Heo wrote: > Hello, > > On Tue, Aug 13, 2013 at 09:46:26AM -0700, Stephen Boyd wrote: > > >> +if (PM_QOS_DEFAULT_VALUE != req->node.prio) > > >> +pm_qos_update_target( > > >> + > > >> pm_qos_array

Re: [PATCH] PM / QoS: Fix workqueue deadlock when using pm_qos_update_request_timeout()

2013-08-13 Thread Tejun Heo
Hello, On Tue, Aug 13, 2013 at 09:46:26AM -0700, Stephen Boyd wrote: > >> + if (PM_QOS_DEFAULT_VALUE != req->node.prio) > >> + pm_qos_update_target( > >> + pm_qos_array[req->pm_qos_class]->constraints, > >> + &req->node, PM_QOS_UPDATE_REQ

Re: [PATCH] PM / QoS: Fix workqueue deadlock when using pm_qos_update_request_timeout()

2013-08-13 Thread Stephen Boyd
On 08/13/13 09:43, Tejun Heo wrote: > Hello, Stephen. > > On Thu, Aug 08, 2013 at 01:13:57PM -0700, Stephen Boyd wrote: >> pm_qos_update_request_timeout() updates a qos and then schedules >> a delayed work item to bring the qos back down to the default >> after the timeout. When the work item runs,

Re: [PATCH] PM / QoS: Fix workqueue deadlock when using pm_qos_update_request_timeout()

2013-08-13 Thread Tejun Heo
Hello, Stephen. On Thu, Aug 08, 2013 at 01:13:57PM -0700, Stephen Boyd wrote: > pm_qos_update_request_timeout() updates a qos and then schedules > a delayed work item to bring the qos back down to the default > after the timeout. When the work item runs, pm_qos_work_fn() will > call pm_qos_update_

Re: [PATCH] PM / QoS: Fix workqueue deadlock when using pm_qos_update_request_timeout()

2013-08-13 Thread Stephen Boyd
On 08/08/13 13:13, Stephen Boyd wrote: > pm_qos_update_request_timeout() updates a qos and then schedules > a delayed work item to bring the qos back down to the default > after the timeout. When the work item runs, pm_qos_work_fn() will > call pm_qos_update_request() and deadlock because it tries

[PATCH] PM / QoS: Fix workqueue deadlock when using pm_qos_update_request_timeout()

2013-08-08 Thread Stephen Boyd
pm_qos_update_request_timeout() updates a qos and then schedules a delayed work item to bring the qos back down to the default after the timeout. When the work item runs, pm_qos_work_fn() will call pm_qos_update_request() and deadlock because it tries to cancel itself via cancel_delayed_work_sync()