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

Commit 5024d6a1 authored by Pavlin Radoslavov's avatar Pavlin Radoslavov Committed by android-build-merger
Browse files

Removed alarm callback execution statistics am: 05c9d902 am: 983a9808

am: 70d2ee64

Change-Id: I7a2e3f2fd89c4c7df94f3650768c221f986b2c18
parents 61d5e354 70d2ee64
Loading
Loading
Loading
Loading
+10 −23
Original line number Diff line number Diff line
@@ -64,7 +64,6 @@ typedef struct {
  size_t rescheduled_count;
  size_t total_updates;
  period_ms_t last_update_ms;
  stat_t callback_execution;
  stat_t overdue_scheduling;
  stat_t premature_scheduling;
} alarm_stats_t;
@@ -134,10 +133,8 @@ static void alarm_queue_ready(fixed_queue_t *queue, void *context);
static void timer_callback(void *data);
static void callback_dispatch(void *context);
static bool timer_create_internal(const clockid_t clock_id, timer_t *timer);
static void update_scheduling_stats(alarm_stats_t *stats,
                                    period_ms_t now_ms,
                                    period_ms_t deadline_ms,
                                    period_ms_t execution_delta_ms);
static void update_scheduling_stats(alarm_stats_t *stats, period_ms_t now_ms,
                                    period_ms_t deadline_ms);

static void update_stat(stat_t *stat, period_ms_t delta)
{
@@ -614,14 +611,12 @@ static void alarm_queue_ready(fixed_queue_t *queue,
  pthread_mutex_lock(&alarm->callback_lock);
  pthread_mutex_unlock(&monitor);

  period_ms_t t0 = now();
  callback(data);
  period_ms_t t1 = now();

  // Update the statistics
  assert(t1 >= t0);
  period_ms_t delta = t1 - t0;
  update_scheduling_stats(&alarm->stats, t0, deadline, delta);
  update_scheduling_stats(&alarm->stats, now(), deadline);

  // NOTE: Do NOT access "alarm" after the callback, as a safety precaution
  // in case the callback itself deleted the alarm.
  callback(data);

  pthread_mutex_unlock(&alarm->callback_lock);
}
@@ -693,16 +688,11 @@ static bool timer_create_internal(const clockid_t clock_id, timer_t *timer) {
  return true;
}

static void update_scheduling_stats(alarm_stats_t *stats,
                                    period_ms_t now_ms,
                                    period_ms_t deadline_ms,
                                    period_ms_t execution_delta_ms)
{
static void update_scheduling_stats(alarm_stats_t *stats, period_ms_t now_ms,
                                    period_ms_t deadline_ms) {
  stats->total_updates++;
  stats->last_update_ms = now_ms;

  update_stat(&stats->callback_execution, execution_delta_ms);

  if (deadline_ms < now_ms) {
    // Overdue scheduling
    period_ms_t delta_ms = now_ms - deadline_ms;
@@ -755,7 +745,7 @@ void alarm_debug_dump(int fd)
    dprintf(fd, "%-51s: %zu / %zu / %zu / %zu\n",
            "    Action counts (sched/resched/exec/cancel)",
            stats->scheduled_count, stats->rescheduled_count,
            stats->callback_execution.count, stats->canceled_count);
            stats->total_updates, stats->canceled_count);

    dprintf(fd, "%-51s: %zu / %zu\n",
            "    Deviation counts (overdue/premature)",
@@ -768,9 +758,6 @@ void alarm_debug_dump(int fd)
            (unsigned long long) alarm->period,
            (long long)(alarm->deadline - just_now));

    dump_stat(fd, &stats->callback_execution,
              "    Callback execution time in ms (total/max/avg)");

    dump_stat(fd, &stats->overdue_scheduling,
              "    Overdue scheduling time in ms (total/max/avg)");