All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alan Kao <alankao@andestech.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: "Palmer Dabbelt" <palmer@sifive.com>,
	"Albert Ou" <albert@sifive.com>,
	"sw-dev@groups.riscv.org" <sw-dev@groups.riscv.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Greentime Ying-Han Hu(胡英漢)" <greentime@andestech.com>,
	"Zong Zong-Xian Li(李宗憲)" <zong@andestech.com>
Subject: Re: ftrace: Proposal for an Alternative RecordMcount framework
Date: Thu, 1 Mar 2018 10:05:08 +0800	[thread overview]
Message-ID: <20180301020507.GA24550@andestech.com> (raw)
In-Reply-To: <20180227161252.25162d81@vmware.local.home>

On Wed, Feb 28, 2018 at 05:12:52AM +0800, Steven Rostedt wrote:
> On Tue, 27 Feb 2018 18:04:26 +0800
> Alan Kao <alankao@andestech.com> wrote:
>  
> > 1. During the final linking stages, do "objdump vmlinux.o | grep ..." [2]
> 
> Note, doing it at that stage takes the longest time. It makes small
> changes much longer to compile. That said...
>

What if we can have some option to *disable* all the recordmcount.pl lauches
after every .o?  There will be only an oneshot grep for a near-complete
vmlinux binary.

> > 2. Form the output as an ELF objecj
> > 3. Link the object to __mcount_loc_start symbol
> > 4. Done
> > 
> > With the similar reason as the patch [3], we should mark _mcount to be
> > a weak symbol to prevent it from being relaxed later.
> > 
> > We would like to know your opinion and comments on this.
> > Thanks!
> 
> What about just having your arch use recordmcount.c instead? It doesn't
> do any grepping. It is an elf reader and modifier and modifies the .o
> file directly.

Thanks for the hint.  But after a quick scan, it seems that recordmcount.c
processes .o files in a per-file basis, which means that we will still
suffer from the linker relaxation problem.

> 
> Note, I will be rewriting that code in the near future too, to
> consolidate it with objtool.
> 
> -- Steve

Please allow me to state the problem more clearly here.  I hope this helps.

1. locations of mcount are recorded in a per-file basis.
2. to optimize the binary, the linker turns on some aggressive
   options, including relaxation.
3. the optimizations changes the original offset.
4. already recorded mcount call-sites no longer point to their
   real positions.
5. still a linked vmlinux is made.
6. dynamic ftrace breaks the real logic in the kernel space,
   panics happen.

Thanks,
Alan

  reply	other threads:[~2018-03-01  2:08 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-27 10:04 ftrace: Proposal for an Alternative RecordMcount framework Alan Kao
2018-02-27 21:12 ` Steven Rostedt
2018-03-01  2:05   ` Alan Kao [this message]
2018-03-07  1:47     ` Alan Kao
2018-03-07  2:00       ` Steven Rostedt

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=20180301020507.GA24550@andestech.com \
    --to=alankao@andestech.com \
    --cc=albert@sifive.com \
    --cc=greentime@andestech.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=palmer@sifive.com \
    --cc=rostedt@goodmis.org \
    --cc=sw-dev@groups.riscv.org \
    --cc=zong@andestech.com \
    /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.