Re: Large timecounter delta handling
- In reply to: Sebastian Huber : "Re: Large timecounter delta handling"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 11 Oct 2021 09:43:57 UTC
On 11/10/2021 11:31, Sebastian Huber wrote: >> Your question is more like "under which conditions we switch to use >> tc_large_delta path in bintime_off()?" Then it is mostly right, that >> long intervals between tc_windup() calls would trigger it, and it seems >> that indeed it is around 0.5 sec. > > Yes, this was the question. > > I think the initialization value should be 50000: > > diff --git a/sys/kern/kern_tc.c b/sys/kern/kern_tc.c > index 81d373b3b1d0..a4792e31abd4 100644 > --- a/sys/kern/kern_tc.c > +++ b/sys/kern/kern_tc.c > @@ -87,7 +87,7 @@ static struct timehands ths[16] = { > [0] = { > .th_counter = &dummy_timecounter, > .th_scale = (uint64_t)-1 / 1000000, > - .th_large_delta = 1000000, > + .th_large_delta = 500000, > .th_offset = { .sec = 1 }, > .th_generation = 1, > }, No, sorry. The existing code is correct. I miscalculated the large delta by using th->th_scale for "scale" in th->th_large_delta = MIN(((uint64_t)1 << 63) / scale, UINT_MAX); which is th->th_scale = scale * 2; -- embedded brains GmbH Herr Sebastian HUBER Dornierstr. 4 82178 Puchheim Germany email: sebastian.huber@embedded-brains.de phone: +49-89-18 94 741 - 16 fax: +49-89-18 94 741 - 08 Registergericht: Amtsgericht München Registernummer: HRB 157899 Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler Unsere Datenschutzerklärung finden Sie hier: https://embedded-brains.de/datenschutzerklaerung/