All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rafael@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Linux PM list <linux-pm@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alan Stern <stern@rowland.harvard.edu>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Tomeu Vizoso <tomeu.vizoso@collabora.com>,
	Mark Brown <broonie@kernel.org>, Lukas Wunner <lukas@wunner.de>,
	Kevin Hilman <khilman@kernel.org>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	"Luis R. Rodriguez" <mcgrof@suse.com>
Subject: Re: [RFC/RFT][PATCH v3 0/5] Functional dependencies between devices
Date: Fri, 16 Sep 2016 14:04:18 +0200	[thread overview]
Message-ID: <CAJZ5v0hG9VsJx4xt33bCg9tkLFcCQdEBf4EdeEoM+wsLXppfyA@mail.gmail.com> (raw)
In-Reply-To: <51bbee36-380a-6a42-db6b-959d5fec40f8@samsung.com>

On Fri, Sep 16, 2016 at 9:57 AM, Marek Szyprowski
<m.szyprowski@samsung.com> wrote:
> Hi Everyone,
>
>
> On 2016-09-16 09:25, Marek Szyprowski wrote:
>>
>> Hi Rafael,
>>
>> On 2016-09-16 00:03, Rafael J. Wysocki wrote:
>>>
>>> Hi Everyone,
>>>
>>> On Thursday, September 08, 2016 11:25:44 PM Rafael J. Wysocki wrote:
>>>>
>>>> Hi Everyone,
>>>>
>>>> This is a refresh of the functional dependencies series that I posted
>>>> last
>>>> year and which has picked up by Marek quite recently.  For reference,
>>>> appended
>>>> is my introductory message sent previously (which may be slightly
>>>> outdated now).
>>>>
>>>> As last time, the first patch rearranges the code around
>>>> __device_release_driver()
>>>> a bit to prepare it for the next one (it actually hasn't changed
>>>> AFAICS).
>>>>
>>>> The second patch introduces the actual device links mechanics, but
>>>> without
>>>> system suspend/resume and runtime PM support which are added by the
>>>> subsequent
>>>> patches.
>>>>
>>>> Some bugs found by Marek during his work on these patches should be
>>>> fixed
>>>> here.  In particular, the endless recursion in device_reorder_to_tail()
>>>> which simply was broken before.
>>>>
>>>> There are two additional patches to address the issue with runtime PM
>>>> support
>>>> that occured when runtime PM was disabled for some suppliers due to a PM
>>>> sleep transition in progress.  Those patches simply make runtime PM
>>>> helpers
>>>> return 0 in that case which may be controversial, so please let me know
>>>> if
>>>> there are concerns about those.
>>>>
>>>> The way device_link_add() works is a bit different, as it takes an
>>>> additional
>>>> status argument now.  That makes it possible to create a link in any
>>>> state,
>>>> with extra care of course, and should address the problem pointed to by
>>>> Lukas
>>>> during the previous discussion.
>>>>
>>>> Also some comments from Tomeu have been addressed.
>>>
>>> An update here.
>>>
>>> The first patch hasn't changed, so I'm resending it.
>>>
>>> The majority of changes in the other patches are in order to address
>>> Lukas'
>>> comments.
>>>
>>> First off, I added a DEVICE_LINK_STATELESS flag that will prevent the
>>> driver
>>> core from trying to maintain device links having it set.
>>>
>>> Also, the DEVICE_LINK_PERSISTENT flag was dropped (as link "persistence"
>>> is the
>>> default behavior now) and there's a new one, DEVICE_LINK_AUTOREMOVE, that
>>> will
>>> cause the driver core to remove the link on the consumer driver unbind.
>>>
>>> Moreover, the code checks attempts to create a link between a parent and
>>> a child
>>> device now and actively prevents that from happening.
>>>
>>> The changelog of the second patch has been updated as requested by Ulf.
>>>
>>> The third patch was updated to fix a bug related to the (previously
>>> missing)
>>> clearing of power.direct_complete for supplier devices having consumers
>>> that
>>> don't use direct_complete.
>>>
>>> The next two (runtime PM) patches turned out to be unnecessary, so I've
>>> dropped
>>> them.
>>>
>>> The runtime PM patch [4/5] was reorganized somewhat to reduce the
>>> indentation
>>> level in there, but the code flow introduced by it is essentially the
>>> same
>>> and the last patch was simply rebased on top of the new series.
>>>
>>> If this version still works for Marek, I'll probably drop the RFC tag
>>> from it
>>> in the next iteration.
>>
>>
>> Sadly, this version doesn't work. I get following kernel bug:
>>
>> [    2.357622] BUG: spinlock bad magic on CPU#0, swapper/0/1
>> [    2.362361]  lock: 0xeea2e294, .magic: ffffffff, .owner: /0,
>> .owner_cpu: -1
>> [    2.369389] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
>> 4.8.0-rc6-00019-gd66d0028dd3c-dirty #651
>> [    2.377954] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
>> [    2.384053] [<c010d7f0>] (unwind_backtrace) from [<c010a4b4>]
>> (show_stack+0x10/0x14)
>> [    2.391766] [<c010a4b4>] (show_stack) from [<c032220c>]
>> (dump_stack+0x74/0x94)
>> [    2.398970] [<c032220c>] (dump_stack) from [<c0158e8c>]
>> (do_raw_spin_lock+0x160/0x1a8)
>> [    2.406870] [<c0158e8c>] (do_raw_spin_lock) from [<c03e8d84>]
>> (device_links_no_driver+0x64/0x98)
>> [    2.415634] [<c03e8d84>] (device_links_no_driver) from [<c03ec32c>]
>> (driver_probe_device+0xa0/0x2bc)
>> [    2.424744] [<c03ec32c>] (driver_probe_device) from [<c03ec5f4>]
>> (__driver_attach+0xac/0xb0)
>> [    2.433165] [<c03ec5f4>] (__driver_attach) from [<c03eaa90>]
>> (bus_for_each_dev+0x54/0x88)
>> [    2.441323] [<c03eaa90>] (bus_for_each_dev) from [<c03eba6c>]
>> (bus_add_driver+0xe8/0x1f4)
>> [    2.449481] [<c03eba6c>] (bus_add_driver) from [<c03ece54>]
>> (driver_register+0x78/0xf4)
>> [    2.457469] [<c03ece54>] (driver_register) from [<c010178c>]
>> (do_one_initcall+0x3c/0x16c)
>> [    2.465632] [<c010178c>] (do_one_initcall) from [<c0b00d84>]
>> (kernel_init_freeable+0x120/0x1ec)
>> [    2.474313] [<c0b00d84>] (kernel_init_freeable) from [<c0704194>]
>> (kernel_init+0x8/0x118)
>> [    2.482470] [<c0704194>] (kernel_init) from [<c01079b8>]
>> (ret_from_fork+0x14/0x3c)
>>
>> I'm checking what's wrong there.
>>
>
> The issue was caused by missing braces in device_links_no_driver() function.

I'll send an update of the patch in question shortly.

> After fixing it the patches works fine, so you can add:
>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>

Thanks!

> Rafael, how and when do you plan to merge them? I would like to know how to
> process further with my IOMMU patch, which is depends on your patches.

The "how" part really depends on Greg.  Nothing in my queue depends on
these patches at the moment, so I have no hard preferences.

As far as the "when" part goes, realistically, we are about a week
away from the 4.9 merge window I think, so 4.10 would be my target.

Thanks,
Rafael

  reply	other threads:[~2016-09-16 12:04 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-08 21:25 [RFC/RFT][PATCH v2 0/7] Functional dependencies between devices Rafael J. Wysocki
2016-09-08 21:26 ` [RFC/RFT][PATCH v2 1/7] driver core: Add a wrapper around __device_release_driver() Rafael J. Wysocki
2016-09-08 21:27 ` [RFC/RFT][PATCH v2 2/7] driver core: Functional dependencies tracking support Rafael J. Wysocki
2016-09-09  8:25   ` Ulf Hansson
2016-09-09 12:06     ` Mark Brown
2016-09-09 14:13       ` Ulf Hansson
2016-09-15  1:11     ` Rafael J. Wysocki
2016-09-11 13:40   ` Lukas Wunner
2016-09-11 20:43     ` Lukas Wunner
2016-09-14  1:21       ` Rafael J. Wysocki
2016-09-14  8:28         ` Lukas Wunner
2016-09-14 13:17           ` Rafael J. Wysocki
2016-09-08 21:28 ` [RFC/RFT][PATCH v2 3/7] PM / sleep: Make async suspend/resume of devices use device links Rafael J. Wysocki
2016-09-10 13:31   ` Lukas Wunner
2016-09-10 22:12     ` Rafael J. Wysocki
2016-09-08 21:29 ` [RFC/RFT][PATCH v2 4/7] PM / runtime: Pass flags argument to __pm_runtime_disable() Rafael J. Wysocki
2016-09-08 21:29 ` [RFC/RFT][PATCH v2 5/7] PM / runtime: Flag to indicate PM sleep transitions in progress Rafael J. Wysocki
2016-09-12 14:07   ` Lukas Wunner
2016-09-12 21:25     ` Rafael J. Wysocki
2016-09-12 22:52       ` Lukas Wunner
2016-09-13  7:21       ` Marek Szyprowski
2016-09-13 23:59         ` Rafael J. Wysocki
2016-09-08 21:30 ` [RFC/RFT][PATCH v2 6/7] PM / runtime: Use device links Rafael J. Wysocki
2016-09-12  9:47   ` Lukas Wunner
2016-09-12 13:57     ` Rafael J. Wysocki
2016-09-14  1:19       ` Rafael J. Wysocki
2016-09-08 21:31 ` [RFC/RFT][PATCH v2 7/7] PM / runtime: Optimize the use of " Rafael J. Wysocki
2016-09-08 21:35 ` [RFC/RFT][PATCH v2 0/7] Functional dependencies between devices Rafael J. Wysocki
2016-09-10 11:39 ` Lukas Wunner
2016-09-10 22:04   ` Rafael J. Wysocki
2016-09-13 17:57     ` Lukas Wunner
2016-09-13 23:18       ` Rafael J. Wysocki
2016-09-18 12:39         ` Lukas Wunner
     [not found] ` <CGME20160913095858eucas1p267ec2397c9e4577f94557e4a38498164@eucas1p2.samsung.com>
2016-09-13  9:58   ` Marek Szyprowski
2016-09-13 22:41     ` Rafael J. Wysocki
2016-09-18 11:23       ` Lukas Wunner
2016-09-15 22:03 ` [RFC/RFT][PATCH v3 0/5] " Rafael J. Wysocki
2016-09-15 22:04   ` [Resend][RFC/RFT][PATCH v3 1/5] driver core: Add a wrapper around __device_release_driver() Rafael J. Wysocki
2016-09-15 22:06   ` [RFC/RFT][PATCH v3 2/5] driver core: Functional dependencies tracking support Rafael J. Wysocki
2016-09-16  7:53     ` Marek Szyprowski
2016-09-16 12:06       ` Rafael J. Wysocki
2016-09-16 12:33     ` [Update][RFC/RFT][PATCH " Rafael J. Wysocki
2016-09-19 22:46       ` Lukas Wunner
2016-09-23 13:03         ` Lukas Wunner
2016-09-23 13:42         ` Rafael J. Wysocki
2016-09-26 16:51           ` Lukas Wunner
2016-09-27 12:16             ` Rafael J. Wysocki
2016-09-27  8:54       ` Lukas Wunner
2016-09-27 11:52         ` Rafael J. Wysocki
2016-09-28 10:43           ` Lukas Wunner
2016-09-28 11:31             ` Rafael J. Wysocki
2016-09-29 10:36               ` Lukas Wunner
2016-09-15 22:06   ` [RFC/RFT][PATCH v3 3/5] PM / sleep: Make async suspend/resume of devices use device links Rafael J. Wysocki
2016-09-15 22:07   ` [RFC/RFT][PATCH v3 4/5] PM / runtime: Use " Rafael J. Wysocki
2016-09-15 22:07   ` [RFC/RFT][PATCH v3 5/5] PM / runtime: Optimize the use of " Rafael J. Wysocki
2016-09-16  7:25   ` [RFC/RFT][PATCH v3 0/5] Functional dependencies between devices Marek Szyprowski
2016-09-16  7:57     ` Marek Szyprowski
2016-09-16 12:04       ` Rafael J. Wysocki [this message]
2016-09-27 12:34   ` Lukas Wunner
2016-09-28  0:33     ` Rafael J. Wysocki
2016-09-28 11:42       ` Lukas Wunner
2016-09-29  0:51         ` Rafael J. Wysocki
2016-11-15 18:50           ` Lukas Wunner
2016-09-29  0:24 ` [PATCH v4 " Rafael J. Wysocki
2016-09-29  0:25   ` [Resend][PATCH v4 1/5] driver core: Add a wrapper around __device_release_driver() Rafael J. Wysocki
2016-09-29  0:38   ` [PATCH v4 2/5] driver core: Functional dependencies tracking support Rafael J. Wysocki
2016-10-01  7:43     ` Lukas Wunner
2016-10-01 23:32       ` Rafael J. Wysocki
2016-09-29  0:38   ` [Resend][PATCH v4 3/5] PM / sleep: Make async suspend/resume of devices use device links Rafael J. Wysocki
2016-09-29  0:40   ` [PATCH v4 4/5] PM / runtime: Use " Rafael J. Wysocki
2016-09-29  0:41   ` [Rebase][PATCH v4 5/5] PM / runtime: Optimize the use of " Rafael J. Wysocki
2016-09-29  6:58   ` [PATCH v4 0/5] Functional dependencies between devices Marek Szyprowski
2016-09-29 12:27     ` Rafael J. Wysocki
2016-10-02 23:13   ` Lukas Wunner
2016-10-10 12:36 ` [PATCH v5 " Rafael J. Wysocki
2016-10-10 12:37   ` [Resend][PATCH v5 1/5] driver core: Add a wrapper around __device_release_driver() Rafael J. Wysocki
2016-10-10 12:51   ` [PATCH v5 2/5] driver core: Functional dependencies tracking support Rafael J. Wysocki
2016-10-26 11:19     ` Lukas Wunner
2016-10-27 15:25       ` Greg Kroah-Hartman
2016-10-28  9:57         ` Lukas Wunner
2016-11-07 21:22         ` Luis R. Rodriguez
2016-11-08  6:45           ` Greg Kroah-Hartman
2016-11-08 19:21             ` Luis R. Rodriguez
2016-11-08 19:43               ` Greg Kroah-Hartman
2016-11-08 20:58                 ` Luis R. Rodriguez
2016-11-08 20:58                   ` Luis R. Rodriguez
2016-11-09  6:45                   ` Greg Kroah-Hartman
2016-11-09  9:36                     ` Andrzej Hajda
2016-11-09  9:41                       ` Greg Kroah-Hartman
2016-11-13 16:58                   ` Lukas Wunner
2016-11-10  0:43           ` Rafael J. Wysocki
2016-11-10  0:59             ` Luis R. Rodriguez
2016-11-10  0:59               ` Luis R. Rodriguez
2016-11-10  7:14               ` Laurent Pinchart
2016-11-10 22:04                 ` Luis R. Rodriguez
2016-11-10 22:04                   ` Luis R. Rodriguez
2016-11-10 22:40                   ` Greg Kroah-Hartman
2016-11-10 22:40                     ` Greg Kroah-Hartman
2016-11-11  0:08                     ` Laurent Pinchart
2016-11-11  0:08                       ` Laurent Pinchart
2016-11-13 10:59                       ` Greg Kroah-Hartman
2016-11-13 10:59                         ` Greg Kroah-Hartman
2016-11-14 14:50                         ` Luis R. Rodriguez
2016-11-14 14:50                           ` Luis R. Rodriguez
2016-11-14  8:15                       ` Geert Uytterhoeven
2016-11-14  8:15                         ` Geert Uytterhoeven
2016-11-10  8:46               ` Geert Uytterhoeven
2016-11-10 22:12                 ` Luis R. Rodriguez
2016-11-10 22:12                   ` Luis R. Rodriguez
2016-10-27 15:32     ` Greg Kroah-Hartman
2016-11-07 21:39     ` Luis R. Rodriguez
2016-11-10  1:07       ` Rafael J. Wysocki
2016-11-10  7:05       ` Laurent Pinchart
2016-11-10 23:09         ` Luis R. Rodriguez
2016-11-13 17:34       ` Lukas Wunner
2016-11-14 13:48         ` Luis R. Rodriguez
2016-11-14 15:48           ` Lukas Wunner
2016-11-14 16:00             ` Luis R. Rodriguez
2016-10-10 12:54   ` [PATCH v5 3/5] PM / sleep: Make async suspend/resume of devices use device links Rafael J. Wysocki
2016-10-10 12:56   ` [PATCH v5 4/5] PM / runtime: Use " Rafael J. Wysocki
2016-10-20 13:17     ` [Update][PATCH " Rafael J. Wysocki
2016-10-10 12:57   ` [Rebase][PATCH v5 5/5] PM / runtime: Optimize the use of " Rafael J. Wysocki
2016-10-18 10:46   ` [PATCH v5 0/5] Functional dependencies between devices Marek Szyprowski
2016-10-19 11:57     ` Rafael J. Wysocki
2016-10-20 10:21       ` Marek Szyprowski
2016-10-20 12:54         ` Rafael J. Wysocki
2016-10-27 15:32   ` Greg Kroah-Hartman
     [not found]   ` <5811F0CF.5000204@huawei.com>
2016-10-28  9:39     ` Lukas Wunner
2016-11-02 20:55       ` Hanjun Guo
2016-10-30 16:22 ` [PATCH v6 " Rafael J. Wysocki
2016-10-30 16:28   ` [Resend][PATCH v6 3/5] PM / sleep: Make async suspend/resume of devices use device links Rafael J. Wysocki
2016-10-30 16:29   ` [Resend][PATCH v6 1/5] driver core: Add a wrapper around __device_release_driver() Rafael J. Wysocki
2016-10-30 16:32   ` [PATCH v6 2/5] driver core: Functional dependencies tracking support Rafael J. Wysocki
2016-10-30 16:32   ` [PATCH v6 4/5] PM / runtime: Use device links Rafael J. Wysocki
2016-12-18 14:01     ` Lukas Wunner
2016-12-18 15:53       ` Rafael J. Wysocki
2016-12-18 16:37         ` Lukas Wunner
2016-12-19 12:38           ` Rafael J. Wysocki
2016-10-30 16:32   ` [Resend][PATCH v6 5/5] PM / runtime: Optimize the use of " Rafael J. Wysocki
2016-10-30 16:40   ` [PATCH v6 0/5] Functional dependencies between devices Rafael J. Wysocki
2016-10-31 17:47   ` Greg Kroah-Hartman
2016-11-01  3:50     ` Rafael J. Wysocki
2016-11-02  7:58     ` Marek Szyprowski
2016-11-05 12:10       ` Greg Kroah-Hartman
2016-11-07 21:15       ` Luis R. Rodriguez
2016-11-08  6:36         ` Marek Szyprowski
2016-11-08 20:14           ` Luis R. Rodriguez

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=CAJZ5v0hG9VsJx4xt33bCg9tkLFcCQdEBf4EdeEoM+wsLXppfyA@mail.gmail.com \
    --to=rafael@kernel.org \
    --cc=broonie@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=khilman@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=m.szyprowski@samsung.com \
    --cc=mcgrof@suse.com \
    --cc=rjw@rjwysocki.net \
    --cc=stern@rowland.harvard.edu \
    --cc=tomeu.vizoso@collabora.com \
    --cc=ulf.hansson@linaro.org \
    /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.