Re: [PATCH 5/5] IA64 dynamic ftrace support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Dec 25, 2008 at 05:50:50AM +0800, Keith Owens wrote:
> On Wed, 24 Dec 2008 08:29:05 -0500, 
> Steven Rostedt <srostedt@xxxxxxxxxx> wrote:
> >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?
> >
> >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?
> 
> The IA64 kernel uses the same gp register throughout, it is compiled
> with -mconstant-gp.  So changing the target address from one kernel
> function to another only requires changing the destination address in
> the PLT stub, no other registers are affected.
yes, for kernel, this is simple. Just changing the target address is ok,
and the change is atomic, as it's a 64-bit write. For module, it's not
simple. Module has different gp register against kernel. In a module,
_mcount must save its gp first and then jump to kernel. That's why we
can't directly use a jump.

I'm considering link some code to ftrace_call in recordmcount.pl, but
recordmocunt.pl is called for each file. If a module has multiple files,
there will be some duplicate code. Another issue how can we find the
code's address when ftrace to convert code to nop.

Thanks,
Shaohua
--
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux