LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: "Rafael J . Wysocki" <rjw@rjwysocki.net>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>,
	Linux PM <linux-pm@vger.kernel.org>,
	Kevin Hilman <khilman@kernel.org>,
	Lina Iyer <ilina@codeaurora.org>,
	Lina Iyer <lina.iyer@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Stephen Boyd <sboyd@kernel.org>, Juri Lelli <juri.lelli@arm.com>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	linux-arm-msm@vger.kernel.org,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v6 20/25] drivers: firmware: psci: Introduce psci_dt_topology_init()
Date: Wed, 18 Apr 2018 12:32:43 +0100	[thread overview]
Message-ID: <20180418113242.fnpqp3j2ayhclwmj@lakrids.cambridge.arm.com> (raw)
In-Reply-To: <CAPDyKFrVNtv6Z3r5DkVXVooszyJTqaBxwg9wm94aw7v3SyA4tg@mail.gmail.com>

On Tue, Apr 10, 2018 at 02:25:52PM +0200, Ulf Hansson wrote:
> On 10 April 2018 at 13:10, Mark Rutland <mark.rutland@arm.com> wrote:
> > On Tue, Apr 10, 2018 at 09:19:26AM +0200, Ulf Hansson wrote:
> >> On 14 March 2018 at 18:38, Mark Rutland <mark.rutland@arm.com> wrote:
> >> > On Wed, Mar 14, 2018 at 05:58:30PM +0100, Ulf Hansson wrote:
> >> >> In case the hierarchical layout is used in DT, we want to initialize the
> >> >> corresponding PM domain topology for the CPUs, by using the generic PM
> >> >> domain (aka genpd) infrastructure.
> >> >>
> >> >> At first glance, it may seem feasible to hook into the existing
> >> >> psci_dt_init() function, although because it's called quite early in the
> >> >> boot sequence, allocating the dynamic data structure for a genpd doesn't
> >> >> work.
> >> >>
> >> >> Therefore, let's export a new init function for PSCI,
> >> >> psci_dt_topology_init(), which the ARM machine code should call from a
> >> >> suitable initcall.
> >> >>
> >> >> Succeeding to initialize the PM domain topology, which means at least one
> >> >> instance of a genpd becomes created, allows us to continue to enable the
> >> >> PSCI OS initiated mode for the platform. If everything turns out fine,
> >> >> let's print a message in log to inform the user about the changed mode.
> >> >>
> >> >> In case of any failures, we stick to the default PSCI Platform Coordinated
> >> >> mode.
> >> >
> >> > For kexec/kdump we'll need to explicitly set the suspend mode to
> >> > platform coordinated if for whatever reason we choose not to use OSI.
> >>
> >> Could you please elaborate on this? I am not really understanding what
> >> you are suggesting me to do and why.
> >
> > Sorry for not being clear.
> >
> > What I'd like to see is that we always call SET_SUSPEND_MODE before
> > invoking CPU_SUSPEND. Either deciding early if we can use OSI, or always
> > setting it to platform co-ordinated early on in boot and later switching
> > it over.
> >
> > That way we can be sure of the suspend mode, even if we've kexec'd from
> > a kernel that had fiddled with it.
> 
> Right, good point. Let's me update the patch to deal with that.
> 
> One thing though, kexec from a "new" kernel having OSI mode enabled
> into an "old" kernel that doesn't even have the new OSI mode support
> in psci driver, is going to be difficult to deal with.
> On the other hand I guess that isn't a very important usecase we need
> to cover, or is it?

I think we can also transition back to platform-coordinated in a reboot
notifier, which should cater for kexec to an old kernel. I agree it
shouldn't be a big deal, though.

Thanks,
Mark.

  reply	other threads:[~2018-04-18 11:32 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-14 16:58 [PATCH v6 00/25] PM / Domains: Support hierarchical CPU arrangement (PSCI/ARM) Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 01/25] PM / Domains: Don't treat zero found compatible idle states as an error Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 02/25] PM / Domains: Deal with multiple states but no governor in genpd Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 03/25] PM / Domains: Add generic data pointer to genpd_power_state struct Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 04/25] PM / Domains: Add support for CPU devices to genpd Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 05/25] PM / Domains: Add helper functions to attach/detach CPUs to/from genpd Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 06/25] timer: Export next wakeup time of a CPU Ulf Hansson
2018-03-14 17:19   ` Mark Rutland
2018-03-14 16:58 ` [PATCH v6 07/25] PM / Domains: Add genpd governor for CPUs Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 08/25] PM / Domains: Extend genpd CPU governor to cope with QoS constraints Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 09/25] kernel/cpu_pm: Manage runtime PM in the idle path for CPUs Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 10/25] dt: psci: Update DT bindings to support hierarchical PSCI states Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 11/25] of: base: Add of_get_cpu_state_node() to get idle states for a CPU node Ulf Hansson
2018-03-18 12:51   ` Rob Herring
2018-03-14 16:58 ` [PATCH v6 12/25] cpuidle: dt: Support hierarchical CPU idle states Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 13/25] drivers: firmware: psci: Split psci_dt_cpu_init_idle() Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 14/25] drivers: firmware: psci: Support hierarchical CPU idle states Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 15/25] drivers: firmware: psci: Simplify error path of psci_dt_init() Ulf Hansson
2018-03-14 17:25   ` Mark Rutland
2018-03-14 16:58 ` [PATCH v6 16/25] drivers: firmware: psci: Announce support for OS initiated suspend mode Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 17/25] drivers: firmware: psci: Prepare to use " Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 18/25] drivers: firmware: psci: Share a few internal PSCI functions Ulf Hansson
2018-03-14 17:30   ` Mark Rutland
2018-03-14 16:58 ` [PATCH v6 19/25] drivers: firmware: psci: Add support for PM domains using genpd Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 20/25] drivers: firmware: psci: Introduce psci_dt_topology_init() Ulf Hansson
2018-03-14 17:38   ` Mark Rutland
2018-04-10  7:19     ` Ulf Hansson
2018-04-10 11:10       ` Mark Rutland
2018-04-10 12:25         ` Ulf Hansson
2018-04-18 11:32           ` Mark Rutland [this message]
2018-03-14 16:58 ` [PATCH v6 21/25] drivers: firmware: psci: Try to attach CPU devices to their PM domains Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 22/25] drivers: firmware: psci: Deal with CPU hotplug when using OSI mode Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 23/25] MAINTAINERS: Update files for PSCI Ulf Hansson
2018-03-14 17:40   ` Mark Rutland
2018-03-14 16:58 ` [PATCH v6 24/25] arm64: kernel: Respect the hierarchical CPU topology in DT " Ulf Hansson
2018-03-14 16:58 ` [PATCH v6 25/25] arm64: dts: Convert to the hierarchical CPU topology layout for MSM8916 Ulf Hansson
2018-03-14 17:19 ` [PATCH v6 00/25] PM / Domains: Support hierarchical CPU arrangement (PSCI/ARM) Mark Rutland
2018-03-15 14:19   ` Ulf Hansson
2018-03-15 11:00 ` Geert Uytterhoeven
2018-03-15 13:14   ` Ulf Hansson

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=20180418113242.fnpqp3j2ayhclwmj@lakrids.cambridge.arm.com \
    --to=mark.rutland@arm.com \
    --cc=Lorenzo.Pieralisi@arm.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=geert+renesas@glider.be \
    --cc=ilina@codeaurora.org \
    --cc=juri.lelli@arm.com \
    --cc=khilman@kernel.org \
    --cc=lina.iyer@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=sudeep.holla@arm.com \
    --cc=tglx@linutronix.de \
    --cc=ulf.hansson@linaro.org \
    --cc=vincent.guittot@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 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).