All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wu Zhangjin <wuzhangjin@gmail.com>
To: pajko <kpajko79@gmail.com>
Cc: linux-kernel@vger.kernel.org,
	GCC Patches <gcc-patches@gcc.gnu.org>,
	wuzhangjin@gmail.com, Adam Nemet <anemet@caviumnetworks.com>,
	rostedt@goodmis.org, linux-kernel@vger.kernel.org,
	linux-mips@linux-mips.org, Thomas Gleixner <tglx@linutronix.de>,
	Ralf Baechle <ralf@linux-mips.org>,
	Nicholas Mc Guire <der.herr@hofr.at>,
	Richard Sandiford <rdsandiford@googlemail.com>,
	David Daney <ddaney@caviumnetworks.com>
Subject: Re: [PATCH -v4 9/9] tracing: add function graph tracer support for MIPS
Date: Sun, 25 Oct 2009 18:48:37 +0800	[thread overview]
Message-ID: <1256467717.6143.13.camel@falcon> (raw)
In-Reply-To: <26008418.post@talk.nabble.com>

(Added linux-mips mailing list and the other people to the CC list.)

On Thu, 2009-10-22 at 04:37 -0700, pajko wrote:
[...]
> > 
> 
> All this stuff can be avoided having PROFILE_BEFORE_PROLOGUE enabled in GCC
> (gcc/config/mips/mips.h), like it is done one several other architectures.
> Some of them even require it to be set for a working _mcount. 
> Putting the call of _mcount before the function prologue should make no harm
> (it's working for me), and this way RA can be hooked for function graph
> tracing
> before it is saved to stack in the function prologue. Thus there will be no
> difference between leaf and non-leaf functions.

Good idea! Seems PROFILE_BEFORE_PROLOGUE is commented by default in
gcc/config/mips/mips.h of gcc 4.4:

/* #define PROFILE_BEFORE_PROLOGUE */

if we enable this macro, the handling will be the same to non-leaf and
leaf function, so, David's patch to gcc is not need again.

> This change is no big deal as GCC has to be patched anyway to get dynamic
> ftracing (and with 4.2.1 I had to patch it to get ftracing in modules
> working
> - using -mlong-calls -, but it's possible that this is fixed in the newer
> releases).
> 

do you mean if enabling PROFILE_BEFORE_PROLOGUE, there will be some
problems with module support using -mlong-calls?

I have made dynamic ftrace support module with -mlong-calls, I think, if
we move the codes before prologue, it should have no side effect.

        lui     v1,HI16bit     (&_mcount -> v1)
        daddiu  v1,v1,LOW16bit
        move    at,ra
        jalr    v1

Regards,
	Wu Zhangjin

WARNING: multiple messages have this Message-ID (diff)
From: Wu Zhangjin <wuzhangjin@gmail.com>
To: pajko <kpajko79@gmail.com>
Cc: linux-kernel@vger.kernel.org,
	GCC Patches <gcc-patches@gcc.gnu.org>,
	wuzhangjin@gmail.com, Adam Nemet <anemet@caviumnetworks.com>,
	rostedt@goodmis.orglinux-kernel@vger.kernel.org,
	linux-mips@linux-mips.org, Thomas Gleixner <tglx@linutronix.de>,
	Ralf Baechle <ralf@linux-mips.org>,
	Nicholas Mc Guire <der.herr@hofr.at>,
	Richard Sandiford <rdsandiford@googlemail.com>,
	David Daney <ddaney@caviumnetworks.com>
Subject: Re: [PATCH -v4 9/9] tracing: add function graph tracer support for MIPS
Date: Sun, 25 Oct 2009 18:48:37 +0800	[thread overview]
Message-ID: <1256467717.6143.13.camel@falcon> (raw)
Message-ID: <20091025104837.XYsTFBFORf_-cUsqZpe_pTFkczoHRxGAt3JzIIkidGc@z> (raw)
In-Reply-To: <26008418.post@talk.nabble.com>

(Added linux-mips mailing list and the other people to the CC list.)

On Thu, 2009-10-22 at 04:37 -0700, pajko wrote:
[...]
> > 
> 
> All this stuff can be avoided having PROFILE_BEFORE_PROLOGUE enabled in GCC
> (gcc/config/mips/mips.h), like it is done one several other architectures.
> Some of them even require it to be set for a working _mcount. 
> Putting the call of _mcount before the function prologue should make no harm
> (it's working for me), and this way RA can be hooked for function graph
> tracing
> before it is saved to stack in the function prologue. Thus there will be no
> difference between leaf and non-leaf functions.

Good idea! Seems PROFILE_BEFORE_PROLOGUE is commented by default in
gcc/config/mips/mips.h of gcc 4.4:

/* #define PROFILE_BEFORE_PROLOGUE */

if we enable this macro, the handling will be the same to non-leaf and
leaf function, so, David's patch to gcc is not need again.

> This change is no big deal as GCC has to be patched anyway to get dynamic
> ftracing (and with 4.2.1 I had to patch it to get ftracing in modules
> working
> - using -mlong-calls -, but it's possible that this is fixed in the newer
> releases).
> 

do you mean if enabling PROFILE_BEFORE_PROLOGUE, there will be some
problems with module support using -mlong-calls?

I have made dynamic ftrace support module with -mlong-calls, I think, if
we move the codes before prologue, it should have no side effect.

        lui     v1,HI16bit     (&_mcount -> v1)
        daddiu  v1,v1,LOW16bit
        move    at,ra
        jalr    v1

Regards,
	Wu Zhangjin

  reply	other threads:[~2009-10-25 10:49 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1256135456.git.wuzhangjin@gmail.com>
2009-10-21 14:34 ` [PATCH -v4 1/9] tracing: convert trace_clock_local() as weak function Wu Zhangjin
2009-10-21 14:34 ` [PATCH -v4 2/9] MIPS: add mips_timecounter_read() to get high precision timestamp Wu Zhangjin
2009-10-22 13:03   ` pajko
2009-10-21 14:34 ` [PATCH -v4 3/9] tracing: add MIPS specific trace_clock_local() Wu Zhangjin
2009-10-21 14:46   ` Steven Rostedt
2009-10-21 15:11     ` Wu Zhangjin
2009-10-21 14:34 ` [PATCH -v4 4/9] tracing: add static function tracer support for MIPS Wu Zhangjin
2009-10-21 15:24   ` Steven Rostedt
2009-10-22 17:47     ` Wu Zhangjin
2009-10-22 17:59       ` Steven Rostedt
2009-10-22 18:34         ` Wu Zhangjin
2009-10-22 18:34       ` David Daney
2009-10-22 19:13         ` Wu Zhangjin
2009-10-22 20:30         ` Adam Nemet
2009-10-22 20:52           ` Steven Rostedt
2009-10-22 21:09             ` Frederic Weisbecker
2009-10-22 21:29             ` Adam Nemet
2009-10-22 21:55               ` Steven Rostedt
2009-10-23  1:09                 ` Wu Zhangjin
2009-10-22 22:17         ` Richard Sandiford
2009-10-23  9:32           ` Wu Zhangjin
2009-10-23 22:48           ` [PATCH] MIPS: Add option to pass return address location to _mcount. Was: " David Daney
2009-10-24  9:12             ` Richard Sandiford
2009-10-24 15:53               ` Wu Zhangjin
2009-10-26 19:08               ` [PATCH] MIPS: Add option to pass return address location to _mcount David Daney
2009-10-27  1:04                 ` Wu Zhangjin
2009-10-27 21:20                 ` Richard Sandiford
2009-10-29  6:44                   ` Wu Zhangjin
2009-10-29 16:32                     ` David Daney
2009-10-29 18:11                   ` David Daney
2009-10-23  7:21         ` [PATCH -v4 4/9] tracing: add static function tracer support for MIPS Wu Zhangjin
2009-10-21 14:34 ` [PATCH -v4 5/9] tracing: enable HAVE_FUNCTION_TRACE_MCOUNT_TEST " Wu Zhangjin
2009-10-21 14:35 ` [PATCH -v4 6/9] tracing: add an endian argument to scripts/recordmcount.pl Wu Zhangjin
2009-10-21 15:26   ` Steven Rostedt
2009-10-21 14:35 ` [PATCH -v4 7/9] tracing: add dynamic function tracer support for MIPS Wu Zhangjin
2009-10-21 14:35 ` [PATCH -v4 8/9] tracing: not trace mips_timecounter_init() in MIPS Wu Zhangjin
2009-10-21 14:35 ` [PATCH -v4 9/9] tracing: add function graph tracer support for MIPS Wu Zhangjin
2009-10-21 15:21   ` Wu Zhangjin
2009-10-21 16:14     ` Steven Rostedt
2009-10-21 16:12   ` Steven Rostedt
2009-10-21 16:37     ` David Daney
2009-10-21 16:46       ` Steven Rostedt
2009-10-21 17:07         ` David Daney
2009-10-21 17:23           ` Steven Rostedt
2009-10-21 17:48             ` David Daney
2009-10-21 18:09               ` Steven Rostedt
2009-10-21 18:17                 ` Nicholas Mc Guire
2009-10-21 18:34                   ` Steven Rostedt
2009-10-21 18:25                 ` David Daney
2009-10-22 11:38             ` Wu Zhangjin
2009-10-22 13:17               ` Steven Rostedt
2009-10-22 13:31                 ` Wu Zhangjin
2009-10-22 15:20                   ` Steven Rostedt
2009-10-22 15:59               ` David Daney
2009-10-22 16:11                 ` Steven Rostedt
2009-10-22 16:16                   ` David Daney
2009-10-22 18:00                     ` Steven Rostedt
2009-10-22 17:39     ` Wu Zhangjin
2009-10-22 17:58       ` Steven Rostedt
2009-10-22 11:37   ` pajko
2009-10-25 10:48     ` Wu Zhangjin [this message]
2009-10-25 10:48       ` Wu Zhangjin
2009-10-25 13:37       ` Patrik Kluba
2009-10-25 13:37         ` Patrik Kluba
2009-10-25 14:22         ` Wu Zhangjin
2009-10-25 15:55       ` Richard Sandiford

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=1256467717.6143.13.camel@falcon \
    --to=wuzhangjin@gmail.com \
    --cc=anemet@caviumnetworks.com \
    --cc=ddaney@caviumnetworks.com \
    --cc=der.herr@hofr.at \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=kpajko79@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=ralf@linux-mips.org \
    --cc=rdsandiford@googlemail.com \
    --cc=rostedt@goodmis.org \
    --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.