Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jun 2011 08:25:51 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Alexander Motin <mav@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Andriy Gapon <avg@freebsd.org>, Jung-uk Kim <jkim@freebsd.org>
Subject:   Re: svn commit: r223426 - in head/sys: dev/acpica kern sys x86/x86
Message-ID:  <6D159261-7C57-4509-B41B-E440DBB4CBEA@xcllnt.net>
In-Reply-To: <4E02989F.6040703@FreeBSD.org>
References:  <201106221640.p5MGejHY057164@svn.freebsd.org> <4E021C8E.8010904@FreeBSD.org> <201106221455.07540.jkim@FreeBSD.org> <201106221924.50458.jkim@FreeBSD.org> <D269F433-17DB-4976-BA6F-2BB31527E691@xcllnt.net> <4E028921.2040805@FreeBSD.org> <8B9DCBA3-C3EC-43EE-8BEC-858A280A2096@xcllnt.net> <4E02989F.6040703@FreeBSD.org>

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

On Jun 22, 2011, at 6:36 PM, Alexander Motin wrote:

> Marcel Moolenaar wrote:
>> On Jun 22, 2011, at 5:30 PM, Alexander Motin wrote:
>>> Marcel Moolenaar wrote:
>>>> On Jun 22, 2011, at 4:24 PM, Jung-uk Kim wrote:
>>>>> I just realized kern_clocksource.c was excluded for arm and ia64. =20=

>>>>> Here is updated patch.  Please ignore the previous one.
>>>> Any reason why we're not adding kern_clocksource.c for them?
>>> Their event timers code still waits for refactoring. I have neither
>>> documentation nor hardware for them. Help would be appreciated.
>>=20
>> Can you give me a pointer to a document orpage that describes
>> what is being refactored, why and how?
>=20
> In short, timer management code was unified and formalized. Instead of
> direct programming periodic timers from MD code and calling hard-/
> stat-/ profclock() from there, timer hardware should be exposed to the
> MI kernel using sys/timeet.h API to allow kern_clocksource.c manage =
it.
> Last require calling its cpu_initclocks_bsp() and cpu_initclocks_ap()
> callbacks from MD initialization code, and cpu_idleclock() and
> cpu_activeclock() from MD cpu_idle().
>=20
> Here is some references:
> man 4 eventtimers
> =
http://wiki.freebsd.org/201010DevSummit?action=3DAttachFile&do=3Dview&targ=
et=3Dtimers.pdf
> http://svnweb.freebsd.org/base?view=3Drevision&revision=3D209371
> http://svnweb.freebsd.org/base?view=3Drevision&revision=3D212541
>=20
> All architectures except ia64 and non-Marvell arm are already done, so
> you may took any of them as reference. Ask me if you have any =
questions.

Can you give a quick outline of how all the various clock
related initializations and support code relate, interact
or even conflict? It's getting rather convoluted and want
to make sure I get the ordering and timing right.

Also: The ITC on ia64 is a per-CPU, one short and periodic
timer that has a fixed frequency. Though the architecture
does not guarantee that counters are synchronized, nor
that all CPUs in a system run at the same frequency which
means that the ITCs may not all run at the same frequency.
Does the et code work with that or do I need to impose a
restriction on what hardware configurations to support
and/or revert to having the ITC be a global timer and run
only on the BSP?

Thanks,

--=20
Marcel Moolenaar
marcel@xcllnt.net





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6D159261-7C57-4509-B41B-E440DBB4CBEA>