Thread (12 messages) 12 messages, 3 authors, 2014-02-17

RE: [PATCH 0/5] Enabling the asynchronous threads for other phases

From: Liu, Chuansheng <hidden>
Date: 2014-02-17 01:44:35
Also in: lkml

Hello Rafael,
-----Original Message-----
From: Rafael J. Wysocki [mailto:rjw@rjwysocki.net]
Sent: Monday, February 17, 2014 7:41 AM
To: Liu, Chuansheng
Cc: gregkh@linuxfoundation.org; pavel@ucw.cz; Brown, Len;
linux-pm@vger.kernel.org; linux-kernel@vger.kernel.org; Li, Zhuangzhi
Subject: Re: [PATCH 0/5] Enabling the asynchronous threads for other phases

On Monday, February 10, 2014 08:36:57 AM Liu, Chuansheng wrote:
quoted
Hello Rafael,
quoted
-----Original Message-----
From: Rafael J. Wysocki [mailto:rjw@rjwysocki.net]
Sent: Thursday, February 06, 2014 5:53 AM
To: Liu, Chuansheng
Cc: gregkh@linuxfoundation.org; pavel@ucw.cz; Brown, Len;
linux-pm@vger.kernel.org; linux-kernel@vger.kernel.org; Li, Zhuangzhi
Subject: Re: [PATCH 0/5] Enabling the asynchronous threads for other
phases
quoted
quoted
On Monday, January 20, 2014 04:44:34 PM Liu, Chuansheng wrote:
quoted
Hello,

This patch series are for enabling the asynchronous threads for the
phases
quoted
quoted
quoted
resume_noirq, resume_early, suspend_noirq and suspend_late.

Just like commit 5af84b82701a and 97df8c12995, with async threads it
will
quoted
quoted
quoted
reduce the system suspending and resuming time significantly.

With these patches, in my test platform, it saved 80% time in
resume_noirq
quoted
quoted
quoted
phase.

Has done the suspend-resume stress test for a long time, please help to
review.

Best Regards,

[PATCH 1/5] PM: Adding two flags for async suspend_noirq and
[PATCH 2/5] PM: Enabling the asynchronous threads for resume_noirq
[PATCH 3/5] PM: Enabling the asyncronous threads for resume_early
[PATCH 4/5] PM: Enabling the asyncronous threads for suspend_noirq
[PATCH 5/5] PM: Enabling the asyncronous threads for suspend_late
I've applied this to the bleeding-edge branch of the linux-pm.git tree, with
minor changes related to coding style, white space etc.
Thanks your help.
Unfortunately, I've just realized that your patches don't add any mechanism
ensuring that parent devices' .suspend_noirq() will be called *after* the
.suspend_noirq() of all their children.  Of course, analogously for
.suspend_late() and for the resume part (where children have to wait for
their parents).

In the original async suspend/resume code that is implemented using
power.completion and I suppose you can do the same thing here.
I think "parent devices suspend after their children" is not related directly
with using async or not;
In the original code, even without asyncing, the suspend/resume has the waiting
action, but there no waiting action for suspend_noirq and other phases.

If you think the parent waiting for children is necessary for suspend_noirq/suspend_late
/resume_early/resume_noirq, I can cook other series patches.

But we can separate them with current asyncing series patches. Agree?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help