RE: [PATCH v3 5/5] PM / sleep: Asynchronous threads for suspend_late

From: Liu, Chuansheng
Date: Mon Feb 17 2014 - 19:33:28 EST


Hello Rafael,

> -----Original Message-----
> From: Rafael J. Wysocki [mailto:rjw@xxxxxxxxxxxxx]
> Sent: Tuesday, February 18, 2014 1:28 AM
> To: Liu, Chuansheng
> Cc: gregkh@xxxxxxxxxxxxxxxxxxx; Brown, Len; pavel@xxxxxx;
> linux-pm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Li, Zhuangzhi
> Subject: Re: [PATCH v3 5/5] PM / sleep: Asynchronous threads for suspend_late
>
> On Monday, February 17, 2014 02:19:14 PM Chuansheng Liu wrote:
> > In analogy with commits 5af84b82701a and 97df8c12995, using
> > asynchronous threads can improve the overall suspend_late
> > time significantly.
> >
> > This patch is for suspend_late phase.
> >
> > Signed-off-by: Chuansheng Liu <chuansheng.liu@xxxxxxxxx>
> > ---
> > drivers/base/power/main.c | 66
> ++++++++++++++++++++++++++++++++++++++---------
> > 1 file changed, 54 insertions(+), 12 deletions(-)
> >
> > diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
> > index 72b4c9c..c031050 100644
> > --- a/drivers/base/power/main.c
> > +++ b/drivers/base/power/main.c
> > @@ -1127,16 +1127,26 @@ static int dpm_suspend_noirq(pm_message_t
> state)
> > *
> > * Runtime PM is disabled for @dev while this function is being executed.
> > */
> > -static int device_suspend_late(struct device *dev, pm_message_t state)
> > +static int __device_suspend_late(struct device *dev, pm_message_t state,
> bool async)
> > {
> > pm_callback_t callback = NULL;
> > char *info = NULL;
> > - int error;
> > + int error = 0;
> > +
> > + dpm_wait_for_children(dev, async);
> >
>
> Like in patch [4/5], all of the "goto Complete" statements can go before
> the waiting.
>
You are right, will do that in patch V4, thanks your reviewing.