From: Steven Rostedt <srostedt@redhat.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [PATCH 5/5] IA64 dynamic ftrace support
Date: Wed, 24 Dec 2008 13:29:05 +0000 [thread overview]
Message-ID: <1230125345.30177.128.camel@localhost.localdomain> (raw)
In-Reply-To: <1230012500.10933.102.camel@sli10-desk.sh.intel.com>
On Wed, 2008-12-24 at 16:08 +0800, Shaohua Li wrote:
> On Wed, Dec 24, 2008 at 09:00:24AM +0800, Steven Rostedt wrote:
> >
> > On Wed, 2008-12-24 at 08:54 +0800, Shaohua Li wrote:
> >
> > >
> > > > > +static unsigned char *ftrace_nop_replace(void)
> > > > > +{
> > > > > + return ftrace_nop_code;
> > > > > +}
> > > > > +
> > > > > +/* In IA64, each function will be added below two bundles with -pg option */
> > > > > +static unsigned char __attribute__((aligned(8)))
> > > > > +ftrace_call_code[MCOUNT_INSN_SIZE] = {
> > > > > + 0x02, 0x40, 0x31, 0x10, 0x80, 0x05, /* alloc r40=ar.pfs,12,8,0 */
> > > > > + 0xb0, 0x02, 0x00, 0x00, 0x42, 0x40, /* mov r43=r0;; */
> > > > > + 0x05, 0x00, 0xc4, 0x00, /* mov r42° */
> > > > > + 0x11, 0x48, 0x01, 0x02, 0x00, 0x21, /* mov r41=r1 */
> > > > > + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* nop.i 0x0 */
> > > >
> > > > If you made your own PLT stub, could you just change the one line to
> > > > jump to that stub?
> > > A simple jump to PLT stub doesn't work in IA64, as a lot of registers
> > > should be saved. I'll do more investigation.
> >
> > So the registers are different depending on what function is called?
> > That is, you would have to change more than one of these lines if you
> > were to change it from calling _mcount to calling ftrace_stub?
> Yes, module has different gp register against kernel. Before jump to
> kernel, the register must be saved.
> We need insert trampoline code in each module. The code should do the
> register save and jump to ftrace_caller. Add a weak function in module.h
> seems ok for the trampoline code, but I don't know how to find the
> function address.
Yes I understand that the module and kernel code is set up differently,
PPC is pretty much the same in this aspect. I'm asking if it is easy to
change a call from the module to kernel core to another function in
kernel core? I must apologize that I'm pretty ignorant to how ia64
works. So there very well can be something that I do not understand that
will prevent this.
Question: if I have a call from the module to _mcount, how much has to
change in the set up of the registers to make it call ftrace_call
instead? Perhaps we could link in a call to ftrace_call via the tricks
in recordmcount.pl to get the info needed to make that change?
-- Steve
next prev parent reply other threads:[~2008-12-24 13:29 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-23 6:08 [PATCH 5/5] IA64 dynamic ftrace support Shaohua Li
2008-12-23 14:35 ` Steven Rostedt
2008-12-24 0:54 ` Shaohua Li
2008-12-24 1:00 ` Steven Rostedt
2008-12-24 8:08 ` Shaohua Li
2008-12-24 13:29 ` Steven Rostedt [this message]
2008-12-24 21:50 ` Keith Owens
2008-12-25 1:08 ` Shaohua Li
2008-12-25 3:54 ` Steven Rostedt
2008-12-25 4:01 ` Shaohua Li
2008-12-26 2:42 ` Shaohua Li
2008-12-31 9:11 ` Shaohua Li
2009-01-06 0:42 ` Luck, Tony
2009-01-08 8:05 ` Shaohua Li
2009-01-08 17:08 ` Steven Rostedt
2009-01-08 20:25 ` Luck, Tony
2009-01-08 22:24 ` Luck, Tony
2009-01-09 2:42 ` Shaohua Li
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=1230125345.30177.128.camel@localhost.localdomain \
--to=srostedt@redhat.com \
--cc=linux-ia64@vger.kernel.org \
/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.