pstore: Add persistent function tracing
With this support kernel can save function call chain log into a persistent ram buffer that can be decoded and dumped after reboot through pstore filesystem. It can be used to determine what function was last called before a reset or panic. We store the log in a binary format and then decode it at read time. p.s. Mostly the code comes from trace_persistent.c driver found in the Android git tree, written by Colin Cross <ccross@android.com> (according to sign-off history). I reworked the driver a little bit, and ported it to pstore. Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
897dba0274
commit
060287b8c4
@@ -30,6 +30,7 @@ enum pstore_type_id {
|
||||
PSTORE_TYPE_DMESG = 0,
|
||||
PSTORE_TYPE_MCE = 1,
|
||||
PSTORE_TYPE_CONSOLE = 2,
|
||||
PSTORE_TYPE_FTRACE = 3,
|
||||
PSTORE_TYPE_UNKNOWN = 255
|
||||
};
|
||||
|
||||
@@ -57,6 +58,14 @@ struct pstore_info {
|
||||
void *data;
|
||||
};
|
||||
|
||||
|
||||
#ifdef CONFIG_PSTORE_FTRACE
|
||||
extern void pstore_ftrace_call(unsigned long ip, unsigned long parent_ip);
|
||||
#else
|
||||
static inline void pstore_ftrace_call(unsigned long ip, unsigned long parent_ip)
|
||||
{ }
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PSTORE
|
||||
extern int pstore_register(struct pstore_info *);
|
||||
#else
|
||||
|
Reference in New Issue
Block a user