[PATCH] powerpc/pseries: Do not initiate shutdown when system is running on UPS
Vasant Hegde
hegdevasant at linux.vnet.ibm.com
Wed Aug 19 15:25:20 AEST 2020
On 8/19/20 1:05 AM, Tyrel Datwyler wrote:
> On 8/18/20 3:54 AM, Vasant Hegde wrote:
>> As per PAPR specification whenever system is running on UPS we have to
>> wait for predefined time (default 10mins) before initiating shutdown.
>
> The wording in PAPR seems a little unclear. It states for an
> EPOW_SYSTEM_SHUTDOWN action code that an EPOW error should be logged followed by
> scheduling a shutdown to begin after an OS defined delay interval (with 10
> minutes the suggested default).
>
> However, the modifier code descriptions seems to imply that a normal shutdown is
> the only one that should happen with no additional delay.
>
> For EPOW sensor value = 3 (EPOW_SYSTEM_SHUTDOWN)
> 0x01 = Normal system shutdown with no additional delay
> 0x02 = Loss of utility power, system is running on UPS/Battery
> 0x03 = Loss of system critical functions, system should be shutdown
> 0x04 = Ambient temperature too high
>
> For 0x03-0x04 we also do an orderly_poweroff().
>
> Not sure if it really matters, but I was curious and this is just what I gleaned
> from glancing at PAPR.
Correct. PAPR is bit confusing. But we know for sure that when running on UPS we
don't need to shutdown immediately.
For values 0x03 and 0x04 I think its ok to initiate shutdown (that's the same
behaviour exists for long time). I can double check with firmware folks.
-Vasant
>
> -Tyrel
>
>>
>> We have user space tool (rtas_errd) to monitor for EPOW events and
>> initiate shutdown after predefined time. Hence do not initiate shutdown
>> whenever we get EPOW_SHUTDOWN_ON_UPS event.
>>
>> Fixes: 79872e35 (powerpc/pseries: All events of EPOW_SYSTEM_SHUTDOWN must initiate shutdown)
>> Cc: stable at vger.kernel.org # v4.0+
>> Cc: Michael Ellerman <mpe at ellerman.id.au>
>> Signed-off-by: Vasant Hegde <hegdevasant at linux.vnet.ibm.com>
>> ---
>> arch/powerpc/platforms/pseries/ras.c | 1 -
>> 1 file changed, 1 deletion(-)
>>
>> diff --git a/arch/powerpc/platforms/pseries/ras.c b/arch/powerpc/platforms/pseries/ras.c
>> index f3736fcd98fc..13c86a292c6d 100644
>> --- a/arch/powerpc/platforms/pseries/ras.c
>> +++ b/arch/powerpc/platforms/pseries/ras.c
>> @@ -184,7 +184,6 @@ static void handle_system_shutdown(char event_modifier)
>> case EPOW_SHUTDOWN_ON_UPS:
>> pr_emerg("Loss of system power detected. System is running on"
>> " UPS/battery. Check RTAS error log for details\n");
>> - orderly_poweroff(true);
>> break;
>>
>> case EPOW_SHUTDOWN_LOSS_OF_CRITICAL_FUNCTIONS:
>>
>
More information about the Linuxppc-dev
mailing list