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 <m...@ellerman.id.au>
---
  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(&s, "BE ");
+    seq_buf_puts(&s, "PAGE_SIZE=");
+    if (IS_ENABLED(CONFIG_PPC_4K_PAGES))
+        seq_buf_puts(&s, "4K ");
+    else if (IS_ENABLED(CONFIG_PPC_16K_PAGES))
+        seq_buf_puts(&s, "16K ");
+    else if (IS_ENABLED(CONFIG_PPC_64K_PAGES))
+        seq_buf_puts(&s, "64K ");
+    else if (IS_ENABLED(CONFIG_PPC_256K_PAGES))
+        seq_buf_puts(&s, "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(&s, "PREEMPT ");

Reply via email to