diff options
author | Dave Barach <dave@barachs.net> | 2020-01-29 18:05:24 -0500 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2020-01-30 20:45:18 +0000 |
commit | c25048bd05a319511aa7386f75e1fae2b2a623c4 (patch) | |
tree | 4254d34aba20058eb04213ffe4ab738f0dc250fd /src/vlib/threads.c | |
parent | 91592c0c9cdd1bc61a2796e41a8becc30aaf8082 (diff) |
vppinfra: improve clocks_per_second convergence
Apply exponential smoothing to the clock rate update calculation in
clib_time_verify_frequency(), with a half-life of 1 minute and a
sampling frequency of 16 seconds. Within 5 minutes or so, the
calculation converges
With each rate recalculation: reset total_cpu_time based on the kernel
timebase delta since vpp started, and the new clock rate
Improve the "show clock [verbose]" debug CLI command.
BFD echo + echo fail tests marked off until the BFD code can be
reworked a bit.
Type: fix
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I24e88a78819b12867736c875067b386ef6115c5c
Diffstat (limited to 'src/vlib/threads.c')
-rw-r--r-- | src/vlib/threads.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/vlib/threads.c b/src/vlib/threads.c index 07e1d79cf4c..e6733d55b6f 100644 --- a/src/vlib/threads.c +++ b/src/vlib/threads.c @@ -1848,11 +1848,11 @@ show_clock_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { int i; - f64 now; + int verbose = 0; - now = vlib_time_now (vm); + (void) unformat (input, "verbose %=", &verbose, 1); - vlib_cli_output (vm, "Time now %.9f", now); + vlib_cli_output (vm, "%U", format_clib_time, &vm->clib_time, verbose); if (vec_len (vlib_mains) == 1) return 0; @@ -1864,6 +1864,10 @@ show_clock_command_fn (vlib_main_t * vm, { if (vlib_mains[i] == 0) continue; + + vlib_cli_output (vm, "%d: %U", i, format_clib_time, + &vlib_mains[i]->clib_time, verbose); + vlib_cli_output (vm, "Thread %d offset %.9f error %.9f", i, vlib_mains[i]->time_offset, vm->time_last_barrier_release - |