Subject: Re: [PATCH 00/11] Add compression support to pstore

From: Aruna Balakrishnaiah <[email-masked]>
Date: Thu, 01 Aug 2013 16:10:02 +0530

Hi Tony/Kees,

     Could you please review and let me know your comments!!

Regards,
Aruna

On Monday 15 July 2013 10:25 PM, Aruna Balakrishnaiah wrote:
> The patchset adds compression support to pstore.
>
> As the non-volatile storage space is limited, adding compression
> support results in capturing more data within limited space.
>
> Size of dmesg file in a powerpc/pseries box with nvram's
> oops partition (to store oops-log) size 4k:
>
> Without compression:
> dmesg-nvram-1:  ~ 4k (3980)
> WIth compression:
> dmesg-nvram-1: ~8.8k (8844)
>
> Writing to persistent store
> ----------------------------
> Compression will reduce the size of oops/panic report to atmost 45% of its
> original size. (Based on experiments done while providing compression support
> to nvram by Jim keniston).
> Hence buffer of size ( (100/45 approx 2.22) *<registered_buffer> is allocated).
> The compression parameters selected based on some experiments:
> compression_level = 6, window_bits = 12, memory_level = 4  which achieved a
> significant compression of 12 % of uncompressed buffer size tried upto 36k.
> Data is compressed from the bigger buffer to registered buffer which is
> returned to backends.
> Pstore will indicate that with a flag 'compressed' which is passed to backends.
> Using this flag, backends will add a flag in their header to indicate the data
> is compressed or not while writing to persistent store.
>
>
> Reading from persistent store
> -----------------------------
> When backends read data from persistent store it will use the flag added by it
> while writing to persistent store to determine if the data is compressed or not.
> Using the information, it will set the flag in pstore's read call back.
> Pstore will decompress the data based on the flag and writes decompressed data
> to the file.
>
> Test results:
>
> Have tested the patches on powerpc/pseries.
> On Intel have only tested with erst backend.
>
> Efi-pstore and RAM persistent buffer requires testing.
>
>
> ---
>
> Aruna Balakrishnaiah (11):
>        powerpc/pseries: Remove (de)compression in nvram with pstore enabled
>        pstore: Add new argument 'compressed' in pstore write callback
>        pstore/Kconfig: Select ZLIB_DEFLATE and ZLIB_INFLATE when PSTORE is selected
>        pstore: Add compression support to pstore
>        pstore: Introduce new argument 'compressed' in the read callback
>        pstore: Provide decompression support to pstore
>        pstore: Add file extension to pstore file if compressed
>        powerpc/pseries: Read and write to the 'compressed' flag of pstore
>        erst: Read and write to the 'compressed' flag of pstore
>        efi-pstore: Read and write to the 'compressed' flag of pstore
>        pstore/ram: Read and write to the 'compressed' flag of pstore
>
>
>   arch/powerpc/platforms/pseries/nvram.c |  131 ++++----------------
>   drivers/acpi/apei/erst.c               |   21 ++-
>   drivers/firmware/efi/efi-pstore.c      |   27 +++-
>   fs/pstore/Kconfig                      |    2
>   fs/pstore/inode.c                      |    9 +
>   fs/pstore/internal.h                   |    5 -
>   fs/pstore/platform.c                   |  214 ++++++++++++++++++++++++++++++--
>   fs/pstore/ram.c                        |   41 +++++-
>   include/linux/pstore.h                 |    6 -
>   9 files changed, 307 insertions(+), 149 deletions(-)
>