| To: | Ralf Baechle <ralf@linux-mips.org> |
|---|---|
| Subject: | [PATCH 1/5] tracing, MIPS: Speed up function graph tracer |
| From: | Wu Zhangjin <wuzhangjin@gmail.com> |
| Date: | Thu, 20 Jan 2011 03:28:27 +0800 |
| Cc: | Wu Zhangjin <wuzhangjin@gmail.com>, Steven Rostedt <srostedt@redhat.com>, linux-mips@linux-mips.org |
| Dkim-signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:date:message-id:x-mailer :in-reply-to:references:in-reply-to:references; bh=xlTacdS9VaVylCtQevnxyeVcxfbwPy5Swfg69u5GWuQ=; b=xnWdpS78xnDEcdh19zLbr7UNG39Su+DlOSw4YZsqSe+xfSXrQ4WrfVQo7IAri2WW/D gC8uPvFVNWDghD9LB3B2J9UjkyV8Wfuzz/hh501UmS42NTp/deCNagBiNW43YrhGMyx4 TS7wpjkaI0hqutMgFSXnot7ZWNwoco+zWFJMc= |
| Domainkey-signature: | a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; b=JgSvDjvZ/CzUKgQdrYtW4c6cLj2JTuHD7Q5/H+nfipF8+EOVK6cRAtHbqWyrdbJrZB 8VxtYnqGxup4aGS+D6bRY1N/fbyVIMnaF9+W8XPYTppWACeKCvw7QOhV4ore55wbA/FN 98kXMV/lv3+BPVIY0UAfQWOjkYVpYm01xcq0Y= |
| In-reply-to: | <cover.1295464855.git.wuzhangjin@gmail.com> |
| In-reply-to: | <cover.1295464855.git.wuzhangjin@gmail.com> |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| References: | <cover.1295464855.git.wuzhangjin@gmail.com> |
| References: | <cover.1295464855.git.wuzhangjin@gmail.com> |
| Sender: | linux-mips-bounce@linux-mips.org |
This simply moves the "ip-=4" statement down to the end of the do { ...
} while (...); loop, which reduces one unneeded subtration and the
subsequent memory loading and comparation. as a result, speed up the
function a little.
Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
---
arch/mips/kernel/ftrace.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/arch/mips/kernel/ftrace.c b/arch/mips/kernel/ftrace.c
index 5a84a1f..635c1dc 100644
--- a/arch/mips/kernel/ftrace.c
+++ b/arch/mips/kernel/ftrace.c
@@ -200,19 +200,17 @@ unsigned long ftrace_get_parent_addr(unsigned long
self_addr,
int faulted;
/*
- * For module, move the ip from calling site of mcount to the
- * instruction "lui v1, hi_16bit_of_mcount"(offset is 20), but for
- * kernel, move to the instruction "move ra, at"(offset is 12)
+ * For module, move the ip from calling site of mcount after the
+ * instruction "lui v1, hi_16bit_of_mcount"(offset is 24), but for
+ * kernel, move after the instruction "move ra, at"(offset is 16)
*/
- ip = self_addr - (in_module(self_addr) ? 20 : 12);
+ ip = self_addr - (in_module(self_addr) ? 24 : 16);
/*
* search the text until finding the non-store instruction or "s{d,w}
* ra, offset(sp)" instruction
*/
do {
- ip -= 4;
-
/* get the code at "ip": code = *(unsigned int *)ip; */
safe_load_code(code, ip, faulted);
@@ -226,7 +224,9 @@ unsigned long ftrace_get_parent_addr(unsigned long
self_addr,
if ((code & S_R_SP) != S_R_SP)
return parent_addr;
- } while (((code & S_RA_SP) != S_RA_SP));
+ /* Move to the next instruction */
+ ip -= 4;
+ } while ((code & S_RA_SP) != S_RA_SP);
sp = fp + (code & OFFSET_MASK);
--
1.7.1
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH 2/5] tracing, MIPS: Substitute in_kernel_space() for in_module(), Wu Zhangjin |
|---|---|
| Next by Date: | [PATCH 3/5] tracing, MIPS: Clean up prepare_ftrace_return(), Wu Zhangjin |
| Previous by Thread: | Re: [PATCH 2/5] tracing, MIPS: Substitute in_kernel_space() for in_module(), wu zhangjin |
| Next by Thread: | Re: [PATCH 1/5] tracing, MIPS: Speed up function graph tracer, Ralf Baechle |
| Indexes: | [Date] [Thread] [Top] [All Lists] |