From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Jan Kiszka <jan.kiszka@domain.hid>
Cc: Xenomai core <Xenomai-core@domain.hid>
Subject: Re: [Xenomai-core] Overcoming the "foreign" stack
Date: Thu, 07 Oct 2010 20:12:32 +0200 [thread overview]
Message-ID: <4CAE0D90.1070208@domain.hid> (raw)
In-Reply-To: <4CAE04B1.9070503@domain.hid>
Jan Kiszka wrote:
>> I'm on a wait and see stance about generalizing the use of the ftrace
>> framework for our needs; like Gilles saw with ARM, I must admit that I
>> did notice a massive overhead on low-end ppc as well when we moved the
>> pipeline tracer over it. I'm aware of the mcount optimizations that
>> should be there when cycles really matter, and that ftrace does branch
>> directly to the trace function when only a single one exists, but this
>> may not be easy to keep after the generalization has taken place.
>> Anyway, I'll wait for more data to make my opinion.
>
> As I said, ftrace is more the a simple mcount-tracer. And it's standard,
> distros start to enable it in their production kernels these days
> (except for the function tracer).
>
> If the overhead of the ftrace's mcount is too high on low-end platforms
> (I personally haven't tried it there yet), it would probably be a good
> idea to develop some optimizations or allow some variant that does not
> suffer that much - but upstream then.
I can talk about ARM on that subject: the "fix" is to use dynamic ftrace
(I did not get it working, so I am not sure it still has not one too
many indirection layers, but it looks like it does not). But the patches
to get dynamic ftrace working on ARM, though known since march, have not
been merged yet, so will not be here in the upcoming 2.6.36. I suspect
other architectures such as blackfin also lag behind x86. So, in the
mean-time, if we want to get the I-pipe tracer working with a reasonable
overhead, we have to make our own version, and from that perspective,
the version where mcount calls directly the ipipe tracer, is much
simpler than importing the whole dynamic ftrace stuff. So, I vote for
keeping some #ifdefs or Kconfig stuff in the ipipe tracer code to be
able to use a standalone tracer, as it will also simplify getting it to
work with architectures which lag even more behind x86 than ARM or
Blackfin. Say for instance, microblaze, nios, or sparc.
--
Gilles.
next prev parent reply other threads:[~2010-10-07 18:12 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-05 9:32 [Xenomai-core] Overcoming the "foreign" stack Jan Kiszka
2010-10-05 9:56 ` Gilles Chanteperdrix
2010-10-05 10:25 ` Jan Kiszka
2010-10-05 10:32 ` Gilles Chanteperdrix
2010-10-05 10:38 ` Jan Kiszka
2010-10-05 10:51 ` Gilles Chanteperdrix
2010-10-05 10:59 ` Gilles Chanteperdrix
2010-10-05 11:06 ` Jan Kiszka
2010-10-05 11:27 ` Jan Kiszka
2010-10-05 13:15 ` Gilles Chanteperdrix
2010-10-05 13:35 ` Jan Kiszka
2010-10-05 13:42 ` Gilles Chanteperdrix
2010-10-05 13:46 ` Jan Kiszka
2010-10-05 13:50 ` Gilles Chanteperdrix
2010-10-05 14:04 ` Jan Kiszka
2010-10-05 14:21 ` Gilles Chanteperdrix
2010-10-06 9:20 ` Jan Kiszka
2010-10-07 17:08 ` Philippe Gerum
2010-10-07 17:34 ` Jan Kiszka
2010-10-07 18:12 ` Gilles Chanteperdrix [this message]
2010-10-07 18:56 ` Jan Kiszka
2010-10-07 20:48 ` Philippe Gerum
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=4CAE0D90.1070208@domain.hid \
--to=gilles.chanteperdrix@xenomai.org \
--cc=Xenomai-core@domain.hid \
--cc=jan.kiszka@domain.hid \
/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.