All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rafael@kernel.org>
To: vikas.bansal@samsung.com
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"len.brown@intel.com" <len.brown@intel.com>,
	"pavel@ucw.cz" <pavel@ucw.cz>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH V3] PM: In kernel power management domain_pm created for async schedules
Date: Wed, 13 Dec 2017 23:26:27 +0100	[thread overview]
Message-ID: <CAJZ5v0j2RPzdCzAp3ofjpmnFhMUym691TBS54OvQpw=fidS9Ew@mail.gmail.com> (raw)
In-Reply-To: <20171213084612epcms5p7755822fff34c87907de2236923e82305@epcms5p7>

On Wed, Dec 13, 2017 at 9:46 AM, Vikas Bansal <vikas.bansal@samsung.com> wrote:
>
> Sender : Rafael J. Wysocki <rjw@rjwysocki.net>
> Date   : 2017-12-06 19:48 (GMT+5:30)
>
>> On Wednesday, December 6, 2017 3:12:38 PM CET gregkh@linuxfoundation.org wrote:
>> > On Wed, Dec 06, 2017 at 12:07:14PM +0000, Vikas Bansal wrote:
>> > > Description:
>> >
>> > Why is this here?
>> >
>> > >
>> > > If there is a driver in system which starts creating async schedules
>> > > just after resume (Same as our case, in which we faced issue).
>> > > Then async_synchronize_full API in PM cores starts waiting for completion
>> > > of async schedules created by that driver (Even though those are in a domain).
>> > > Because of this kernel resume time is increased (We faces the same issue)
>> > > and whole system is delayed.
>> > > This problem can be solved by creating a domain for
>> > > async schedules in PM core (As we solved in our case).
>> > > Below patch is for solving this problem.
>> >
>> > Very odd formatting.
>> >
>> > >
>> > > Changelog:
>> > > 1. Created Async domain domain_pm.
>> > > 2. Converted async_schedule to async_schedule_domain.
>> > > 3. Converted async_synchronize_full to async_synchronize_full_domain
>> >
>> > I'm confused.  Have you read kernel patch submissions?  Look at how they
>> > are formatted.  The documentation in the kernel tree should help you out
>> > a lot here.
>> >
>> > Also, this is not v1, it has changed from the previous version.  Always
>> > describe, in the correct way, the changes from previous submissions.
>
> Setting the correct version and chaging the formatting.
>
>> >
>> >
>> > >
>> > >
>> > >
>> > > Signed-off-by: Vikas Bansal <vikas.bansal@samsung.com>
>> > > Signed-off-by: Anuj Gupta <anuj01.gupta@samsung.com>
>> > > ---
>> > >  drivers/base/power/main.c |   27 +++++++++++++++------------
>> > >  1 file changed, 15 insertions(+), 12 deletions(-)
>> > >
>> > > diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
>> > > index db2f044..042b034 100644
>> > > --- a/drivers/base/power/main.c
>> > > +++ b/drivers/base/power/main.c
>> > > @@ -39,6 +39,7 @@
>> > >  #include "power.h"
>> > >
>> > >  typedef int (*pm_callback_t)(struct device *);
>> > > +static ASYNC_DOMAIN(domain_pm);
>> > >
>> > >  /*
>> > >   * The entries in the dpm_list list are in a depth first order, simply
>> > > @@ -615,7 +616,8 @@ void dpm_noirq_resume_devices(pm_message_t state)
>> > >                  reinit_completion(&dev->power.completion);
>> > >                  if (is_async(dev)) {
>> > >                          get_device(dev);
>> > > -                        async_schedule(async_resume_noirq, dev);
>> > > +                        async_schedule_domain(async_resume_noirq, dev,
>> >
>> > Always run your patches through scripts/checkpatch.pl so you do you not
>> > get grumpy maintainers telling you to use scripts/checkpatch.pl
>> >
>> > Stop.  Take some time.  Redo the patch in another day or so, and then
>> > resend it later, _AFTER_ you have addressed the issues.  Don't rush,
>> > there is no race here.
>>
>> Also it is not clear to me if this fixes a mainline kernel issue,
>> because the changelog mentions a driver doing something odd, but it
>> doesn't say which one it is and whether or not it is in the tree.
>
> No, this driver is not part of mainline yet.

So please submit it along with the driver that needs it, whenever that
one is ready.

Thanks,
Rafael

  reply	other threads:[~2017-12-13 22:26 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20171206120714epcms5p70081d5bc518c3bb5f9cca4f56b203abf@epcms5p7>
2017-12-06 12:07 ` [PATCH V1] PM: In kernel power management domain_pm created for async schedules Vikas Bansal
2017-12-06 13:50   ` Rafael J. Wysocki
2017-12-06 14:12   ` gregkh
2017-12-06 14:18     ` Rafael J. Wysocki
2017-12-13  8:46 ` [PATCH V3] " Vikas Bansal
2017-12-13  8:46   ` Vikas Bansal
2017-12-13 22:26   ` Rafael J. Wysocki [this message]
     [not found]   ` <CGME20171206120714epcms5p70081d5bc518c3bb5f9cca4f56b203abf@epcms5p6>
2018-01-04  8:59     ` Vikas Bansal
2018-01-04  9:25       ` gregkh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAJZ5v0j2RPzdCzAp3ofjpmnFhMUym691TBS54OvQpw=fidS9Ew@mail.gmail.com' \
    --to=rafael@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=rjw@rjwysocki.net \
    --cc=vikas.bansal@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.