Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Jul 2010 09:56:57 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        Marius Strobl <marius@alchemy.franken.de>
Cc:        freebsd-sparc64@FreeBSD.org
Subject:   Re: [RFC] Event timers on sparc64/sun4v
Message-ID:  <4C42A5B9.7080901@FreeBSD.org>
In-Reply-To: <20100716213503.GT4706@alchemy.franken.de>
References:  <4C404018.6040405@FreeBSD.org> <20100716213503.GT4706@alchemy.franken.de>

next in thread | previous in thread | raw e-mail | index | archive | help
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

Don't you have some spare system with stick problems, so I could play
with it? And some documentation? I am curious, what is wrong there. :)

-- 
Alexander Motin



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