Saving the kernel log accross boots

2009-06-25 Thread Martin Meuli

Hi All

In case of a crash we would like to save the kernel log and retrieve it in  
the next boot.
There are already several suggestions on how to do it on this and other  
lists.

(Kernel crashing and log buffers: Robin Getz)
Unfortunately we don't have extra SRAM to use for it. We need to do it in  
the 'normal' RAM.


ARCH=ARM

What we did:
- modify kernel/printk.c: use  
__attribute__((__section__(".bss.kringbuf"... to put the log related stuf  
into a separate section
- modify the linker script to link .bss.kringbuf at the start of the .bss  
section
- modify arch/arm/kernel/head-common.S to exclude the new section from  
being nulled (if it was a watchdog restart)

- modify kernel/printk.c to use cach_flush after prink
- make sure the bootloader does not overwrite that memory

This seems to work.
After a crash we get the messages from the new boot and the last crash.
It seems that the decompress code is using memory at the end of the kernel  
and destroys the log. So we have to use the bootloader to decompress the  
image into RAM.


Before digging any deeper I would like to know if someone as a better  
(more general) idea.


Regards, Martin
--
To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Saving the kernel log accross boots

2009-06-25 Thread Bill Gatliff
Martin Meuli wrote:
>
> Before digging any deeper I would like to know if someone as a better
> (more general) idea.

Could you stuff the output into an MTD device?

What about netconsole, or putting the console on a serial port?  Then
you could send the log out before and up to the point the crash happens.


--
To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Saving the kernel log accross boots

2009-06-25 Thread Wolfram Sang

> > Before digging any deeper I would like to know if someone as a better
> > (more general) idea.
> 
> Could you stuff the output into an MTD device?

For that, see CONFIG_MTD_OOPS.

Regards,

   Wolfram

-- 
Pengutronix e.K.   | Wolfram Sang|
Industrial Linux Solutions | http://www.pengutronix.de/  |


signature.asc
Description: Digital signature


Re: Saving the kernel log accross boots

2009-06-25 Thread Marco
Martin Meuli wrote:
> Hi All
> 
> In case of a crash we would like to save the kernel log and retrieve it
> in the next boot.
> There are already several suggestions on how to do it on this and other
> lists.
> (Kernel crashing and log buffers: Robin Getz)
> Unfortunately we don't have extra SRAM to use for it. We need to do it
> in the 'normal' RAM.
> 
> ARCH=ARM
> 
> What we did:
> - modify kernel/printk.c: use
> __attribute__((__section__(".bss.kringbuf"... to put the log related
> stuf into a separate section
> - modify the linker script to link .bss.kringbuf at the start of the
> .bss section
> - modify arch/arm/kernel/head-common.S to exclude the new section from
> being nulled (if it was a watchdog restart)
> - modify kernel/printk.c to use cach_flush after prink
> - make sure the bootloader does not overwrite that memory
> 
> This seems to work.
> After a crash we get the messages from the new boot and the last crash.
> It seems that the decompress code is using memory at the end of the
> kernel and destroys the log. So we have to use the bootloader to
> decompress the image into RAM.
> 
> Before digging any deeper I would like to know if someone as a better
> (more general) idea.
> 
> Regards, Martin

I submitted for a review a new filesystem for 2.6.30 called pramfs that
it can be useful for your case. You could use a little piece of ram to
store the log.

Marco
--
To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Saving the kernel log accross boots

2009-06-26 Thread Martin Meuli
On Thu, 25 Jun 2009 17:29:54 +0200, Wolfram Sang   
wrote:





> Before digging any deeper I would like to know if someone as a better
> (more general) idea.

Could you stuff the output into an MTD device?


For that, see CONFIG_MTD_OOPS.

Thak's looks great.
Right now we have a watchdog without OOPS.


Regards,

   Wolfram





--
MM
--
To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html