Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78617a08 authored by Mark Salyzyn's avatar Mark Salyzyn Committed by Gerrit Code Review
Browse files

Merge changes Id25cdef0,I80685cdc,I929dddc7

* changes:
  logd: Add SCHED_BATCH to reduce priority
  logd: Adjust to match defacto coding style
  logd: prune more aggressively when over the top
parents e9c8fb90 882f8566
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ void FlushCommand::runSocketCommand(SocketClient *client) {
    }

    if (it == times.end()) {
        /* Create LogTimeEntry in notifyNewLog() ? */
        // Create LogTimeEntry in notifyNewLog() ?
        if (mTail == (unsigned long) -1) {
            LogTimeEntry::unlock();
            return;
@@ -74,7 +74,7 @@ void FlushCommand::runSocketCommand(SocketClient *client) {

    client->incRef();

    /* release client and entry reference counts once done */
    // release client and entry reference counts once done
    entry->startReader_Locked();
    LogTimeEntry::unlock();
}
+14 −5
Original line number Diff line number Diff line
@@ -52,11 +52,12 @@ void LogBuffer::log(log_id_t log_id, struct timespec realtime,
    LogBufferElementCollection::iterator it = mLogElements.end();
    LogBufferElementCollection::iterator last = it;
    while (--it != mLogElements.begin()) {
        if ((*it)->getRealTime() <= elem->getRealTime()) {
        if ((*it)->getRealTime() <= realtime) {
            break;
        }
        last = it;
    }

    if (last == mLogElements.end()) {
        mLogElements.push_back(elem);
    } else {
@@ -99,12 +100,20 @@ void LogBuffer::log(log_id_t log_id, struct timespec realtime,
}

// If we're using more than 256K of memory for log entries, prune
// 10% of the log entries.
// at least 10% of the log entries.
//
// mLogElementsLock must be held when this function is called.
void LogBuffer::maybePrune(log_id_t id) {
    if (mSizes[id] > LOG_BUFFER_SIZE) {
        prune(id, mElements[id] / 10);
    unsigned long sizes = mSizes[id];
    if (sizes > LOG_BUFFER_SIZE) {
        unsigned long sizeOver90Percent = sizes - ((LOG_BUFFER_SIZE * 9) / 10);
        unsigned long elements = mElements[id];
        unsigned long pruneRows = elements * sizeOver90Percent / sizes;
        elements /= 10;
        if (pruneRows <= elements) {
            pruneRows = elements;
        }
        prune(id, pruneRows);
    }
}

+2 −2
Original line number Diff line number Diff line
@@ -16,6 +16,6 @@

#include "LogCommand.h"

LogCommand::LogCommand(const char *cmd) :
              FrameworkCommand(cmd)  {
LogCommand::LogCommand(const char *cmd)
        : FrameworkCommand(cmd) {
}
+3 −6
Original line number Diff line number Diff line
@@ -59,16 +59,14 @@ public:

    void startReader_Locked(void);

    bool runningReader_Locked(void) const
    {
    bool runningReader_Locked(void) const {
        return threadRunning || mRelease || mError || mNonBlock;
    }
    void triggerReader_Locked(void) { threadTriggered = true; }
    void triggerSkip_Locked(unsigned int skip) { skipAhead = skip; }

    // Called after LogTimeEntry removed from list, lock implicitly held
    void release_Locked(void)
    {
    void release_Locked(void) {
        mRelease = true;
        if (mRefCount || threadRunning) {
            return;
@@ -89,8 +87,7 @@ public:

    bool owned_Locked(void) const { return mRefCount != 0; }

    void decRef_Locked(void)
    {
    void decRef_Locked(void) {
        if ((mRefCount && --mRefCount) || !mRelease || threadRunning) {
            return;
        }
+8 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <sched.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -32,6 +33,13 @@
#include "LogListener.h"

static int drop_privs() {
    struct sched_param param;
    memset(&param, 0, sizeof(param));

    if (sched_setscheduler((pid_t) 0, SCHED_BATCH, &param) < 0) {
        return -1;
    }

    if (prctl(PR_SET_KEEPCAPS, 1) < 0) {
        return -1;
    }
+1 −1

File changed.

Contains only whitespace changes.

Loading