Re: [PATCH 2/2] powerpc: Show PAGE_SIZE in __die() output

2019-01-09 Thread Michael Ellerman
Christophe Leroy  writes:
> Le 08/01/2019 à 13:21, Christophe Leroy a écrit :
>> Le 08/01/2019 à 13:05, Michael Ellerman a écrit :
>>> The page size the kernel is built with is useful info when debugging a
>>> crash, so add it to the output in __die().
>>>
>>> Result looks like eg:
>>>
>>>    kernel BUG at drivers/misc/lkdtm/bugs.c:63!
>>>    Oops: Exception in kernel mode, sig: 5 [#1]
>>>    LE PAGE_SIZE=64K SMP NR_CPUS=2048 NUMA pSeries
>>>    Modules linked in: vmx_crypto kvm binfmt_misc ip_tables
>>>
>>> Signed-off-by: Michael Ellerman 
>>> ---
>>>   arch/powerpc/kernel/traps.c | 12 
>>>   1 file changed, 12 insertions(+)
>>>
>>> diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
>>> index 431a86d3f772..fc972e4eee5f 100644
>>> --- a/arch/powerpc/kernel/traps.c
>>> +++ b/arch/powerpc/kernel/traps.c
>>> @@ -268,6 +268,18 @@ static int __die(const char *str, struct pt_regs 
>>> *regs, long err)
>>>   else
>>>   seq_buf_puts(, "BE ");
>>> +    seq_buf_puts(, "PAGE_SIZE=");
>>> +    if (IS_ENABLED(CONFIG_PPC_4K_PAGES))
>>> +    seq_buf_puts(, "4K ");
>>> +    else if (IS_ENABLED(CONFIG_PPC_16K_PAGES))
>>> +    seq_buf_puts(, "16K ");
>>> +    else if (IS_ENABLED(CONFIG_PPC_64K_PAGES))
>>> +    seq_buf_puts(, "64K ");
>>> +    else if (IS_ENABLED(CONFIG_PPC_256K_PAGES))
>>> +    seq_buf_puts(, "256K ");
>> 
>> Can't we build all the above at once using PAGE_SHIFT ?
>> 
>> Something like (untested):
>> 
>> "%dK ", 1 << (PAGE_SHIFT - 10)
>
> Or even simplier:
>
> "%dK ", PAGE_SIZE / 1024

Yep, good point.

Clearly I have forgotten how to program over the break (if I ever knew).

cheers


Re: [PATCH 2/2] powerpc: Show PAGE_SIZE in __die() output

2019-01-08 Thread Christophe Leroy




Le 08/01/2019 à 13:21, Christophe Leroy a écrit :



Le 08/01/2019 à 13:05, Michael Ellerman a écrit :

The page size the kernel is built with is useful info when debugging a
crash, so add it to the output in __die().

Result looks like eg:

   kernel BUG at drivers/misc/lkdtm/bugs.c:63!
   Oops: Exception in kernel mode, sig: 5 [#1]
   LE PAGE_SIZE=64K SMP NR_CPUS=2048 NUMA pSeries
   Modules linked in: vmx_crypto kvm binfmt_misc ip_tables

Signed-off-by: Michael Ellerman 
---
  arch/powerpc/kernel/traps.c | 12 
  1 file changed, 12 insertions(+)

diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index 431a86d3f772..fc972e4eee5f 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -268,6 +268,18 @@ static int __die(const char *str, struct pt_regs 
*regs, long err)

  else
  seq_buf_puts(, "BE ");
+    seq_buf_puts(, "PAGE_SIZE=");
+    if (IS_ENABLED(CONFIG_PPC_4K_PAGES))
+    seq_buf_puts(, "4K ");
+    else if (IS_ENABLED(CONFIG_PPC_16K_PAGES))
+    seq_buf_puts(, "16K ");
+    else if (IS_ENABLED(CONFIG_PPC_64K_PAGES))
+    seq_buf_puts(, "64K ");
+    else if (IS_ENABLED(CONFIG_PPC_256K_PAGES))
+    seq_buf_puts(, "256K ");


Can't we build all the above at once using PAGE_SHIFT ?

Something like (untested):

"%dK ", 1 << (PAGE_SHIFT - 10)


Or even simplier:

"%dK ", PAGE_SIZE / 1024

Christophe




Christophe


+    else
+    BUILD_BUG_ON(1);
+
  if (IS_ENABLED(CONFIG_PREEMPT))
  seq_buf_puts(, "PREEMPT ");



Re: [PATCH 2/2] powerpc: Show PAGE_SIZE in __die() output

2019-01-08 Thread Christophe Leroy




Le 08/01/2019 à 13:05, Michael Ellerman a écrit :

The page size the kernel is built with is useful info when debugging a
crash, so add it to the output in __die().

Result looks like eg:

   kernel BUG at drivers/misc/lkdtm/bugs.c:63!
   Oops: Exception in kernel mode, sig: 5 [#1]
   LE PAGE_SIZE=64K SMP NR_CPUS=2048 NUMA pSeries
   Modules linked in: vmx_crypto kvm binfmt_misc ip_tables

Signed-off-by: Michael Ellerman 
---
  arch/powerpc/kernel/traps.c | 12 
  1 file changed, 12 insertions(+)

diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index 431a86d3f772..fc972e4eee5f 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -268,6 +268,18 @@ static int __die(const char *str, struct pt_regs *regs, 
long err)
else
seq_buf_puts(, "BE ");
  
+	seq_buf_puts(, "PAGE_SIZE=");

+   if (IS_ENABLED(CONFIG_PPC_4K_PAGES))
+   seq_buf_puts(, "4K ");
+   else if (IS_ENABLED(CONFIG_PPC_16K_PAGES))
+   seq_buf_puts(, "16K ");
+   else if (IS_ENABLED(CONFIG_PPC_64K_PAGES))
+   seq_buf_puts(, "64K ");
+   else if (IS_ENABLED(CONFIG_PPC_256K_PAGES))
+   seq_buf_puts(, "256K ");


Can't we build all the above at once using PAGE_SHIFT ?

Something like (untested):

"%dK ", 1 << (PAGE_SHIFT - 10)

Christophe


+   else
+   BUILD_BUG_ON(1);
+
if (IS_ENABLED(CONFIG_PREEMPT))
seq_buf_puts(, "PREEMPT ");
  



[PATCH 2/2] powerpc: Show PAGE_SIZE in __die() output

2019-01-08 Thread Michael Ellerman
The page size the kernel is built with is useful info when debugging a
crash, so add it to the output in __die().

Result looks like eg:

  kernel BUG at drivers/misc/lkdtm/bugs.c:63!
  Oops: Exception in kernel mode, sig: 5 [#1]
  LE PAGE_SIZE=64K SMP NR_CPUS=2048 NUMA pSeries
  Modules linked in: vmx_crypto kvm binfmt_misc ip_tables

Signed-off-by: Michael Ellerman 
---
 arch/powerpc/kernel/traps.c | 12 
 1 file changed, 12 insertions(+)

diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index 431a86d3f772..fc972e4eee5f 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -268,6 +268,18 @@ static int __die(const char *str, struct pt_regs *regs, 
long err)
else
seq_buf_puts(, "BE ");
 
+   seq_buf_puts(, "PAGE_SIZE=");
+   if (IS_ENABLED(CONFIG_PPC_4K_PAGES))
+   seq_buf_puts(, "4K ");
+   else if (IS_ENABLED(CONFIG_PPC_16K_PAGES))
+   seq_buf_puts(, "16K ");
+   else if (IS_ENABLED(CONFIG_PPC_64K_PAGES))
+   seq_buf_puts(, "64K ");
+   else if (IS_ENABLED(CONFIG_PPC_256K_PAGES))
+   seq_buf_puts(, "256K ");
+   else
+   BUILD_BUG_ON(1);
+
if (IS_ENABLED(CONFIG_PREEMPT))
seq_buf_puts(, "PREEMPT ");
 
-- 
2.20.1