Easier to read spam
diff --git a/src/core/lib/iomgr/timer_generic.c b/src/core/lib/iomgr/timer_generic.c
index 4e4af9a..208572e 100644
--- a/src/core/lib/iomgr/timer_generic.c
+++ b/src/core/lib/iomgr/timer_generic.c
@@ -187,12 +187,10 @@
 }
 
 /* returns true if the first element in the list */
-static bool list_join(grpc_timer *head, grpc_timer *timer) {
-  bool is_first = head->next == head;
+static void list_join(grpc_timer *head, grpc_timer *timer) {
   timer->next = head;
   timer->prev = head->prev;
   timer->next->prev = timer->prev->next = timer;
-  return is_first;
 }
 
 static void list_remove(grpc_timer *timer) {
@@ -267,8 +265,7 @@
     is_first_timer = grpc_timer_heap_add(&shard->heap, timer);
   } else {
     timer->heap_index = INVALID_HEAP_INDEX;
-    is_first_timer = list_join(&shard->list, timer) &&
-                     grpc_timer_heap_is_empty(&shard->heap);
+    list_join(&shard->list, timer);
   }
   if (grpc_timer_trace) {
     gpr_log(GPR_DEBUG, "  .. add to shard %d with queue_deadline_cap=%" PRIdPTR
@@ -428,15 +425,7 @@
                                    gpr_atm *next, grpc_error *error) {
   size_t n = 0;
 
-  /* fetch from a thread-local first: this avoids contention on a globally
-     mutable cacheline in the common case */
-  gpr_atm min_timer = gpr_tls_get(&g_last_seen_min_timer);
-  if (now < min_timer) {
-    if (next != NULL) *next = GPR_MIN(*next, min_timer);
-    return 0;
-  }
-
-  min_timer = gpr_atm_no_barrier_load(&g_shared_mutables.min_timer);
+  gpr_atm min_timer = gpr_atm_no_barrier_load(&g_shared_mutables.min_timer);
   gpr_tls_set(&g_last_seen_min_timer, min_timer);
   if (now < min_timer) {
     if (next != NULL) *next = GPR_MIN(*next, min_timer);
@@ -499,10 +488,28 @@
   // prelude
   GPR_ASSERT(now.clock_type == g_clock_type);
   gpr_atm now_atm = timespec_to_atm_round_down(now);
+
+  /* fetch from a thread-local first: this avoids contention on a globally
+     mutable cacheline in the common case */
+  gpr_atm min_timer = gpr_tls_get(&g_last_seen_min_timer);
+  if (now_atm < min_timer) {
+    if (next != NULL) {
+      *next =
+          atm_to_timespec(GPR_MIN(timespec_to_atm_round_up(*next), min_timer));
+    }
+    if (grpc_timer_check_trace) {
+      gpr_log(GPR_DEBUG,
+              "TIMER CHECK SKIP: now_atm=%" PRId64 " min_timer=%" PRId64,
+              now_atm, min_timer);
+    }
+    return 0;
+  }
+
   grpc_error *shutdown_error =
       gpr_time_cmp(now, gpr_inf_future(now.clock_type)) != 0
           ? GRPC_ERROR_NONE
           : GRPC_ERROR_CREATE_FROM_STATIC_STRING("Shutting down timer system");
+
   // tracing
   if (grpc_timer_check_trace) {
     char *next_str;