[PATCH 1/3] ARM: dts: rainier: Add reserved memory for ramoops

Andrew Jeffery andrew at aj.id.au
Tue Oct 6 15:29:44 AEDT 2020



On Tue, 6 Oct 2020, at 14:55, Milton Miller II wrote:
> On October 5, 2020 about 10:23 in some timezone, Joel Stanley wrote:
> >Subject: [EXTERNAL] Re: [PATCH 1/3] ARM: dts: rainier: Add reserved
> >memory for ramoops
> >
> >On Fri, 2 Oct 2020 at 06:35, Andrew Jeffery <andrew at aj.id.au> wrote:
> >>
> >> Reserve a 1MiB region of memory to record kmsg dumps and console
> >state
> >> into 16kiB ring-buffer slots. The sizing allows for up to 32 dumps
> >to be
> >> captured and read out.
> >>
> >> Signed-off-by: Andrew Jeffery <andrew at aj.id.au>
> >> ---
> >>  arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts | 8 ++++++++
> >>  1 file changed, 8 insertions(+)
> >>
> >> diff --git a/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts
> >b/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts
> >> index e6f422edf454..46a0e95049fd 100644
> >> --- a/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts
> >> +++ b/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts
> >> @@ -47,6 +47,14 @@ reserved-memory {
> >>                 #size-cells = <1>;
> >>                 ranges;
> >>
> >> +               ramoops at b7f00000 {
> >> +                       compatible = "ramoops";
> >> +                       reg = <0xb7f00000 0x100000>;
> >> +                       record-size = <0x4000>;
> >> +                       console-size = <0x4000>;
> >
> >This is conserative. We've got plenty of space, how about we make it
> >bigger?
> >
> >$ git grep console-size *.dts* | grep -Po "0x([0-9]+)" | xargs printf
> >"%x\n" | sort -n
> >8000
> >8000
> >10000
> >10000
> >20000
> >20000
> >20000
> >20000
> >20000
> >60000
> >100000
> >
> >The median is 128KB, which sounds reasonable.
> 
> How big is the dmesg after we are booted?   How big is the default 
> kernel buffer for 2 cpus (the kernel config has a base size, but 
> also a dynamic size with a base + n * cpu min at boot).
> 
> Having the console space larger than printk buffer will not help.
> 
> We could config the buffer up if we are not capturing enough of a 
> boot and some runtime.
> 
> >
> >$ git grep record-size *.dts* | grep -Po "0x([0-9]+)" | xargs printf
> >"%x\n"
> >20000
> >400
> >400
> >20000
> >20000
> >20000
> >10000
> >10000
> >10000
> >10000
> >20000
> >
> >64KB is the median record size.
> >
> This probably affects the effective compression, assuming
> each block is a seperate compression input.
> 
> >> +                       pmsg-size = <0x4000>;
> >
> >Do we want to add ftrace too?
> >
> >Should we also add max-reason = KMSG_DUMP_EMERG?
> >
> 
> The admin guide lists KMSG_DUMP_OOPS and KMSG_DUMP_PANIC ?
> https://www.kernel.org/doc/html/latest/admin-guide/ramoops.html
> 
> We could have something monitoring for OOPS , copying to a log and 
> then unlinking the pstore after committed.

systemd-pstore already does this for us, no further configuration required.


More information about the openbmc mailing list