[RFC] Event timers on sparc64/sun4v
Marius Strobl
marius at alchemy.franken.de
Sun Jul 18 14:21:03 UTC 2010
On Sun, Jul 18, 2010 at 09:56:57AM +0300, Alexander Motin wrote:
> Marius Strobl wrote:
> > please don't commit this as-is:
> > - using the stick instead of the tick counter for machines with CPUs
> > and thus tick counters running at different speeds has turned out
> > to be suboptimal, probably due to the fact that the 12.5MHz the
> > stick counters typically are driven by don't provide sufficient
> > granularity. Thus the more desireable variant for these machines
> > probably is to provide the tick counter of the BSP as the only
> > non-per-CPU timer and forward it to the APs via IPIs. This also
> > leaves the stick counter of all >= US-III machines generally
> > available for driving statclock, which likely is also desirable.
> > - I'd like to keep the tick grace check as this caused problems in
> > the past. Probably tick_et_start() just should return an error
> > in this case.
> > - I don't like wasting CPU cycles for determining whether the
> > workaround for BlackBird CPUs is needed (assuming #1 above is
> > implemented so distinguishing stick/tick is no longer needed)
> > with every (s)tick interrupt which are a lot as this just won't
> > ever change during runtime, i.e. I'd like to keep the different
> > interrupt handlers which are set up as needed.
> > - Replacing intr_disable_all() with intr_disable() on sun4v
> > probably isn't a good idea as the latter doesn't disable IPIs
> > as it does on sparc64 and other architectures.
>
> Here is new path, updated respecting two last points:
> http://people.freebsd.org/~mav/timers_sparc2.patch
Looks better, but can't you just implement the tick grace check
in tick_et_start() and let it return an error if the interval
is too short until there maybe is an MI way to supply a minimum
period?
Also please follow style(9) and don't initializing variables in
the declarations and leave tick_{clear,start} at the end of the
file in order to not move code around unnecessarily.
>
> Don't you have some spare system with stick problems, so I could play
> with it?
I have but I recently moved and am currently busy with semester
finals so it'll probably be mid-August when I'm able to set it up
again. I'm not sure I'll be able to provide remote access though.
> And some documentation? I am curious, what is wrong there. :)
Just look at the documentation of US-III or later CPUs:
www.cs.pitt.edu/~cho/cs2410/currentsemester/handouts/USIIIv2.pdf
Marius
More information about the freebsd-sparc64
mailing list