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 otherphasesquoted
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 thephasesquoted
quoted
quoted
resume_noirq, resume_early, suspend_noirq and suspend_late. Just like commit 5af84b82701a and 97df8c12995, with async threads itwillquoted
quoted
quoted
reduce the system suspending and resuming time significantly. With these patches, in my test platform, it saved 80% time inresume_noirqquoted
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_lateI'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?