From a6116961338548409b14076eefbef211afc8c3fe Mon Sep 17 00:00:00 2001
From: Mark Salyzyn <salyzyn@google.com>
Date: Mon, 12 Oct 2015 13:45:51 -0700
Subject: [PATCH] logd: pruning time horizon

Estimate a time horizon of ten fold for worst UID pruning

Bug: 25453210
Bug: 24782000
Change-Id: I7118deb6d42531c68ed2ac2a59c57b0580b942cc
---
 logd/LogBuffer.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/logd/LogBuffer.cpp b/logd/LogBuffer.cpp
index 559fa2e65d..d72a78c0f8 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) {
-- 
GitLab