logd: worst uid record watermark part deux

(cherry pick from commit 49afe0d00f)

Only record watermark if not known, or represents the worst UID
currently under focus. This has resulted in a halving of the average
prune time in the face of heavy spam because we get less processing
spikes.

Bug: 23327476
Bug: 23681639
Bug: 23685592
Change-Id: I19f297042b9fc2c98d902695c1c36df1bf5cd6f6
This commit is contained in:
Mark Salyzyn 2015-08-24 13:43:27 -07:00
parent 8bc53c125a
commit aa58a86275

View file

@ -467,7 +467,11 @@ void LogBuffer::prune(log_id_t id, unsigned long pruneRows, uid_t caller_uid) {
// unmerged drop message
if (dropped) {
last.add(e);
mLastWorstUid[id][e->getUid()] = it;
if ((e->getUid() == worst)
|| (mLastWorstUid[id].find(e->getUid())
== mLastWorstUid[id].end())) {
mLastWorstUid[id][e->getUid()] = it;
}
++it;
continue;
}