linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rafael@kernel.org>
To: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Mark Brown <broonie@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Pingfan Liu <kernelfans@gmail.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Grygorii Strashko <grygorii.strashko@ti.com>,
	Christoph Hellwig <hch@infradead.org>,
	Bjorn Helgaas <helgaas@kernel.org>,
	Dave Young <dyoung@redhat.com>,
	Linux PCI <linux-pci@vger.kernel.org>,
	Lukas Wunner <lukas@wunner.de>,
	Linux PM list <linux-pm@vger.kernel.org>
Subject: Re: [PATCH] driver core: Drop devices_kset_move_last() call from really_probe()
Date: Tue, 10 Jul 2018 12:32:28 +0200	[thread overview]
Message-ID: <CAJZ5v0j3Ss5Sa++ZjudMN0Jo2mu5YY6qJ4yEA5TG-zn=qYw2jg@mail.gmail.com> (raw)
In-Reply-To: <5b134ed3-b473-90f3-acc7-5943e1669bb5@ti.com>

On Tue, Jul 10, 2018 at 8:19 AM, Kishon Vijay Abraham I <kishon@ti.com> wrote:
> +Mark, Liam
>
> Hi,
>
> On Tuesday 10 July 2018 03:36 AM, Bjorn Helgaas wrote:
>> [+cc Kishon]
>>
>> On Mon, Jul 9, 2018 at 4:35 PM Rafael J. Wysocki <rafael@kernel.org> wrote:
>>>
>>> On Mon, Jul 9, 2018 at 3:57 PM, Bjorn Helgaas <bhelgaas@google.com> wrote:
>>>> On Fri, Jul 6, 2018 at 5:01 AM Rafael J. Wysocki <rjw@rjwysocki.net> wrote:
>>>>>
>>>>> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>>>>>
>>>>> The devices_kset_move_last() call in really_probe() is a mistake
>>>>> as it may cause parents to follow children in the devices_kset list
>>>>> which then causes system shutdown to fail.  Namely, if a device has
>>>>> children before really_probe() is called for it (which is not
>>>>> uncommon), that call will cause it to be reordered after the children
>>>>> in the devices_kset list and the ordering of that list will not
>>>>> reflect the correct device shutdown order.
>>>>>
>>>>> Also it causes the devices_kset list to be constantly reordered
>>>>> until all drivers have been probed which is totally pointless
>>>>> overhead in the majority of cases.
>>>>>
>>>>> For that reason, revert the really_probe() modifications made by
>>>>> commit 52cdbdd49853.
>>>>
>>>> I'm sure you've considered this, but I can't figure out whether this
>>>> patch will reintroduce the problem that was solved by 52cdbdd49853.
>>>> That patch updated two places: (1) really_probe(), the change you're
>>>> reverting here, and (2) device_move().
>>>>
>>>> device_move() is only called from 4-5 places, none of which look
>>>> related to the problem fixed by 52cdbdd49853, so it seems like that
>>>> problem was probably resolved by the hunk you're reverting.
>>>
>>> That's right, but I don't want to revert all of it.  The other parts
>>> of it are kind of useful as they make the handling of the devices_kset
>>> list be consistent with the handling of dpm_list.
>>>
>>> The hunk I'm reverting, however, is completely off.  It not only is
>>> incorrect (as per the above), but it also causes the devices_kset list
>>> and dpm_list to be handled differently.
>>
>> If I understand correctly, you are saying:
>>
>>   - the 52cdbdd49853 really_probe() hunk fixed a problem, but
>>   - that hunk was the wrong fix for it, and
>>   - this patch removes the wrong fix (and probably reintroduces the problem)
>>
>> If devices_kset is supposed to be ordered so children follow parents,
>> I agree the really_probe() hunk doesn't make much sense because the
>> parent/child relation is determined by the circuit design, not by the
>> probe order.
>>
>> It just seems like it's worth being clear that we're reintroducing the
>> problem fixed by 52cdbdd49853, so it needs to be solved a different
>> way.  Ideally that would be done before this patch so there's not a
>> regression, and this changelog could mention what's happening.
>>
>>> It had attempted to fix something, but it failed miserably at that.
>>
>> If you're saying that 52cdbdd49853 *tried* to fix a DRA7XX_evm reboot
>> problem, but in fact, it did not fix that problem, then I guess there
>> should be no issue with reverting that hunk.
>
> It did fix a problem making sure the regulator's shutdown is invoked after the
> mmc shutdown. And reverting 52cdbdd49853 reintroduces the problem.

But, of course, it didn't prevent regulator suspend from being run
before mmc suspend, so it really addressed part of the problem only
and while doing that it introduced a regression.

This piece of really_probe() is incorrect and it has to go away.

Thanks,
Rafael

  reply	other threads:[~2018-07-10 10:32 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-03  6:50 [PATCHv3 0/4] drivers/base: bugfix for supplier<-consumer ordering in device_kset Pingfan Liu
2018-07-03  6:50 ` [PATCHv3 1/4] drivers/base: fold the routine of device's shutdown into a func Pingfan Liu
2018-07-03  6:50 ` [PATCHv3 2/4] drivers/base: utilize device tree info to shutdown devices Pingfan Liu
2018-07-03  7:51   ` Lukas Wunner
2018-07-03  9:26     ` Pingfan Liu
2018-07-04  3:10       ` Pingfan Liu
2018-07-03 10:58   ` Andy Shevchenko
2018-07-03 17:03     ` Pavel Tatashin
2018-07-04 17:04   ` kbuild test robot
2018-07-05 10:11   ` Rafael J. Wysocki
2018-07-06  3:02     ` Pingfan Liu
2018-07-06  9:53       ` Rafael J. Wysocki
2018-07-07  4:02         ` Pingfan Liu
2018-07-06 10:00       ` [PATCH] driver core: Drop devices_kset_move_last() call from really_probe() Rafael J. Wysocki
2018-07-09 13:57         ` Bjorn Helgaas
2018-07-09 21:35           ` Rafael J. Wysocki
2018-07-09 22:06             ` Bjorn Helgaas
2018-07-10  6:19               ` Kishon Vijay Abraham I
2018-07-10 10:32                 ` Rafael J. Wysocki [this message]
2018-07-10 10:29               ` Rafael J. Wysocki
2018-07-10  6:33         ` Pingfan Liu
2018-07-10 11:35         ` [PATCH] driver core: Partially revert "driver core: correct device's shutdown order" Rafael J. Wysocki
2018-07-10 12:22           ` Kishon Vijay Abraham I
2018-07-10 12:38             ` Rafael J. Wysocki
2018-07-10 12:51           ` [PATCH v2] " Rafael J. Wysocki
2018-07-10 12:59             ` Greg Kroah-Hartman
2018-07-10 15:40               ` Rafael J. Wysocki
2018-07-10 15:47                 ` Greg Kroah-Hartman
2018-07-10 19:13                   ` Kishon Vijay Abraham I
2018-07-03  6:50 ` [PATCHv3 3/4] drivers/base: clean up the usage of devices_kset_move_last() Pingfan Liu
2018-07-03 14:26   ` Rafael J. Wysocki
2018-07-04  4:40     ` Pingfan Liu
2018-07-04 10:17       ` Rafael J. Wysocki
2018-07-05  2:32         ` Pingfan Liu
2018-07-03  6:50 ` [PATCHv3 4/4] Revert "driver core: correct device's shutdown order" Pingfan Liu
2018-07-03 14:35 ` [PATCHv3 0/4] drivers/base: bugfix for supplier<-consumer ordering in device_kset Rafael J. Wysocki
2018-07-04  2:47   ` Pingfan Liu
2018-07-04 10:21     ` Rafael J. Wysocki
2018-07-05  2:44       ` Pingfan Liu
2018-07-05  9:18         ` Rafael J. Wysocki
2018-07-06  8:36           ` Lukas Wunner
2018-07-06  8:47             ` Rafael J. Wysocki
2018-07-06 13:55               ` Pingfan Liu
2018-07-07  4:24                 ` Pingfan Liu
2018-07-08  8:25                   ` Rafael J. Wysocki
2018-07-09  6:48                     ` Pingfan Liu
2018-07-09  7:48                       ` Rafael J. Wysocki
2018-07-09  8:40                         ` Pingfan Liu
2018-07-09  8:58                           ` Rafael J. Wysocki
2018-07-06 10:02             ` Kishon Vijay Abraham I
2018-07-06 13:52             ` Pingfan Liu

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='CAJZ5v0j3Ss5Sa++ZjudMN0Jo2mu5YY6qJ4yEA5TG-zn=qYw2jg@mail.gmail.com' \
    --to=rafael@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=broonie@kernel.org \
    --cc=dyoung@redhat.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=grygorii.strashko@ti.com \
    --cc=hch@infradead.org \
    --cc=helgaas@kernel.org \
    --cc=kernelfans@gmail.com \
    --cc=kishon@ti.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=rjw@rjwysocki.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).