[RFC] Event timers on sparc64/sun4v

Marius Strobl marius at alchemy.franken.de
Wed Jul 28 07:09:22 UTC 2010


On Wed, Jul 21, 2010 at 03:10:35PM +0300, Alexander Motin wrote:
> Alexander Motin wrote:
> > Marius Strobl wrote:
> >> On Sun, Jul 18, 2010 at 08:02:09PM +0300, Alexander Motin wrote:
> >>> tick_et_start() status is not checked my MI code at the moment, as error
> >>> handling in that case is not obvious. Do you like panic of printf there?
> >> Ah, I haven't looked at the MI code to closely. No, it's not that
> >> important, a printf should be sufficient for now, I just don't
> >> want the check to get completely dropped.
> > 
> > I better do it MI way. It's not so difficult. I am just thinking what
> > better report from driver: allowed divisors, periods, or rounding function.
> 
> Here is updated patch for latest HEAD, which should handle this:
> http://people.freebsd.org/~mav/timers_sparc4.patch
> 
> I also added support for STICK timecounter. For this moment with lowest
> priority to not use it by default, until it is tested.
> 

The patch looks ok and seems to work as expected on MP US-IIIi.
However, I'd suggest to just use TICK_QUALITY_{M,U}P for the
quality of the STICK timecounter but negated for now; I see no
reason why the STICK timecounter should be of any other quality
(from the hardware point of view) than the TICK one and whatever
the solution is to make the TICK timecounter work with locks etc
also needs to be applied to the STICK one (maybe on some machines
the synchronicity across CPUs actually happens to be sufficient
but I'd like to rather not make any assumptions about machines
that f.e. group CPUs by coherency domain etc).
A difference in behavior I noticed is that the TICK interrupt
rate now is 2kHz (with HZ 1000). Why is that (I think that on
x86 the timers ran at 2*HZ before though)?

Marius



More information about the freebsd-sparc64 mailing list