9.1 callout behavior

Bret Ketchum bcketchum at gmail.com
Thu Nov 21 13:20:59 UTC 2013


     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


More information about the freebsd-hackers mailing list