Re: [PATCH 2/2] powerpc: Show PAGE_SIZE in __die() output
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
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
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
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