diff mbox series

powerpc/xmon: Always enable xmon sysrq trigger

Message ID 20171018113436.16112-1-gpiccoli@linux.vnet.ibm.com (mailing list archive)
State Changes Requested
Headers show
Series powerpc/xmon: Always enable xmon sysrq trigger | expand

Commit Message

Guilherme G. Piccoli Oct. 18, 2017, 11:34 a.m. UTC
Distros vary the way they enable SysRq by default - mostly they seem
to enable some mask and then majority of the SysRq functions are
disabled. For instance, xmon does not even have a mask, and unsless
SysRq are completely enabled ( == 1), xmon trigger keeps disabled.

Countless times while investigating hangs we needed xmon and it was
disabled - machine just got hung and while in serial console, we just
couldn't drop to xmon, forcing to a new attempt to reproduce the issue
with SysRq fully enabled.

This patch "fixes" this by having xmon enabled in all possible masks
of SysRq. In other words, xmon trigger will only be disabled if SysRq
is 0 (completely disabled). So, while debugging a hung, when one tries
to drop to xmon this patch prevents the frustrating message:
"This sysrq operation is disabled".

Signed-off-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
---
Patch built and tested against powerpc/next.

 arch/powerpc/xmon/xmon.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Michael Ellerman Oct. 19, 2017, 5:05 a.m. UTC | #1
"Guilherme G. Piccoli" <gpiccoli@linux.vnet.ibm.com> writes:

> Distros vary the way they enable SysRq by default - mostly they seem
> to enable some mask and then majority of the SysRq functions are
> disabled. For instance, xmon does not even have a mask, and unsless
> SysRq are completely enabled ( == 1), xmon trigger keeps disabled.
>
> Countless times while investigating hangs we needed xmon and it was
> disabled - machine just got hung and while in serial console, we just
> couldn't drop to xmon, forcing to a new attempt to reproduce the issue
> with SysRq fully enabled.
>
> This patch "fixes" this by having xmon enabled in all possible masks
> of SysRq. In other words, xmon trigger will only be disabled if SysRq
> is 0 (completely disabled). So, while debugging a hung, when one tries
> to drop to xmon this patch prevents the frustrating message:
> "This sysrq operation is disabled".

I know it's annoying when you get stuck with a box like this, but I
can't merge this patch.

You're *removing* the system administrators ability to control access to
xmon (other than disabling sysrq entirely). That's a regression.

What we should do is get a bit allocated for xmon, so it can have a
non-zero single-bit enable mask.

cheers


> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index 4679aeb84767..780d708472a2 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3514,6 +3514,7 @@ static struct sysrq_key_op sysrq_xmon_op = {
>  	.handler =	sysrq_handle_xmon,
>  	.help_msg =	"xmon(x)",
>  	.action_msg =	"Entering xmon",
> +	.enable_mask =	0xFFFF,
>  };
>  
>  static int __init setup_xmon_sysrq(void)
> -- 
> 2.14.2
Guilherme G. Piccoli Oct. 19, 2017, 11:06 a.m. UTC | #2
On 10/19/2017 03:05 AM, Michael Ellerman wrote:
> [...]
> I know it's annoying when you get stuck with a box like this, but I
> can't merge this patch.
> 
> You're *removing* the system administrators ability to control access to
> xmon (other than disabling sysrq entirely). That's a regression.
> 
> What we should do is get a bit allocated for xmon, so it can have a
> non-zero single-bit enable mask.
> 

Agree with you, thanks for the enlightening comment. Let's then drop
this one, since sysrq=1 would do the job for us now anyway.

Cheers,


Guilherme

> cheers
> 
> 
>> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
>> index 4679aeb84767..780d708472a2 100644
>> --- a/arch/powerpc/xmon/xmon.c
>> +++ b/arch/powerpc/xmon/xmon.c
>> @@ -3514,6 +3514,7 @@ static struct sysrq_key_op sysrq_xmon_op = {
>>  	.handler =	sysrq_handle_xmon,
>>  	.help_msg =	"xmon(x)",
>>  	.action_msg =	"Entering xmon",
>> +	.enable_mask =	0xFFFF,
>>  };
>>  
>>  static int __init setup_xmon_sysrq(void)
>> -- 
>> 2.14.2
>
diff mbox series

Patch

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 4679aeb84767..780d708472a2 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3514,6 +3514,7 @@  static struct sysrq_key_op sysrq_xmon_op = {
 	.handler =	sysrq_handle_xmon,
 	.help_msg =	"xmon(x)",
 	.action_msg =	"Entering xmon",
+	.enable_mask =	0xFFFF,
 };
 
 static int __init setup_xmon_sysrq(void)