Polish invalidation of
diff --git a/src/core/lib/iomgr/exec_ctx.cc b/src/core/lib/iomgr/exec_ctx.cc
index b9e43c6..79ce33f 100644
--- a/src/core/lib/iomgr/exec_ctx.cc
+++ b/src/core/lib/iomgr/exec_ctx.cc
@@ -184,7 +184,6 @@
 }
 
 void grpc_exec_ctx_maybe_update_start_time(grpc_exec_ctx* exec_ctx) {
-  grpc_exec_ctx_invalidate_now(exec_ctx);
   grpc_millis now = grpc_exec_ctx_now(exec_ctx);
   grpc_millis last_start_time_update = gpr_atm_acq_load(&g_last_start_time_update);
   if (now > last_start_time_update &&
diff --git a/src/core/lib/iomgr/timer_manager.cc b/src/core/lib/iomgr/timer_manager.cc
index 6814bcd..3de87cb 100644
--- a/src/core/lib/iomgr/timer_manager.cc
+++ b/src/core/lib/iomgr/timer_manager.cc
@@ -224,11 +224,11 @@
 static void timer_main_loop(grpc_exec_ctx* exec_ctx) {
   for (;;) {
     grpc_millis next = GRPC_MILLIS_INF_FUTURE;
+    grpc_exec_ctx_invalidate_now(exec_ctx);
+
     // Check if it is time to update g_start_time
     grpc_exec_ctx_maybe_update_start_time(exec_ctx);
 
-    grpc_exec_ctx_invalidate_now(exec_ctx);
-
     // check timer state, updates next to the next time to run a check
     switch (grpc_timer_check(exec_ctx, &next)) {
       case GRPC_TIMERS_FIRED: