| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: [PATCH v4 08/25] kernel: Add combined power-off+restart handler call chain API
 
To: Dmitry Osipenko <digetx@xxxxxxxxx>From: Michał Mirosław <mirq-linux@xxxxxxxxxxxx>Date: Sun, 28 Nov 2021 01:43:22 +0100Cc: Thierry Reding <thierry.reding@xxxxxxxxx>,	Jonathan Hunter <jonathanh@xxxxxxxxxx>,	Russell King <linux@xxxxxxxxxxxxxxx>,	Catalin Marinas <catalin.marinas@xxxxxxx>,	Will Deacon <will@xxxxxxxxxx>, Guo Ren <guoren@xxxxxxxxxx>,	Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>,	Greg Ungerer <gerg@xxxxxxxxxxxxxx>,	Joshua Thompson <funaho@xxxxxxxxx>,	Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>,	Sebastian Reichel <sre@xxxxxxxxxx>,	Linus Walleij <linus.walleij@xxxxxxxxxx>,	Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>,	Greentime Hu <green.hu@xxxxxxxxx>,	Vincent Chen <deanbo422@xxxxxxxxx>,	"James E.J. Bottomley" <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>,	Helge Deller <deller@xxxxxx>, Michael Ellerman <mpe@xxxxxxxxxxxxxx>,	Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>,	Paul Mackerras <paulus@xxxxxxxxx>,	Paul Walmsley <paul.walmsley@xxxxxxxxxx>,	Palmer Dabbelt <palmer@xxxxxxxxxxx>,	Albert Ou <aou@xxxxxxxxxxxxxxxxx>,	Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>,	Rich Felker <dalias@xxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>,	Ingo Molnar <mingo@xxxxxxxxxx>, Borislav Petkov <bp@xxxxxxxxx>,	Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>, x86@xxxxxxxxxx,	"H. Peter Anvin" <hpa@xxxxxxxxx>,	Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>,	Juergen Gross <jgross@xxxxxxxx>,	Stefano Stabellini <sstabellini@xxxxxxxxxx>,	"Rafael J. Wysocki" <rafael@xxxxxxxxxx>,	Len Brown <lenb@xxxxxxxxxx>,	Santosh Shilimkar <ssantosh@xxxxxxxxxx>,	Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>,	Liam Girdwood <lgirdwood@xxxxxxxxx>,	Mark Brown <broonie@xxxxxxxxxx>, Pavel Machek <pavel@xxxxxx>,	Lee Jones <lee.jones@xxxxxxxxxx>,	Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>,	Guenter Roeck <linux@xxxxxxxxxxxx>,	Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>,	Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>,	Ulf Hansson <ulf.hansson@xxxxxxxxxx>, alankao@xxxxxxxxxxxxx,	"K . C . Kuen-Chern Lin" <kclin@xxxxxxxxxxxxx>,	linux-arm-kernel@xxxxxxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx,	linux-csky@xxxxxxxxxxxxxxx, linux-ia64@xxxxxxxxxxxxxxx,	linux-m68k@xxxxxxxxxxxxxxxxxxxx, linux-mips@xxxxxxxxxxxxxxx,	linux-parisc@xxxxxxxxxxxxxxx, linuxppc-dev@xxxxxxxxxxxxxxxx,	linux-riscv@xxxxxxxxxxxxxxxxxxx, linux-sh@xxxxxxxxxxxxxxx,	xen-devel@xxxxxxxxxxxxxxxxxxxx, linux-acpi@xxxxxxxxxxxxxxx,	linux-pm@xxxxxxxxxxxxxxx, linux-tegra@xxxxxxxxxxxxxxxDelivery-date: Sun, 28 Nov 2021 00:43:50 +0000List-id: Xen developer discussion <xen-devel.lists.xenproject.org> 
 On Fri, Nov 26, 2021 at 09:00:44PM +0300, Dmitry Osipenko wrote:
> SoC platforms often have multiple ways of how to perform system's
> power-off and restart operations. Meanwhile today's kernel is limited to
> a single option. Add combined power-off+restart handler call chain API,
> which is inspired by the restart API. The new API provides both power-off
> and restart functionality.
> 
> The old pm_power_off method will be kept around till all users are
> converted to the new API.
> 
> Current restart API will be replaced by the new unified API since
> new API is its superset. The restart functionality of the sys-off handler
> API is built upon the existing restart-notifier APIs.
> 
> In order to ease conversion to the new API, convenient helpers are added
> for the common use-cases. They will reduce amount of boilerplate code and
> remove global variables. These helpers preserve old behaviour for cases
> where only one power-off handler is expected, this is what all existing
> drivers want, and thus, they could be easily converted to the new API.
> Users of the new API should explicitly enable power-off chaining by
> setting corresponding flag of the power_handler structure.
[...]
Hi,
A general question: do we really need three distinct chains for this?
Can't there be only one that chain of callbacks that get a stage
(RESTART_PREPARE, RESTART, POWER_OFF_PREPARE, POWER_OFF) and can ignore
them at will? Calling through POWER_OFF_PREPARE would also return
whether that POWER_OFF is possible (for kernel_can_power_off()).
I would also split this patch into preparation cleanups (like wrapping
pm_power_off call with a function) and adding the notifier-based
implementation.
Best Regards
Michał Mirosław
 
 |