The patchset takes care of compressing oops messages while writing to NVRAM,
so that more oops data can be captured in the given space.
big_oops_buf (2.22 * oops_data_sz) is allocated for compression.
oops_data_sz is oops header size less of oops partition size.
Pstore will internally call kmsg_dump to capture messages from printk
buffer. While returning the data to nvram it adds is own header.
Register pstore with big_oops_buf.
In case compression fails, copy header added by pstore and
last oops_data_sz bytes (recent messages) of big_oops_buf to
nvram for which we need to know header size.
patch 01/03 will add a function in pstore to return the header size.
pstore read callback of nvram will read the compressed data and return the
decompressed data so that dmesg file (under /dev/pstore) is readable.
In case decompression fails, instead of having the compressed data (junk) in the
dmesg file it will skip and continue reading other partitions. This results in
absence of dmesg file but will still have files relating to other parititons.
Aruna Balakrishnaiah (3):
Retreive header size from pstore.
powerpc/pseries: Re-organise the oops compression code
powerpc/pseries: Support compression of oops text via pstore
arch/powerpc/platforms/pseries/nvram.c | 236 +++++++++++++++++++++++---------
fs/pstore/platform.c | 7 +
include/linux/pstore.h | 6 +
3 files changed, 182 insertions(+), 67 deletions(-)