Thread (15 messages) 15 messages, 6 authors, 2016-01-19

[PATCH v2] reboot: Backup orderly_poweroff

From: mingo@kernel.org (Ingo Molnar)
Date: 2016-01-15 10:13:24
Also in: linux-omap, linux-pm, lkml

* Russell King - ARM Linux [off-list ref] wrote:
On Thu, Jan 14, 2016 at 12:23:54PM +0100, Ingo Molnar wrote:
quoted
* Keerthy [off-list ref] wrote:
quoted
I tried to simulate the issue.

In the probe function of drivers/thermal/ti-soc-thermal/ti-bandgap.c
ti_bandgap_probe i call

orderly_poweroff(true);

This is while driver probes are still on going. I observe that
ret = run_cmd(poweroff_cmd);

ret is a non-zero value and we enter the if condition:

Even after the

emergency_sync();
kernel_power_off();

calls

the console remained active in weird state.
Now _that_ is clearly an architecture bug that should not be papered over ...
No, it's not an architecture bug - it's a platform bug. [...]
It's an 'architecture bug' in Linux kernel speak: all stuff that is traditionally 
under arch/*. The 'arch' in that directory name derives from 'architecture'.

kernel_power_off() is a traditionally architecture level (not core kernel level 
and not driver level) code.
[...] The ARM architecture has no standard way to control CPU reset or system 
power, all that is up to the platform.
... and platform code is typically part of arch/ as well.

FYI, you are making an unnecessarily obtuse argument by insisting on the 
architecture != platform triviality and you also injected an uncalled for 
patronizing tone into this discussion by pretending that I don't know that 
distinction. It's sad.
quoted
If kernel_power_off() is called then the system should power off. No ifs and 
whens.
There definitely are ifs and whens.  Only if the platform has support, and when 
that support works.
And that is precisely what I meant: in a correctly working kernel, with correctly 
working hardware, in a correctly working universe, the core kernel expects 
kernel_power_off() to never 'fail'.

As the name suggests.

Yes, bugs in user-space, kernel-space, hardware and designed buggy hardware might 
prevent a reboot - as usual.

I.e. I NAK this patch from a core kernel perspective, we don't add such 
workarounds without a lot more information about why it's the right thing to do.

Thanks,

	Ingo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help