From 9c8e7f0b88bcb5348ff7865f22a7f237a18ce782 Mon Sep 17 00:00:00 2001 From: xiaosuGW Date: Tue, 9 Nov 2021 21:52:22 -0500 Subject: [PATCH] make running_time more accurate --- runtime/include/sandbox_set_as_running.h | 6 +++--- runtime/src/software_interrupt.c | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/runtime/include/sandbox_set_as_running.h b/runtime/include/sandbox_set_as_running.h index b8637af..af20cf1 100644 --- a/runtime/include/sandbox_set_as_running.h +++ b/runtime/include/sandbox_set_as_running.h @@ -40,11 +40,11 @@ sandbox_set_as_running(struct sandbox *sandbox, sandbox_state_t last_state) } } - sandbox->last_state_change_timestamp = now; - sandbox->state = SANDBOX_RUNNING; - /* State Change Bookkeeping */ sandbox_state_log_transition(sandbox->id, last_state, SANDBOX_RUNNING); runtime_sandbox_total_increment(SANDBOX_RUNNING); runtime_sandbox_total_decrement(last_state); + + sandbox->last_state_change_timestamp = now; + sandbox->state = SANDBOX_RUNNING; } diff --git a/runtime/src/software_interrupt.c b/runtime/src/software_interrupt.c index df7dd2f..96072d6 100644 --- a/runtime/src/software_interrupt.c +++ b/runtime/src/software_interrupt.c @@ -192,6 +192,8 @@ software_interrupt_handle_signals(int signal_type, siginfo_t *signal_info, void debuglog("Restoring sandbox: %lu, Stack %llu\n", current_sandbox->id, current_sandbox->ctxt.mctx.gregs[REG_RSP]); #endif + uint64_t now = __getcycles(); + current_sandbox->last_state_change_timestamp = now; arch_mcontext_restore(&user_context->uc_mcontext, ¤t_sandbox->ctxt); goto done; }