summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Salyzyn <salyzyn@google.com>2015-10-12 13:45:51 -0700
committerMark Salyzyn <salyzyn@google.com>2015-11-03 16:26:06 -0800
commit653316adf1a4c5dbffb832969ff2f8d88db270a7 (patch)
treea66318ba325acc4f5f3eea3c5dfff673b5cc3ef5
parent69406d904abffcfd5addf14dc96584f73ab04ff5 (diff)
downloadsystem_core-653316adf1a4c5dbffb832969ff2f8d88db270a7.zip
system_core-653316adf1a4c5dbffb832969ff2f8d88db270a7.tar.gz
system_core-653316adf1a4c5dbffb832969ff2f8d88db270a7.tar.bz2
logd: pruning time horizon
Estimate a time horizon of ten fold for worst UID pruning Bug: 25453210 Bug: 24782000 Change-Id: I7118deb6d42531c68ed2ac2a59c57b0580b942cc
-rw-r--r--logd/LogBuffer.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/logd/LogBuffer.cpp b/logd/LogBuffer.cpp
index 559fa2e..d72a78c 100644
--- a/logd/LogBuffer.cpp
+++ b/logd/LogBuffer.cpp
@@ -435,7 +435,10 @@ void LogBuffer::prune(log_id_t id, unsigned long pruneRows, uid_t caller_uid) {
worst_sizes = sorted[0]->getSizes();
// Calculate threshold as 12.5% of available storage
size_t threshold = log_buffer_size(id) / 8;
- if (worst_sizes > threshold) {
+ if ((worst_sizes > threshold)
+ // Allow time horizon to extend roughly tenfold, assume
+ // average entry length is 100 characters.
+ && (worst_sizes > (10 * sorted[0]->getDropped()))) {
worst = sorted[0]->getKey();
second_worst_sizes = sorted[1]->getSizes();
if (second_worst_sizes < threshold) {