From: Maria Matejka Date: Wed, 26 Apr 2023 17:34:29 +0000 (+0200) Subject: Loops track also locking time X-Git-Tag: v3.0-alpha2~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab83bab9d1c51e4102f6626430e0e1b2b7f1e53a;p=thirdparty%2Fbird.git Loops track also locking time --- diff --git a/sysdep/unix/io-loop.c b/sysdep/unix/io-loop.c index db8556a62..b3d930cb1 100644 --- a/sysdep/unix/io-loop.c +++ b/sysdep/unix/io-loop.c @@ -974,10 +974,10 @@ bird_thread_show(void *data) (cs - i > fs) ? 0 : loop->time_by_sec_ns[(cs - i) % TIME_BY_SEC_SIZE]); bptr[-1] = 0; /* Drop the trailing space */ - cli_printf(tsd->cli, -1026, " Loop %s total time: %t", - domain_name(loop->time.domain), loop->total_time_spent_ns NS); - cli_printf(tsd->cli, -1026, " last %d secs [ns]: %s", - MIN(CURRENT_SEC+1, TIME_BY_SEC_SIZE), b); + cli_printf(tsd->cli, -1026, " Loop %s", domain_name(loop->time.domain)); + cli_printf(tsd->cli, -1026, " Total time: %t s", loop->total_time_spent_ns NS); + cli_printf(tsd->cli, -1026, " Total locking time: %t s", loop->total_time_locking_ns NS); + cli_printf(tsd->cli, -1026, " Last %d secs [ns]: %s", MIN(CURRENT_SEC+1, TIME_BY_SEC_SIZE), b); } total_time_ns += loop->total_time_spent_ns; @@ -1183,6 +1183,8 @@ birdloop_run(void *_loop) if (locked_time > end_time) LOOP_WARN(loop, "locked %luns after its scheduled end time", locked_time - end_time); + loop->total_time_locking_ns += (locked_time - start_time); + uint repeat, loop_runs = 0; do { repeat = 0; diff --git a/sysdep/unix/io-loop.h b/sysdep/unix/io-loop.h index b5da7aba9..d60b52069 100644 --- a/sysdep/unix/io-loop.h +++ b/sysdep/unix/io-loop.h @@ -69,6 +69,7 @@ struct birdloop u64 time_by_sec_ns[TIME_BY_SEC_SIZE]; u64 last_time_finished_ns; u64 total_time_spent_ns; + u64 total_time_locking_ns; }; struct bird_thread