LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] pstore: Adjust buffer size for compression for smaller registered buffers
@ 2013-09-11 12:07 Aruna Balakrishnaiah
  2013-09-11 12:07 ` [PATCH 2/3] pstore: Use zlib_inflateInit2 instead of zlib_inflateInit Aruna Balakrishnaiah
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Aruna Balakrishnaiah @ 2013-09-11 12:07 UTC (permalink / raw)
  To: linuxppc-dev, tony.luck, seiji.aguchi, linux-kernel, keescook
  Cc: jkenisto, mahesh, ccross, cbouatmailru

When backends (ex: efivars) have smaller registered buffers, the big_oops_buf
is quite too big for them as number of repeated occurences in the text captured
will be less. Patch takes care of adjusting the buffer size based on the
registered buffer size. cmpr values has been arrived after doing experiments with
plain text for buffers of size 1k - 4k (Smaller the buffer size repeated occurence
will be less) and with sample crash log for buffers ranging from 4k - 10k.

Reported-by: Seiji Aguchi <seiji.aguchi@hds.com>
Signed-off-by: Aruna Balakrishnaiah <aruna@linux.vnet.ibm.com>
---
 fs/pstore/platform.c |   23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c
index 4ffb7ab..4efaa75 100644
--- a/fs/pstore/platform.c
+++ b/fs/pstore/platform.c
@@ -195,8 +195,29 @@ error:
 static void allocate_buf_for_compression(void)
 {
 	size_t size;
+	size_t cmpr;
+
+	switch (psinfo->bufsize) {
+	/* buffer range for efivars */
+	case 1000 ... 2000:
+		cmpr = 56;
+		break;
+	case 2001 ... 3000:
+		cmpr = 54;
+		break;
+	case 3001 ... 3999:
+		cmpr = 52;
+		break;
+	/* buffer range for nvram, erst */
+	case 4000 ... 10000:
+		cmpr = 48;
+		break;
+	default:
+		cmpr = 60;
+		break;
+	}
 
-	big_oops_buf_sz = (psinfo->bufsize * 100) / 45;
+	big_oops_buf_sz = (psinfo->bufsize * 100) / cmpr;
 	big_oops_buf = kmalloc(big_oops_buf_sz, GFP_KERNEL);
 	if (big_oops_buf) {
 		size = max(zlib_deflate_workspacesize(WINDOW_BITS, MEM_LEVEL),

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-09-11 18:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-11 12:07 [PATCH 1/3] pstore: Adjust buffer size for compression for smaller registered buffers Aruna Balakrishnaiah
2013-09-11 12:07 ` [PATCH 2/3] pstore: Use zlib_inflateInit2 instead of zlib_inflateInit Aruna Balakrishnaiah
2013-09-11 12:07 ` [PATCH 3/3] pstore: Remove the messages related to compression failure Aruna Balakrishnaiah
2013-09-11 18:34 ` [PATCH 1/3] pstore: Adjust buffer size for compression for smaller registered buffers Luck, Tony
2013-09-11 18:57   ` Seiji Aguchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox