All of lore.kernel.org
 help / color / mirror / Atom feed
From: Keith Owens <kaos@ocs.com.au>
To: Paulo Marques <pmarques@grupopie.com>
Cc: Ingo Molnar <mingo@elte.hu>, Andi Kleen <ak@muc.de>,
	linux-kernel@vger.kernel.org
Subject: Re: [patch] Latency Tracer, voluntary-preempt-2.6.8-rc4-O6
Date: Sat, 14 Aug 2004 22:17:24 +1000	[thread overview]
Message-ID: <8634.1092485844@ocs3.ocs.com.au> (raw)
In-Reply-To: Your message of "Sat, 14 Aug 2004 05:50:50 +0100." <411D9A2A.1000202@grupopie.com>

On Sat, 14 Aug 2004 05:50:50 +0100, 
Paulo Marques <pmarques@grupopie.com> wrote:
>Well, I found some time and decided to give it a go :)

This patch regresses some recent changes to kallsyms which handle
aliased symbols, IOW symbols with the same address.  The speed up is
very good, but it has two problems with repeated addresses.

The binary chop will give different results on different configs.
Depending on the chop, it will pick any one of the aliased symbols, the
previous kallsyms would always pick the first name.  For consistent bug
reports, always report the first symbol from an aliased set.

When calculating the size of a symbol, you must skip the aliased
entries.

Patch over kallsyms-speedup, to handle aliased symbols again.  Also
removes a warning about mixing code and declarations.

Index: linux/kernel/kallsyms.c
===================================================================
--- linux.orig/kernel/kallsyms.c	Sat Aug 14 22:16:06 2004
+++ linux/kernel/kallsyms.c	Sat Aug 14 22:16:04 2004
@@ -107,7 +107,8 @@ const char *kallsyms_lookup(unsigned lon
 	namebuf[0] = 0;
 
 	if (is_kernel_text(addr) || is_kernel_inittext(addr)) {
-		unsigned long symbol_end;
+		unsigned long symbol_end = 0;
+		unsigned prefix;
 		char *name;
 
 		/* do a binary search on the sorted kallsyms_addresses array */
@@ -118,6 +119,7 @@ const char *kallsyms_lookup(unsigned lon
 			if( kallsyms_addresses[mid] <= addr ) low = mid;
 			else high = mid;
 		}
+		while (low && kallsyms_addresses[low-1] == kallsyms_addresses[low]) --low;
 
 		/* Grab name */
 		i = 0;
@@ -135,7 +137,6 @@ const char *kallsyms_lookup(unsigned lon
 		}
 
 		/* find the last stem before the actual symbol that as 0 prefix */
-		unsigned prefix;
 		for (; i <= low; i++) { 
 			prefix=*name;
 			if (prefix == 0) {
@@ -156,15 +157,20 @@ const char *kallsyms_lookup(unsigned lon
 			name += strlen(name) + 1;
 		}
 
-		if(low == kallsyms_num_syms - 1) {
+		/* Search for next non-aliased symbol */
+		for (i = low + 1; i < kallsyms_num_syms; i++) {
+			if (kallsyms_addresses[i] > kallsyms_addresses[low]) {
+				symbol_end = kallsyms_addresses[i];
+				break;
+			}
+		}
+		if (!symbol_end) {
 			/* At worst, symbol ends at end of section. */
 			if (is_kernel_inittext(addr))
 				symbol_end = (unsigned long)_einittext;
 			else
 				symbol_end = (unsigned long)_etext;
 		}
-		else
-			symbol_end = kallsyms_addresses[low + 1];
 		
 		*symbolsize = symbol_end - kallsyms_addresses[low];
 		*modname = NULL;


  parent reply	other threads:[~2004-08-14 12:18 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2m9bF-kH-13@gated-at.bofh.it>
     [not found] ` <2m9EG-Js-5@gated-at.bofh.it>
     [not found]   ` <2md5B-36u-11@gated-at.bofh.it>
     [not found]     ` <2mkTt-BZ-11@gated-at.bofh.it>
     [not found]       ` <2nrJd-7Dx-19@gated-at.bofh.it>
     [not found]         ` <2ouFe-2vz-63@gated-at.bofh.it>
     [not found]           ` <2rfT9-5wi-17@gated-at.bofh.it>
     [not found]             ` <2rF1c-6Iy-7@gated-at.bofh.it>
     [not found]               ` <2sxEs-46P-1@gated-at.bofh.it>
     [not found]                 ` <2sCkH-7i5-15@gated-at.bofh.it>
     [not found]                   ` <2sHu9-2EW-31@gated-at.bofh.it>
2004-08-13 12:08                     ` [patch] Latency Tracer, voluntary-preempt-2.6.8-rc4-O6 Andi Kleen
2004-08-13 12:15                       ` Ingo Molnar
2004-08-13 12:16                         ` Ingo Molnar
2004-08-13 12:18                         ` Andi Kleen
2004-08-13 13:51                           ` Ingo Molnar
2004-08-14  4:50                             ` Paulo Marques
2004-08-14  5:01                               ` Lee Revell
2004-08-14 13:35                                 ` Paulo Marques
2004-08-14 16:49                                   ` Lee Revell
2004-08-14  7:15                               ` Ingo Molnar
2004-08-14 13:32                                 ` Paulo Marques
2004-08-14 12:17                               ` Keith Owens [this message]
2004-08-15  0:21                                 ` Paulo Marques
2004-08-17 12:14                                 ` Paulo Marques
2004-08-17 13:05                                   ` Keith Owens
2004-08-17 14:02                                     ` Paulo Marques
2004-08-17 16:23                                       ` Sam Ravnborg
2004-08-17 17:55                                         ` Ingo Molnar
2004-08-17 18:17                                           ` Paulo Marques
2004-08-14 12:41                               ` Andi Kleen
2004-08-14 13:45                                 ` Paulo Marques
2004-07-26  8:23 preempt-timing-2.6.8-rc1 Ingo Molnar
2004-07-26  8:29 ` preempt-timing-2.6.8-rc1 Lee Revell
2004-07-26  8:35   ` [patch] voluntary-preempt-2.6.8-rc2-J3 Ingo Molnar
2004-07-26  9:00     ` Lee Revell
2004-07-26 12:40       ` Ingo Molnar
2004-07-26 20:47         ` [patch] voluntary-preempt-2.6.8-rc2-J7 Ingo Molnar
2004-07-29 22:26           ` [patch] voluntary-preempt-2.6.8-rc2-M5 Ingo Molnar
2004-08-01 19:30             ` [patch] voluntary-preempt-2.6.8-rc2-O2 Ingo Molnar
2004-08-09 10:46               ` [patch] voluntary-preempt-2.6.8-rc3-O4 Ingo Molnar
2004-08-10 13:26                 ` [patch] voluntary-preempt-2.6.8-rc3-O5 Ingo Molnar
2004-08-12 23:51                   ` [patch] Latency Tracer, voluntary-preempt-2.6.8-rc4-O6 Ingo Molnar
2004-08-13  1:25                     ` Lee Revell
2004-08-13  1:31                       ` Lee Revell
2004-08-13  2:39                         ` Lee Revell
2004-08-13  3:54                           ` Lee Revell
2004-08-13  4:23                             ` Lee Revell
2004-08-13  4:35                               ` Roland Dreier
2004-08-13  4:41                                 ` Lee Revell
2004-08-13  4:46                                   ` Roland Dreier
2004-08-13 10:21                                     ` Ingo Molnar
2004-08-13 10:16                               ` Ingo Molnar
2004-08-13  4:49                     ` Matt Heler
2004-08-13  9:53                       ` Peter Zijlstra
2004-08-13 10:19                         ` Ingo Molnar
2004-08-13 10:23                           ` Peter Zijlstra
2004-08-13  4:58                     ` Lee Revell
2004-08-13 10:22                       ` Ingo Molnar
2004-08-13 18:57                         ` Lee Revell
2004-08-13  5:27                     ` Lee Revell
2004-08-13  5:41                       ` Lee Revell
2004-08-13 10:31                         ` Ingo Molnar
2004-08-13 19:47                           ` Lee Revell
2004-08-16 23:46                           ` Lee Revell
2004-08-17  7:48                             ` Ingo Molnar
2004-08-17  7:56                               ` Lee Revell
2004-08-17 19:18                               ` Theodore Ts'o
2004-08-19 10:54                                 ` Lee Revell
2004-08-19 11:19                                 ` Lee Revell
2004-08-19 19:30                                   ` Theodore Ts'o
2004-08-19 22:32                                     ` Lee Revell
2004-08-19 22:50                                       ` Lee Revell
2004-08-20  0:10                                       ` Lee Revell
2004-08-13  7:40                     ` Lee Revell
2004-08-13 10:42                     ` Florian Schmidt
2004-08-13 10:54                       ` Ingo Molnar
2004-08-13 12:03                         ` Florian Schmidt
2004-08-13 12:03                           ` Ingo Molnar
     [not found]                             ` <20040813145510.60e9e0f3@mango.fruits.de>
2004-08-14  8:57                               ` Ingo Molnar
2004-08-14 11:28                     ` James Courtier-Dutton
2004-08-14 11:51                       ` Ingo Molnar
2004-08-14 12:19                         ` James Courtier-Dutton
2004-08-14 12:32                           ` Ingo Molnar
2004-08-14 16:52                             ` James Courtier-Dutton
2004-08-19  9:10                               ` Ingo Molnar
2004-08-19  9:07                       ` Ingo Molnar

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=8634.1092485844@ocs3.ocs.com.au \
    --to=kaos@ocs.com.au \
    --cc=ak@muc.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=pmarques@grupopie.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.