linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] pstore: Adjust buffer size for compression for smaller registered buffers
@ 2013-09-12  6:50 Aruna Balakrishnaiah
  2013-09-12 16:22 ` Seiji Aguchi
  2013-09-12 17:43 ` Luck, Tony
  0 siblings, 2 replies; 4+ messages in thread
From: Aruna Balakrishnaiah @ 2013-09-12  6:50 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>
---
Changes from v1:
	Retain the cmpr = 45 for buffers ranging of size 4k - 10k. 45 seems to work.
I added an additional headroom of 3%. Revert it back to 45.

 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..57b4219 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 = 45;
+		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] 4+ messages in thread

* RE: [PATCH v2] pstore: Adjust buffer size for compression for smaller registered buffers
  2013-09-12  6:50 [PATCH v2] pstore: Adjust buffer size for compression for smaller registered buffers Aruna Balakrishnaiah
@ 2013-09-12 16:22 ` Seiji Aguchi
  2013-09-12 17:43 ` Luck, Tony
  1 sibling, 0 replies; 4+ messages in thread
From: Seiji Aguchi @ 2013-09-12 16:22 UTC (permalink / raw)
  To: Aruna Balakrishnaiah, linuxppc-dev@ozlabs.org,
	tony.luck@intel.com, linux-kernel@vger.kernel.org,
	keescook@chromium.org
  Cc: jkenisto@linux.vnet.ibm.com, mahesh@linux.vnet.ibm.com,
	ccross@android.com, cbouatmailru@gmail.com

ZWZpdmFycyB3b3JrcyBmaW5lIHdpdGggdGhpcyB2MiBwYXRjaC4NCg0KVGVzdGVkLWJ5OiBTZWlq
aSBBZ3VjaGkgPHNlaWppLmFndWNoaUBoZHMuY29tPg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn
ZS0tLS0tDQo+IEZyb206IEFydW5hIEJhbGFrcmlzaG5haWFoIFttYWlsdG86YXJ1bmFAbGludXgu
dm5ldC5pYm0uY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDEyLCAyMDEzIDI6NTEg
QU0NCj4gVG86IGxpbnV4cHBjLWRldkBvemxhYnMub3JnOyB0b255Lmx1Y2tAaW50ZWwuY29tOyBT
ZWlqaSBBZ3VjaGk7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGtlZXNjb29rQGNocm9t
aXVtLm9yZw0KPiBDYzogamtlbmlzdG9AbGludXgudm5ldC5pYm0uY29tOyBtYWhlc2hAbGludXgu
dm5ldC5pYm0uY29tOyBjYm91YXRtYWlscnVAZ21haWwuY29tOyBhbmFudGhAaW4uaWJtLmNvbTsg
Y2Nyb3NzQGFuZHJvaWQuY29tDQo+IFN1YmplY3Q6IFtQQVRDSCB2Ml0gcHN0b3JlOiBBZGp1c3Qg
YnVmZmVyIHNpemUgZm9yIGNvbXByZXNzaW9uIGZvciBzbWFsbGVyIHJlZ2lzdGVyZWQgYnVmZmVy
cw0KPiANCj4gV2hlbiBiYWNrZW5kcyAoZXg6IGVmaXZhcnMpIGhhdmUgc21hbGxlciByZWdpc3Rl
cmVkIGJ1ZmZlcnMsIHRoZSBiaWdfb29wc19idWYNCj4gaXMgcXVpdGUgdG9vIGJpZyBmb3IgdGhl
bSBhcyBudW1iZXIgb2YgcmVwZWF0ZWQgb2NjdXJlbmNlcyBpbiB0aGUgdGV4dCBjYXB0dXJlZA0K
PiB3aWxsIGJlIGxlc3MuIFBhdGNoIHRha2VzIGNhcmUgb2YgYWRqdXN0aW5nIHRoZSBidWZmZXIg
c2l6ZSBiYXNlZCBvbiB0aGUNCj4gcmVnaXN0ZXJlZCBidWZmZXIgc2l6ZS4gY21wciB2YWx1ZXMg
aGFzIGJlZW4gYXJyaXZlZCBhZnRlciBkb2luZyBleHBlcmltZW50cyB3aXRoDQo+IHBsYWluIHRl
eHQgZm9yIGJ1ZmZlcnMgb2Ygc2l6ZSAxayAtIDRrIChTbWFsbGVyIHRoZSBidWZmZXIgc2l6ZSBy
ZXBlYXRlZCBvY2N1cmVuY2UNCj4gd2lsbCBiZSBsZXNzKSBhbmQgd2l0aCBzYW1wbGUgY3Jhc2gg
bG9nIGZvciBidWZmZXJzIHJhbmdpbmcgZnJvbSA0ayAtIDEway4NCj4gDQo+IFJlcG9ydGVkLWJ5
OiBTZWlqaSBBZ3VjaGkgPHNlaWppLmFndWNoaUBoZHMuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBB
cnVuYSBCYWxha3Jpc2huYWlhaCA8YXJ1bmFAbGludXgudm5ldC5pYm0uY29tPg0KPiAtLS0NCj4g
Q2hhbmdlcyBmcm9tIHYxOg0KPiAJUmV0YWluIHRoZSBjbXByID0gNDUgZm9yIGJ1ZmZlcnMgcmFu
Z2luZyBvZiBzaXplIDRrIC0gMTBrLiA0NSBzZWVtcyB0byB3b3JrLg0KPiBJIGFkZGVkIGFuIGFk
ZGl0aW9uYWwgaGVhZHJvb20gb2YgMyUuIFJldmVydCBpdCBiYWNrIHRvIDQ1Lg0KPiANCj4gIGZz
L3BzdG9yZS9wbGF0Zm9ybS5jIHwgICAyMyArKysrKysrKysrKysrKysrKysrKysrLQ0KPiAgMSBm
aWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gDQo+IGRpZmYg
LS1naXQgYS9mcy9wc3RvcmUvcGxhdGZvcm0uYyBiL2ZzL3BzdG9yZS9wbGF0Zm9ybS5jDQo+IGlu
ZGV4IDRmZmI3YWIuLjU3YjQyMTkgMTAwNjQ0DQo+IC0tLSBhL2ZzL3BzdG9yZS9wbGF0Zm9ybS5j
DQo+ICsrKyBiL2ZzL3BzdG9yZS9wbGF0Zm9ybS5jDQo+IEBAIC0xOTUsOCArMTk1LDI5IEBAIGVy
cm9yOg0KPiAgc3RhdGljIHZvaWQgYWxsb2NhdGVfYnVmX2Zvcl9jb21wcmVzc2lvbih2b2lkKQ0K
PiAgew0KPiAgCXNpemVfdCBzaXplOw0KPiArCXNpemVfdCBjbXByOw0KPiArDQo+ICsJc3dpdGNo
IChwc2luZm8tPmJ1ZnNpemUpIHsNCj4gKwkvKiBidWZmZXIgcmFuZ2UgZm9yIGVmaXZhcnMgKi8N
Cj4gKwljYXNlIDEwMDAgLi4uIDIwMDA6DQo+ICsJCWNtcHIgPSA1NjsNCj4gKwkJYnJlYWs7DQo+
ICsJY2FzZSAyMDAxIC4uLiAzMDAwOg0KPiArCQljbXByID0gNTQ7DQo+ICsJCWJyZWFrOw0KPiAr
CWNhc2UgMzAwMSAuLi4gMzk5OToNCj4gKwkJY21wciA9IDUyOw0KPiArCQlicmVhazsNCj4gKwkv
KiBidWZmZXIgcmFuZ2UgZm9yIG52cmFtLCBlcnN0ICovDQo+ICsJY2FzZSA0MDAwIC4uLiAxMDAw
MDoNCj4gKwkJY21wciA9IDQ1Ow0KPiArCQlicmVhazsNCj4gKwlkZWZhdWx0Og0KPiArCQljbXBy
ID0gNjA7DQo+ICsJCWJyZWFrOw0KPiArCX0NCj4gDQo+IC0JYmlnX29vcHNfYnVmX3N6ID0gKHBz
aW5mby0+YnVmc2l6ZSAqIDEwMCkgLyA0NTsNCj4gKwliaWdfb29wc19idWZfc3ogPSAocHNpbmZv
LT5idWZzaXplICogMTAwKSAvIGNtcHI7DQo+ICAJYmlnX29vcHNfYnVmID0ga21hbGxvYyhiaWdf
b29wc19idWZfc3osIEdGUF9LRVJORUwpOw0KPiAgCWlmIChiaWdfb29wc19idWYpIHsNCj4gIAkJ
c2l6ZSA9IG1heCh6bGliX2RlZmxhdGVfd29ya3NwYWNlc2l6ZShXSU5ET1dfQklUUywgTUVNX0xF
VkVMKSwNCg0K

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

* RE: [PATCH v2] pstore: Adjust buffer size for compression for smaller registered buffers
  2013-09-12  6:50 [PATCH v2] pstore: Adjust buffer size for compression for smaller registered buffers Aruna Balakrishnaiah
  2013-09-12 16:22 ` Seiji Aguchi
@ 2013-09-12 17:43 ` Luck, Tony
  2013-09-12 19:22   ` Aruna Balakrishnaiah
  1 sibling, 1 reply; 4+ messages in thread
From: Luck, Tony @ 2013-09-12 17:43 UTC (permalink / raw)
  To: Aruna Balakrishnaiah, linuxppc-dev@ozlabs.org,
	seiji.aguchi@hds.com, linux-kernel@vger.kernel.org,
	keescook@chromium.org
  Cc: jkenisto@linux.vnet.ibm.com, mahesh@linux.vnet.ibm.com,
	ccross@android.com, cbouatmailru@gmail.com

KwlkZWZhdWx0Og0KKwkJY21wciA9IDYwOw0KKwkJYnJlYWs7DQorCX0NCiANCklzIHRoaXMgdGhl
IHJpZ2h0ICJkZWZhdWx0Ij8gIEl0IG1heSBiZSBhIGdvb2QgY2hvaWNlIGZvciBhIGJhY2tlbmQg
d2l0aCBhIHJlYWxseQ0KdGlueSBidWZmZXIgKDEgLi4uIDk5OSkuICBCdXQgbGVzcyBnb29kIGZv
ciBhICh0aGVvcmV0aWNhbCkgYmFja2VuZCB3aXRoIGEgbGFyZ2VyDQpidWZmZXIgKDEwMDAxIC4u
LiBpbmZpbml0eSBhbmQgYmV5b25kKS4gIFdoaWNoIGFyZSB5b3UgdHJ5aW5nIHRvIGNhdGNoIGhl
cmU/DQoNCi1Ub255DQoNCg==

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

* Re: [PATCH v2] pstore: Adjust buffer size for compression for smaller registered buffers
  2013-09-12 17:43 ` Luck, Tony
@ 2013-09-12 19:22   ` Aruna Balakrishnaiah
  0 siblings, 0 replies; 4+ messages in thread
From: Aruna Balakrishnaiah @ 2013-09-12 19:22 UTC (permalink / raw)
  To: Luck, Tony
  Cc: jkenisto@linux.vnet.ibm.com, keescook@chromium.org,
	mahesh@linux.vnet.ibm.com, cbouatmailru@gmail.com,
	linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org,
	ccross@android.com, seiji.aguchi@hds.com

On Thursday 12 September 2013 11:13 PM, Luck, Tony wrote:
> +	default:
> +		cmpr = 60;
> +		break;
> +	}
>
> Is this the right "default"?  It may be a good choice for a backend with a really
> tiny buffer (1 ... 999).  But less good for a (theoretical) backend with a larger
> buffer (10001 ... infinity and beyond).  Which are you trying to catch here?

Trying to catch lower buffers and also tried till 23k ( 10k * 100/45) of text with a
sample crash logit achieved a good compression of 25%. Since the upper limit is 
not known
and compression behavior is not tested above 10k chose to keep a higher default 
of 60.

> -Tony
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
>

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

end of thread, other threads:[~2013-09-12 19:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-12  6:50 [PATCH v2] pstore: Adjust buffer size for compression for smaller registered buffers Aruna Balakrishnaiah
2013-09-12 16:22 ` Seiji Aguchi
2013-09-12 17:43 ` Luck, Tony
2013-09-12 19:22   ` Aruna Balakrishnaiah

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).