All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change
@ 2017-02-15  7:49 Pan Xinhui
  2017-02-15 21:22 ` Guilherme G. Piccoli
  2017-02-16  5:09 ` Michael Ellerman
  0 siblings, 2 replies; 10+ messages in thread
From: Pan Xinhui @ 2017-02-15  7:49 UTC (permalink / raw)
  To: linux-kernel, linuxppc-dev
  Cc: benh, paulus, mpe, npiggin, gpiccoli, Pan Xinhui

Once xmon is triggered by sysrq-x, it is enabled always afterwards even
if it is disabled during boot. This will cause a system reset interrut
fail to dump. So keep xmon in its original state after exit.

Signed-off-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>
---
 arch/powerpc/xmon/xmon.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 9c0e17c..721212f 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -76,6 +76,7 @@ static int xmon_gate;
 #endif /* CONFIG_SMP */
 
 static unsigned long in_xmon __read_mostly = 0;
+static int xmon_off = 0;
 
 static unsigned long adrs;
 static int size = 1;
@@ -3250,6 +3251,8 @@ static void sysrq_handle_xmon(int key)
 	/* ensure xmon is enabled */
 	xmon_init(1);
 	debugger(get_irq_regs());
+	if (xmon_off)
+		xmon_init(0);
 }
 
 static struct sysrq_key_op sysrq_xmon_op = {
@@ -3266,7 +3269,7 @@ static int __init setup_xmon_sysrq(void)
 __initcall(setup_xmon_sysrq);
 #endif /* CONFIG_MAGIC_SYSRQ */
 
-static int __initdata xmon_early, xmon_off;
+static int __initdata xmon_early;
 
 static int __init early_parse_xmon(char *p)
 {
-- 
2.4.11

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change
  2017-02-15  7:49 [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change Pan Xinhui
@ 2017-02-15 21:22 ` Guilherme G. Piccoli
  2017-02-16  5:09 ` Michael Ellerman
  1 sibling, 0 replies; 10+ messages in thread
From: Guilherme G. Piccoli @ 2017-02-15 21:22 UTC (permalink / raw)
  To: Pan Xinhui, linux-kernel, linuxppc-dev; +Cc: benh, paulus, mpe, npiggin

On 15/02/2017 05:49, Pan Xinhui wrote:
> Once xmon is triggered by sysrq-x, it is enabled always afterwards even
> if it is disabled during boot. This will cause a system reset interrut
> fail to dump. So keep xmon in its original state after exit.
> 
> Signed-off-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>

Patch is fine - minor typo: interrut => interrupt

Feel free to add my:
Tested-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>

Thanks,


Guilherme

> ---
>  arch/powerpc/xmon/xmon.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index 9c0e17c..721212f 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -76,6 +76,7 @@ static int xmon_gate;
>  #endif /* CONFIG_SMP */
> 
>  static unsigned long in_xmon __read_mostly = 0;
> +static int xmon_off = 0;
> 
>  static unsigned long adrs;
>  static int size = 1;
> @@ -3250,6 +3251,8 @@ static void sysrq_handle_xmon(int key)
>  	/* ensure xmon is enabled */
>  	xmon_init(1);
>  	debugger(get_irq_regs());
> +	if (xmon_off)
> +		xmon_init(0);
>  }
> 
>  static struct sysrq_key_op sysrq_xmon_op = {
> @@ -3266,7 +3269,7 @@ static int __init setup_xmon_sysrq(void)
>  __initcall(setup_xmon_sysrq);
>  #endif /* CONFIG_MAGIC_SYSRQ */
> 
> -static int __initdata xmon_early, xmon_off;
> +static int __initdata xmon_early;
> 
>  static int __init early_parse_xmon(char *p)
>  {
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change
  2017-02-15  7:49 [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change Pan Xinhui
  2017-02-15 21:22 ` Guilherme G. Piccoli
@ 2017-02-16  5:09 ` Michael Ellerman
  2017-02-16 10:57   ` Guilherme G. Piccoli
  1 sibling, 1 reply; 10+ messages in thread
From: Michael Ellerman @ 2017-02-16  5:09 UTC (permalink / raw)
  To: Pan Xinhui, linux-kernel, linuxppc-dev
  Cc: benh, paulus, npiggin, gpiccoli, Pan Xinhui

Pan Xinhui <xinhui.pan@linux.vnet.ibm.com> writes:

> Once xmon is triggered by sysrq-x, it is enabled always afterwards even
> if it is disabled during boot. This will cause a system reset interrut
> fail to dump. So keep xmon in its original state after exit.
>
> Signed-off-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>
> ---
>  arch/powerpc/xmon/xmon.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index 9c0e17c..721212f 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -76,6 +76,7 @@ static int xmon_gate;
>  #endif /* CONFIG_SMP */
>  
>  static unsigned long in_xmon __read_mostly = 0;
> +static int xmon_off = 0;
>  
>  static unsigned long adrs;
>  static int size = 1;
> @@ -3250,6 +3251,8 @@ static void sysrq_handle_xmon(int key)
>  	/* ensure xmon is enabled */
>  	xmon_init(1);
>  	debugger(get_irq_regs());
> +	if (xmon_off)
> +		xmon_init(0);
>  }

I don't think this is right.

xmon_off is only true if you boot with xmon=off on the command line.

So if you boot with CONFIG_XMON_DEFAULT=n, and nothing on the command
line, then enter xmon via sysrq, then exit, xmon will still be enabled.

cheers

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change
  2017-02-16  5:09 ` Michael Ellerman
@ 2017-02-16 10:57   ` Guilherme G. Piccoli
  2017-02-16 11:51     ` Pan Xinhui
  0 siblings, 1 reply; 10+ messages in thread
From: Guilherme G. Piccoli @ 2017-02-16 10:57 UTC (permalink / raw)
  To: Michael Ellerman, Pan Xinhui, linux-kernel, linuxppc-dev
  Cc: benh, paulus, npiggin

On 16/02/2017 03:09, Michael Ellerman wrote:
> Pan Xinhui <xinhui.pan@linux.vnet.ibm.com> writes:
> 
>> Once xmon is triggered by sysrq-x, it is enabled always afterwards even
>> if it is disabled during boot. This will cause a system reset interrut
>> fail to dump. So keep xmon in its original state after exit.
>>
>> Signed-off-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>
>> ---
>>  arch/powerpc/xmon/xmon.c | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
>> index 9c0e17c..721212f 100644
>> --- a/arch/powerpc/xmon/xmon.c
>> +++ b/arch/powerpc/xmon/xmon.c
>> @@ -76,6 +76,7 @@ static int xmon_gate;
>>  #endif /* CONFIG_SMP */
>>  
>>  static unsigned long in_xmon __read_mostly = 0;
>> +static int xmon_off = 0;
>>  
>>  static unsigned long adrs;
>>  static int size = 1;
>> @@ -3250,6 +3251,8 @@ static void sysrq_handle_xmon(int key)
>>  	/* ensure xmon is enabled */
>>  	xmon_init(1);
>>  	debugger(get_irq_regs());
>> +	if (xmon_off)
>> +		xmon_init(0);
>>  }
> 
> I don't think this is right.
> 
> xmon_off is only true if you boot with xmon=off on the command line.
> 
> So if you boot with CONFIG_XMON_DEFAULT=n, and nothing on the command
> line, then enter xmon via sysrq, then exit, xmon will still be enabled.
> 

Agreed, noticed it after some work in V2 of my patch. I'm addressing it
there, so maybe no harm in keeping this way here..

Thanks,


Guilherme



> cheers
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change
  2017-02-16 10:57   ` Guilherme G. Piccoli
@ 2017-02-16 11:51     ` Pan Xinhui
  2017-02-17  6:05       ` Michael Ellerman
  0 siblings, 1 reply; 10+ messages in thread
From: Pan Xinhui @ 2017-02-16 11:51 UTC (permalink / raw)
  To: Guilherme G. Piccoli, Michael Ellerman, Pan Xinhui, linux-kernel,
	linuxppc-dev
  Cc: benh, paulus, npiggin



在 2017/2/16 18:57, Guilherme G. Piccoli 写道:
> On 16/02/2017 03:09, Michael Ellerman wrote:
>> Pan Xinhui <xinhui.pan@linux.vnet.ibm.com> writes:
>>
>>> Once xmon is triggered by sysrq-x, it is enabled always afterwards even
>>> if it is disabled during boot. This will cause a system reset interrut
>>> fail to dump. So keep xmon in its original state after exit.
>>>
>>> Signed-off-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>
>>> ---
>>>  arch/powerpc/xmon/xmon.c | 5 ++++-
>>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
>>> index 9c0e17c..721212f 100644
>>> --- a/arch/powerpc/xmon/xmon.c
>>> +++ b/arch/powerpc/xmon/xmon.c
>>> @@ -76,6 +76,7 @@ static int xmon_gate;
>>>  #endif /* CONFIG_SMP */
>>>
>>>  static unsigned long in_xmon __read_mostly = 0;
>>> +static int xmon_off = 0;
>>>
>>>  static unsigned long adrs;
>>>  static int size = 1;
>>> @@ -3250,6 +3251,8 @@ static void sysrq_handle_xmon(int key)
>>>  	/* ensure xmon is enabled */
>>>  	xmon_init(1);
>>>  	debugger(get_irq_regs());
>>> +	if (xmon_off)
>>> +		xmon_init(0);
>>>  }
>>
>> I don't think this is right.
>>
>> xmon_off is only true if you boot with xmon=off on the command line.
>>
>> So if you boot with CONFIG_XMON_DEFAULT=n, and nothing on the command
>> line, then enter xmon via sysrq, then exit, xmon will still be enabled.
>>
>
> Agreed, noticed it after some work in V2 of my patch. I'm addressing it
> there, so maybe no harm in keeping this way here..
>
Hi, mpe
	I cooked a new patch. And as Paul mentioned in slack, we need keep xmon on too if xmon=early is set in cmdline.

hi, Guilherme
	feel free to include it in your new patchset. :)

thanks
xinhui

--------patch-----
powerpc/xmon: Fix an unexpected xmon onoff state change

Once xmon is triggered by sysrq-x, it is enabled always afterwards even
if it is disabled during boot. This will cause a system reset interrupt
fail to dump. So keep xmon in its original state after exit.

We have several ways to set xmon on or off.
1) by a build config CONFIG_XMON_DEFAULT.
2) by a boot cmdline with xmon or xmon=early or xmon=on to enable xmon
and xmon=off to disable xmon. This value will override that in step 1.
3) by a debugfs interface. We need someone implement it in the future.
And this value can override those in step 1 and 2.

Signed-off-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>
---
  arch/powerpc/xmon/xmon.c | 16 +++++++++-------
  1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 9c0e17c..f6e5c3d 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -76,6 +76,7 @@ static int xmon_gate;
  #endif /* CONFIG_SMP */
  
  static unsigned long in_xmon __read_mostly = 0;
+static int xmon_off = !IS_ENABLED(CONFIG_XMON_DEFAULT);
  
  static unsigned long adrs;
  static int size = 1;
@@ -3250,6 +3251,8 @@ static void sysrq_handle_xmon(int key)
  	/* ensure xmon is enabled */
  	xmon_init(1);
  	debugger(get_irq_regs());
+	if (xmon_off)
+		xmon_init(0);
  }
  
  static struct sysrq_key_op sysrq_xmon_op = {
@@ -3266,16 +3269,16 @@ static int __init setup_xmon_sysrq(void)
  __initcall(setup_xmon_sysrq);
  #endif /* CONFIG_MAGIC_SYSRQ */
  
-static int __initdata xmon_early, xmon_off;
+static int __initdata xmon_early;
  
  static int __init early_parse_xmon(char *p)
  {
  	if (!p || strncmp(p, "early", 5) == 0) {
  		/* just "xmon" is equivalent to "xmon=early" */
-		xmon_init(1);
  		xmon_early = 1;
+		xmon_off = 0;
  	} else if (strncmp(p, "on", 2) == 0)
-		xmon_init(1);
+		xmon_off = 0;
  	else if (strncmp(p, "off", 3) == 0)
  		xmon_off = 1;
  	else if (strncmp(p, "nobt", 4) == 0)
@@ -3289,10 +3292,9 @@ early_param("xmon", early_parse_xmon);
  
  void __init xmon_setup(void)
  {
-#ifdef CONFIG_XMON_DEFAULT
-	if (!xmon_off)
-		xmon_init(1);
-#endif
+	if (xmon_off)
+		return;
+	xmon_init(1);
  	if (xmon_early)
  		debugger(NULL);
  }
-- 
2.9.3



> Thanks,
>
>
> Guilherme
>
>
>
>> cheers
>>
>

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change
  2017-02-16 11:51     ` Pan Xinhui
@ 2017-02-17  6:05       ` Michael Ellerman
  2017-02-17  9:30         ` Pan Xinhui
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Ellerman @ 2017-02-17  6:05 UTC (permalink / raw)
  To: Pan Xinhui, Guilherme G. Piccoli, Pan Xinhui, linux-kernel, linuxppc-dev
  Cc: benh, paulus, npiggin

Pan Xinhui <xinhui@linux.vnet.ibm.com> writes:
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index 9c0e17c..f6e5c3d 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -76,6 +76,7 @@ static int xmon_gate;
>   #endif /* CONFIG_SMP */
>   
>   static unsigned long in_xmon __read_mostly = 0;
> +static int xmon_off = !IS_ENABLED(CONFIG_XMON_DEFAULT);

I think the logic would probably clearer if we invert this to become
xmon_on.

> @@ -3266,16 +3269,16 @@ static int __init setup_xmon_sysrq(void)
>   __initcall(setup_xmon_sysrq);
>   #endif /* CONFIG_MAGIC_SYSRQ */
>   
> -static int __initdata xmon_early, xmon_off;
> +static int __initdata xmon_early;
>   
>   static int __init early_parse_xmon(char *p)
>   {
>   	if (!p || strncmp(p, "early", 5) == 0) {
>   		/* just "xmon" is equivalent to "xmon=early" */
> -		xmon_init(1);
>   		xmon_early = 1;
> +		xmon_off = 0;
>   	} else if (strncmp(p, "on", 2) == 0)
> -		xmon_init(1);
> +		xmon_off = 0;

You've just changed the timing of when xmon gets enabled for the above
two cases, from here which is called very early, to xmon_setup() which
is called much later in boot.

That effectively disables xmon for most of the boot, which we do not
want to do.

cheers

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change
  2017-02-17  6:05       ` Michael Ellerman
@ 2017-02-17  9:30         ` Pan Xinhui
  2017-02-17 12:25           ` Guilherme G. Piccoli
  2017-02-20  4:46             ` Michael Ellerman
  0 siblings, 2 replies; 10+ messages in thread
From: Pan Xinhui @ 2017-02-17  9:30 UTC (permalink / raw)
  To: Michael Ellerman, Guilherme G. Piccoli, Pan Xinhui, linux-kernel,
	linuxppc-dev
  Cc: benh, paulus, npiggin



在 2017/2/17 14:05, Michael Ellerman 写道:
> Pan Xinhui <xinhui@linux.vnet.ibm.com> writes:
>> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
>> index 9c0e17c..f6e5c3d 100644
>> --- a/arch/powerpc/xmon/xmon.c
>> +++ b/arch/powerpc/xmon/xmon.c
>> @@ -76,6 +76,7 @@ static int xmon_gate;
>>   #endif /* CONFIG_SMP */
>>
>>   static unsigned long in_xmon __read_mostly = 0;
>> +static int xmon_off = !IS_ENABLED(CONFIG_XMON_DEFAULT);
>
> I think the logic would probably clearer if we invert this to become
> xmon_on.
>
yep, make sense.

>> @@ -3266,16 +3269,16 @@ static int __init setup_xmon_sysrq(void)
>>   __initcall(setup_xmon_sysrq);
>>   #endif /* CONFIG_MAGIC_SYSRQ */
>>
>> -static int __initdata xmon_early, xmon_off;
>> +static int __initdata xmon_early;
>>
>>   static int __init early_parse_xmon(char *p)
>>   {
>>   	if (!p || strncmp(p, "early", 5) == 0) {
>>   		/* just "xmon" is equivalent to "xmon=early" */
>> -		xmon_init(1);
>>   		xmon_early = 1;
>> +		xmon_off = 0;
>>   	} else if (strncmp(p, "on", 2) == 0)
>> -		xmon_init(1);
>> +		xmon_off = 0;
>
> You've just changed the timing of when xmon gets enabled for the above
> two cases, from here which is called very early, to xmon_setup() which
> is called much later in boot.
>
> That effectively disables xmon for most of the boot, which we do not
> want to do.
>
Although it is not often that kernel got stucked during boot. Yes, the behavior changed anyway. Will fix that in v3.

> cheers
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change
  2017-02-17  9:30         ` Pan Xinhui
@ 2017-02-17 12:25           ` Guilherme G. Piccoli
  2017-02-20  4:46             ` Michael Ellerman
  1 sibling, 0 replies; 10+ messages in thread
From: Guilherme G. Piccoli @ 2017-02-17 12:25 UTC (permalink / raw)
  To: Pan Xinhui, Michael Ellerman; +Cc: linux-kernel, linuxppc-dev, paulus, npiggin

On 02/17/2017 07:30 AM, Pan Xinhui wrote:
> 
> 
> 在 2017/2/17 14:05, Michael Ellerman 写道:
>> Pan Xinhui <xinhui@linux.vnet.ibm.com> writes:
>>> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
>>> index 9c0e17c..f6e5c3d 100644
>>> --- a/arch/powerpc/xmon/xmon.c
>>> +++ b/arch/powerpc/xmon/xmon.c
>>> @@ -76,6 +76,7 @@ static int xmon_gate;
>>>   #endif /* CONFIG_SMP */
>>>
>>>   static unsigned long in_xmon __read_mostly = 0;
>>> +static int xmon_off = !IS_ENABLED(CONFIG_XMON_DEFAULT);
>>
>> I think the logic would probably clearer if we invert this to become
>> xmon_on.
>>
> yep, make sense.
> 
>>> @@ -3266,16 +3269,16 @@ static int __init setup_xmon_sysrq(void)
>>>   __initcall(setup_xmon_sysrq);
>>>   #endif /* CONFIG_MAGIC_SYSRQ */
>>>
>>> -static int __initdata xmon_early, xmon_off;
>>> +static int __initdata xmon_early;
>>>
>>>   static int __init early_parse_xmon(char *p)
>>>   {
>>>   	if (!p || strncmp(p, "early", 5) == 0) {
>>>   		/* just "xmon" is equivalent to "xmon=early" */
>>> -		xmon_init(1);
>>>   		xmon_early = 1;
>>> +		xmon_off = 0;
>>>   	} else if (strncmp(p, "on", 2) == 0)
>>> -		xmon_init(1);
>>> +		xmon_off = 0;
>>
>> You've just changed the timing of when xmon gets enabled for the above
>> two cases, from here which is called very early, to xmon_setup() which
>> is called much later in boot.
>>
>> That effectively disables xmon for most of the boot, which we do not
>> want to do.
>>
> Although it is not often that kernel got stucked during boot. Yes, the behavior changed anyway. Will fix that in v3.

Pan/Michael, I'm working my patches on top of Pan's. So, I sent his V2
on my series, as patch #1.

Guess the workflow is better/easier if we can work the patches on the
series exclusively, since each time Pan's patch is changed, I need to
refactor my patches.

Pan, if possible send your V3 to me, I'll refactor my series on top of
it and send again on the list. Or if you or Michael have better
suggestions of workflow, let me know.

Thanks,


Guilherme

> 
>> cheers
>>
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change
  2017-02-17  9:30         ` Pan Xinhui
@ 2017-02-20  4:46             ` Michael Ellerman
  2017-02-20  4:46             ` Michael Ellerman
  1 sibling, 0 replies; 10+ messages in thread
From: Michael Ellerman @ 2017-02-20  4:46 UTC (permalink / raw)
  To: Pan Xinhui, Guilherme G. Piccoli, Pan Xinhui, linux-kernel, linuxppc-dev
  Cc: benh, paulus, npiggin

Pan Xinhui <xinhui@linux.vnet.ibm.com> writes:

> 在 2017/2/17 14:05, Michael Ellerman 写道:
>> Pan Xinhui <xinhui@linux.vnet.ibm.com> writes:
>>> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
>>> index 9c0e17c..f6e5c3d 100644
>>> --- a/arch/powerpc/xmon/xmon.c
>>> +++ b/arch/powerpc/xmon/xmon.c
>>> @@ -76,6 +76,7 @@ static int xmon_gate;
>>>   #endif /* CONFIG_SMP */
>>>
>>>   static unsigned long in_xmon __read_mostly = 0;
>>> +static int xmon_off = !IS_ENABLED(CONFIG_XMON_DEFAULT);
>>
>> I think the logic would probably clearer if we invert this to become
>> xmon_on.
>>
> yep, make sense.
>
>>> @@ -3266,16 +3269,16 @@ static int __init setup_xmon_sysrq(void)
>>>   __initcall(setup_xmon_sysrq);
>>>   #endif /* CONFIG_MAGIC_SYSRQ */
>>>
>>> -static int __initdata xmon_early, xmon_off;
>>> +static int __initdata xmon_early;
>>>
>>>   static int __init early_parse_xmon(char *p)
>>>   {
>>>   	if (!p || strncmp(p, "early", 5) == 0) {
>>>   		/* just "xmon" is equivalent to "xmon=early" */
>>> -		xmon_init(1);
>>>   		xmon_early = 1;
>>> +		xmon_off = 0;
>>>   	} else if (strncmp(p, "on", 2) == 0)
>>> -		xmon_init(1);
>>> +		xmon_off = 0;
>>
>> You've just changed the timing of when xmon gets enabled for the above
>> two cases, from here which is called very early, to xmon_setup() which
>> is called much later in boot.
>>
>> That effectively disables xmon for most of the boot, which we do not
>> want to do.
>>
> Although it is not often that kernel got stucked during boot.

I hope you're joking! :)

cheers

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change
@ 2017-02-20  4:46             ` Michael Ellerman
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Ellerman @ 2017-02-20  4:46 UTC (permalink / raw)
  To: Pan Xinhui, Guilherme G. Piccoli, Pan Xinhui, linux-kernel, linuxppc-dev
  Cc: benh, paulus, npiggin

Pan Xinhui <xinhui@linux.vnet.ibm.com> writes:

> =E5=9C=A8 2017/2/17 14:05, Michael Ellerman =E5=86=99=E9=81=93:
>> Pan Xinhui <xinhui@linux.vnet.ibm.com> writes:
>>> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
>>> index 9c0e17c..f6e5c3d 100644
>>> --- a/arch/powerpc/xmon/xmon.c
>>> +++ b/arch/powerpc/xmon/xmon.c
>>> @@ -76,6 +76,7 @@ static int xmon_gate;
>>>   #endif /* CONFIG_SMP */
>>>
>>>   static unsigned long in_xmon __read_mostly =3D 0;
>>> +static int xmon_off =3D !IS_ENABLED(CONFIG_XMON_DEFAULT);
>>
>> I think the logic would probably clearer if we invert this to become
>> xmon_on.
>>
> yep, make sense.
>
>>> @@ -3266,16 +3269,16 @@ static int __init setup_xmon_sysrq(void)
>>>   __initcall(setup_xmon_sysrq);
>>>   #endif /* CONFIG_MAGIC_SYSRQ */
>>>
>>> -static int __initdata xmon_early, xmon_off;
>>> +static int __initdata xmon_early;
>>>
>>>   static int __init early_parse_xmon(char *p)
>>>   {
>>>   	if (!p || strncmp(p, "early", 5) =3D=3D 0) {
>>>   		/* just "xmon" is equivalent to "xmon=3Dearly" */
>>> -		xmon_init(1);
>>>   		xmon_early =3D 1;
>>> +		xmon_off =3D 0;
>>>   	} else if (strncmp(p, "on", 2) =3D=3D 0)
>>> -		xmon_init(1);
>>> +		xmon_off =3D 0;
>>
>> You've just changed the timing of when xmon gets enabled for the above
>> two cases, from here which is called very early, to xmon_setup() which
>> is called much later in boot.
>>
>> That effectively disables xmon for most of the boot, which we do not
>> want to do.
>>
> Although it is not often that kernel got stucked during boot.

I hope you're joking! :)

cheers

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2017-02-20  4:46 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-15  7:49 [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change Pan Xinhui
2017-02-15 21:22 ` Guilherme G. Piccoli
2017-02-16  5:09 ` Michael Ellerman
2017-02-16 10:57   ` Guilherme G. Piccoli
2017-02-16 11:51     ` Pan Xinhui
2017-02-17  6:05       ` Michael Ellerman
2017-02-17  9:30         ` Pan Xinhui
2017-02-17 12:25           ` Guilherme G. Piccoli
2017-02-20  4:46           ` Michael Ellerman
2017-02-20  4:46             ` Michael Ellerman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.