From: George Anzinger <george@mvista.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Steven Rostedt <rostedt@goodmis.org>,
dwalker@mvista.com,
"'high-res-timers-discourse@lists.sourceforge.net'"
<high-res-timers-discourse@lists.sourceforge.net>
Subject: Re: 2.6.13-rt6, ktimer subsystem
Date: Wed, 14 Sep 2005 12:38:58 -0700 [thread overview]
Message-ID: <43287C52.7050002@mvista.com> (raw)
In-Reply-To: <20050913100040.GA13103@elte.hu>
Ingo Molnar wrote:
> i have released the 2.6.13-rt6 tree, which can be downloaded from the
> usual place:
>
> http://redhat.com/~mingo/realtime-preempt/
>
> there are lots of small updates all across and there's a big feature as
> well in this release: a complete rework of the high-resolution timers
> framework, from Thomas Gleixner, called 'ktimers'.
>
> under the ktimer framework the HR (and posix) timers live in a separate
> domain, have their own (per-CPU) rbtree to stay scalable and
> deterministic even with a high number of timers. Another positive effect
> of the introduction of separate ktimers is that kernel/timer.c is now
> using preemptible locks again, removing the cascade() worst-case
> latency. The cleanup factor is high as well: the ktimer framework
> slashes 1300+ lines off the HRT code. See kernel/ktimer.c for details.
>
> the end-effect of ktimers is a much more deterministic HRT engine. The
> original merging of HR timers into the stock timer wheel was a Bad Idea
> (tm). We intend to push the ktimer subsystem upstream as well.
Well, having spent a bit of time looking at the code it appears that a
lot of the ideas we looked at and discarded (see
high-res-timers-discourse@lists.sourceforge.net) are in this. Shame it
was all done with out reference or comment to that list, anyone on it or
even the lkml.
I DO agree that it _looks_ nicer, cleaner and so on. But there are a
lot of things we rejected in here and they really do need, at least, a
hard look.
A few of the top issues:
time in nanoseconds 64-bits, requires a divide to do much of anything
with it. Divides are slow and should be avoided if possible. This is
especially true in the embedded market.
The rbtree is a high overhead tree. I suspect performance problems
here. If it is the right answer here, then why not use it for normal
timers? A list of timers is a rather unique thing and, I think,
deserves a management structure that accounts for the fact that the
elements in the tree are perishable.
It appears that the "monotonic_clock" is being used to drive ktimers.
The "monotonic_clock" was NEVER meant to poke outside of the kernel. It
is a raw kernel clock that is only required to be monotonic with nothing
said about accuracy. It should NOT be confused with CLOCK_MONOTONIC
which is directly tied to xtime and therefor is ntp corrected.
These are only the concerns I have from having a rather quick look at
the code. I am sure that there are other issues...
--
George Anzinger george@mvista.com
HRT (High-res-timers): http://sourceforge.net/projects/high-res-timers/
next prev parent reply other threads:[~2005-09-14 19:40 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-13 10:00 2.6.13-rt6, ktimer subsystem Ingo Molnar
2005-09-13 19:59 ` Lee Revell
2005-09-13 20:06 ` Lee Revell
2005-09-13 20:10 ` Ingo Molnar
2005-09-13 20:36 ` Lee Revell
2005-09-15 7:55 ` Ingo Molnar
2005-09-15 11:37 ` Ingo Molnar
2005-09-14 15:56 ` Darren Hart
2005-09-14 22:09 ` Darren Hart
2005-09-14 19:38 ` George Anzinger [this message]
2005-09-15 2:25 ` Thomas Gleixner
2005-09-15 22:35 ` George Anzinger
2005-09-15 22:53 ` Thomas Gleixner
2005-09-15 23:10 ` George Anzinger
2005-09-15 23:09 ` Daniel Walker
2005-09-16 0:08 ` George Anzinger
2005-09-15 9:20 ` Ingo Molnar
2005-09-15 23:04 ` George Anzinger
2005-09-15 23:20 ` Thomas Gleixner
2005-09-15 9:43 ` Roman Zippel
2005-09-26 7:02 ` 2.6.14-rc2-rt2 Ingo Molnar
2005-09-27 6:13 ` 2.6.14-rc2-rt2 Eran Mann
2005-09-27 10:33 ` 2.6.14-rc2-rt2 Ingo Molnar
2005-09-27 16:59 ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
2005-09-27 22:15 ` 2.6.14-rc2-rt2 Thomas Gleixner
2005-09-27 23:11 ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
2005-09-27 23:10 ` 2.6.14-rc2-rt2 Daniel Walker
2005-09-28 3:04 ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
2005-09-28 9:48 ` 2.6.14-rc2-rt2 Ingo Molnar
2005-09-28 16:34 ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
2005-09-29 9:07 ` 2.6.14-rc2-rt2 Eran Mann
2005-09-28 9:10 ` 2.6.14-rc2-rt2 Peter Zijlstra
2005-09-29 16:45 ` 2.6.14-rc2-rt2 Badari Pulavarty
2005-09-30 10:58 ` 2.6.14-rc2-rt2 Ingo Molnar
2005-10-02 15:18 ` 2.6.14-rc3-rt1 Ingo Molnar
2005-10-02 15:42 ` 2.6.14-rc3-rt1 Mark Knecht
2005-10-02 19:25 ` 2.6.14-rc3-rt1 Mark Knecht
2005-10-06 17:13 ` 2.6.14-rc3-rt1 Steven Rostedt
2005-10-07 11:09 ` [patch] pcmcia-shutdown-fix.patch Ingo Molnar
2005-10-07 19:17 ` Russell King
2005-10-07 19:46 ` Steven Rostedt
2005-10-10 15:13 ` Steven Rostedt
2005-10-10 15:37 ` Steven Rostedt
2005-10-02 20:51 ` 2.6.14-rc3-rt1 Felix Oxley
2005-10-02 21:55 ` 2.6.14-rc3-rt1 Felix Oxley
2005-10-03 6:33 ` 2.6.14-rc3-rt1 Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43287C52.7050002@mvista.com \
--to=george@mvista.com \
--cc=dwalker@mvista.com \
--cc=high-res-timers-discourse@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.