Date: Thu, 21 Nov 2013 07:20:56 -0600 From: Bret Ketchum <bcketchum@gmail.com> To: freebsd-hackers@freebsd.org Subject: 9.1 callout behavior Message-ID: <CAGm6yaTEFECTYVb94A13TaXMPSLtKLpTbw4iNdgd8SuNF1QDaA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
I've a callout which runs every 100ms and does a bit of accounting using the global ticks variable. This one-shot callout was called fairly consistently in 8.1, every 100ms give or take a few thousand clocks. I've recently upgraded to 9.1 and for the most part the period is consistent. However, periodically the callout function is executed anywhere between 5ms to 20ms after the callout was reset and the function returned while global ticks has increased 8x. The hardware has not changed (using the same timecounter configuration): CPU: Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz (2500.05-MHz K8-class CPU) kern.timecounter.hardware: TSC-low kern.timecounter.tick: 1 kern.timecounter.invariant_tsc: 1 kern.timecounter.smp_tsc: 1 And default eventtimer configuration: kern.eventtimer.singlemul: 2 kern.eventtimer.idletick: 0 kern.eventtimer.activetick: 1 kern.eventtimer.timer: LAPIC kern.eventtimer.periodic: 0 If tickless mode is disabled the inconsistency goes away. Is the premature expiration of the callout expected? Is the jump in global ticks typical (say from 100 ticks to 800 ticks in 1.5ms)? Bret
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGm6yaTEFECTYVb94A13TaXMPSLtKLpTbw4iNdgd8SuNF1QDaA>