From a5ad0f8051291dcd2c780464329d18ae4764562d Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Mon, 17 May 2021 09:05:44 -0400 Subject: [PATCH] lib/event: update reactor tsc_last going poll mode Disabling interrupt mode on reactor now updates the tsc_last to current time. So any further tsc caulations will not account for the time when reactor was in interrupt mode. Signed-off-by: Tomasz Zawadzki Change-Id: I56fb8a738eea60ee5de3b49d586f7cb228b54510 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7901 Reviewed-by: Ben Walker Reviewed-by: Aleksey Marchuk Reviewed-by: Konrad Sztyber Tested-by: SPDK CI Jenkins Community-CI: Mellanox Build Bot --- lib/event/reactor.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/event/reactor.c b/lib/event/reactor.c index 0e8536aa5..69addc8bc 100644 --- a/lib/event/reactor.c +++ b/lib/event/reactor.c @@ -363,6 +363,9 @@ _reactor_set_notify_cpuset_cpl(void *arg1, void *arg2) struct spdk_reactor *target = arg1; if (target->new_in_interrupt == false) { + /* Reactor is no longer in interrupt mode. Refresh the tsc_last to accurately + * track reactor stats. */ + target->tsc_last = spdk_get_ticks(); target->set_interrupt_mode_in_progress = false; spdk_thread_send_msg(_spdk_get_app_thread(), target->set_interrupt_mode_cb_fn, target->set_interrupt_mode_cb_arg);