From: john cooper <john.cooper@timesys.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: LKML <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
john cooper <john.cooper@timesys.com>
Subject: Re: MIPS PREEMPT_RT update..
Date: Tue, 08 Nov 2005 21:30:35 -0500 [thread overview]
Message-ID: <43715F4B.5010604@timesys.com> (raw)
In-Reply-To: <20051108205348.GA15964@elte.hu>
Ingo Molnar wrote:
> * john cooper <john.cooper@timesys.com> wrote:
>
>
>>Ingo,
>> Attached is a patch relative to 2.6.14-rc5-rt5
>>which brings arch/mips up to date for PREEMPT_RT.
>>This was derived from a similar patch I had for
>>2.6.13 but I'd assumed it was rather dated to apply
>>to current work. As it turned out both versions
>>were quite close.
>
>
> thanks - merged your patches, they will be in the next
> -rt release.
I neglected to mention the latency instrumentation
is a major TBD due to limitations of the MIPS ABI
which spill over into gcc. Namely the gcc extension
__builtin_return_address(n) is not usable for 0 < n
(though I seem to recall it being broken for 0 as
well in gcc 3.4.1).
For ARM I was able to trivially walk the stack as
a substitute for __builtin_return_address(). Given
the involved and nondeterministic method of walking
the stack called out by the MIPS ABI I don't see
this as an option. This limitation also appears to
have influenced arch/mips/kernel/traps.c: dump_stack(),
show_trace() as the ABI suggested method was abandoned.
Instead show_trace() simply scans through the entirety
of the stack, printing out anything and everything
which appears to be a valid kernel text address. Your
stack trace is in there somewhere scattered amongst
a healthy assortment of unrelated data found in the
stack.
A potential solution may be some method of
maintaining a small circular buffer available per
thread of execution and overloading the mcount()
FUNCTION_PROLOGUE to log the entry address of the
function in which it is embedded. However I don't
know if this is possible and even if so it doesn't
generalize well to asynchronous execution (interrupts,
exceptions) as there is no easy way to associate the
buffer context to the execution path.
Anyway this is on the back burner as I have a few
other issues to address beforehand.
-john
--
john.cooper@timesys.com
next prev parent reply other threads:[~2005-11-09 3:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <436B85E1.1050103@timesys.com>
2005-11-08 20:53 ` MIPS PREEMPT_RT update Ingo Molnar
2005-11-09 2:30 ` john cooper [this message]
2005-11-09 11:30 ` 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=43715F4B.5010604@timesys.com \
--to=john.cooper@timesys.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--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.