Skip site navigation (1)Skip section navigation (2)
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>