Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 Mar 2010 17:14:08 +0300
From:      Andriy Gapon <avg@icyb.net.ua>
To:        Tsuyoshi Ozawa <ozawa+bsd@t-oza.net>
Cc:        =?ISO-8859-1?Q?Dag-Erling_Sm=F8rgrav?= <des@des.no>, Roman Divacky <rdivacky@freebsd.org>, Julian Elischer <julian@elischer.org>, freebsd-hackers <freebsd-hackers@freebsd.org>
Subject:   Re: Dynamic ticks in FreeBSD
Message-ID:  <4BB358B0.4090300@icyb.net.ua>
In-Reply-To: <p2p411a180c1003310505qb6e274f2i7b39aa3dd7387d24@mail.gmail.com>
References:  <411a180c1003300537g2a1b4879u2d8d952ce9977cb5@mail.gmail.com>	<411a180c1003300639l13d33451q305a61b2bcd6e3d5@mail.gmail.com>	<20100330173504.GA70578@freebsd.org> <p2p411a180c1003310505qb6e274f2i7b39aa3dd7387d24@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
on 31/03/2010 15:05 Tsuyoshi Ozawa said the following:
> Thank you for replying !
> 
> The patch for FreeBSD 8.0 original source is here :
> http://gist.github.com/350230
> If this patch cause collision, I'm going to throw patch between
> FreeBSD 8.0 HEAD and my chage. (sorry for this, I cannot connect to
> CVS repository now for network reason. It take a few days to connect
> CVS repository.)

Thank you for this interesting and useful work!
I looked through the code and here is my understanding of how it works, it
coincides with how you described it, but I'd like to state it in my own words :-)

1. Instead of firing clock (LAPIC timer) interrupt regularly with a frequency
derived from HZ, the interrupt is scheduled to fire (in one-shot mode) at the time
of the soonest scheduled callout.
2. The code also makes sure to run hard/stat/prof-clocks if time since last
interrupt is greater than their respective periods in !dyntick mode.

Thus, it appears that in dyntick mode hard/stat/prof-clocks would run irregularly.
I couldn't find any code that makes sure that the rest of the system handles this
properly.  Perhaps I missed it, or is it still in progress/plans?

Also, I am not sure if the code handles the case when a new 'soonest' callout is
scheduled after we already decided when to fire the next LAPIC timer interrupt.

Thank you very much again!
Please keep up the good work :)

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BB358B0.4090300>