LWN.net Logo

Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.32-15

From:  Ingo Molnar <mingo@elte.hu>
To:  Mark_H_Johnson@raytheon.com
Subject:  [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.32-15
Date:  Fri, 10 Dec 2004 11:53:52 +0100
Cc:  Amit Shah <amit.shah@codito.com>, Karsten Wiese <annabellesgarden@yahoo.de>, Bill Huey <bhuey@lnxw.com>, Adam Heath <doogie@debian.org>, emann@mrv.com, Gunther Persoons <gunther_persoons@spymac.com>, "K.R. Foley" <kr@cybsft.com>, linux-kernel@vger.kernel.org, Florian Schmidt <mista.tapas@gmx.net>, Fernando Pablo Lopez-Lezcano <nando@ccrma.Stanford.EDU>, Lee Revell <rlrevell@joe-job.com>, Rui Nuno Capela <rncbc@rncbc.org>, Shane Shrybman <shrybman@aei.ca>, Esben Nielsen <simlo@phys.au.dk>, Thomas Gleixner <tglx@linutronix.de>, Michal Schmidt <xschmi00@stud.feec.vutbr.cz>

* Ingo Molnar <mingo@elte.hu> wrote:

> this smells too. [...]

found two brown-paperbag bugs that caused bad latencies in the -RT
kernel: when i added PREEMPT_DIRECT (which first showed up in -32-10) i
also added a missed-reschedule bug to try_to_wake_up() and to
mutex/semaphore-unlock (__up()). Oops.

i dont think this bug could explain a msec-range latency because the
syscall return path should catch the missed reschedule and it would need
continuous syscall execution in the milliseconds range by a lowprio task
for a latency to be transported to latencytest, but certainly the bug
doesnt help latencies. The -32-15 kernel can be downloaded from the
usual place:

 http://redhat.com/~mingo/realtime-preempt/

other changes in -32-15: more work on the tracer, cleaner trace output
and the tracing of syscall entries and returns, with arguments and
return values displayed as well (i.e. a simple strace variant). Here is
how a syscall now looks like in /proc/latency_trace:

 loop-tes-3885  0....  100µs > sys_getppid (002fcffc 00000001 0000007b)
 loop-tes-3885  0....  101µs+: sys_getppid (sysenter_past_esp)
 loop-tes-3885  0d...  103µs < (3868)

'< (return-val)' is the syscall return value, '> sys_name(params)' is
the syscall itself. (note that the return path is also used by
interrupts, so it's not purely a syscall-return point) This makes it
easier to track userspace execution.

	Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds