Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Nov 2013 09:42:25 +0200
From:      Alexander Motin <mav@FreeBSD.org>
To:        Adrian Chadd <adrian@freebsd.org>, Bret Ketchum <bcketchum@gmail.com>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: 9.1 callout behavior
Message-ID:  <5295A261.2060403@FreeBSD.org>
In-Reply-To: <CAJ-Vmokrchy4pXLvZ21sCV09fQUdYKeUYCEH1U1NdfDBxhyJQg@mail.gmail.com>
References:  <CAGm6yaTEFECTYVb94A13TaXMPSLtKLpTbw4iNdgd8SuNF1QDaA@mail.gmail.com> <CAJ-Vmokrchy4pXLvZ21sCV09fQUdYKeUYCEH1U1NdfDBxhyJQg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Brett,

Could you tell more about "ticks has increased 8x"? Tickless mode it is 
somewhat tricky algorithm to track global ticks counter, but it should 
not jump that big. Jumps there could easily trigger wrong callout 
behavior in 9 (in 10 callout code was rewritten and no longer depend on 
ticks).

On 21.11.2013 22:19, Adrian Chadd wrote:
> It sounds like you may have found an interesting test case.
>
> Mav, any ideas?
>
> On 21 November 2013 05:20, Bret Ketchum <bcketchum@gmail.com> wrote:
>>       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
>> _______________________________________________
>> freebsd-hackers@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
>> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"


-- 
Alexander Motin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5295A261.2060403>