All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paulo Marques <pmarques@grupopie.com>
To: Andi Kleen <ak@muc.de>
Cc: Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org
Subject: Re: [patch] Latency Tracer, voluntary-preempt-2.6.8-rc4-O6
Date: Sat, 14 Aug 2004 14:45:39 +0100	[thread overview]
Message-ID: <411E1783.1030103@grupopie.com> (raw)
In-Reply-To: <20040814124145.GA96097@muc.de>

Andi Kleen wrote:
>>The final algorithm pre-calculates markers on the compressed symbols so 
>>that the search time is almost divided by the number of markers.
> 
> 
> You could do that at compile time (in scripts/kallsyms.c) 

You're right! I'll see if I can come up with a patch.

If this is done in scripts/kallsyms.c, there is less code needed in the 
actual kernel, and there is no time penalty on the first lookup. This is 
a true win-win scenario :)

Thanks a lot for your suggestion.

>>There are still a few issues with this approach. The biggest issue is 
>>that this is clearly a speed/space trade-off, and maybe we don't want to 
>>waste the space on a code path that is not supposed to be "hot". If this 
>>is the case, I can make a smaller patch, that fixes just the name 
>>"decompression" strcpy's.
> 
> 
> I'm surprised that using 8 markers helps anything. There should 
> be many many more 0 stems than that in a not so big kernel.
> Did you actually measure the hit rate of the cache? I bet it is pretty low.

Well, I only left in the resulting source code the pieces that I 
actually measured to be a significant improvment.

The thing is, this is not exactly a cache.

The problem that the markers address is that the decompression must be 
done sequentially.

If I have 20000 symbols and already figured out from the binary search 
that I need symbol 11201 (for instance), I would have to go through 
11201 symbols to get to the symbol I need.

The algorithm I wrote keeps markers in the middle of the stream, so that 
when I try to fetch symbol 11201, I already know where symbol 10000 is 
because of the marker and only have to go through 1201 symbols.

With N markers you get N times the speed on the name search. (actually 
this is not exactly right for high values of N, because you can only use 
a marker that is a 0 stem, but for N<~32 this is a good approximation)

-- 
Paulo Marques - www.grupopie.com
"In a world without walls and fences who needs windows and gates?"

  reply	other threads:[~2004-08-14 13:45 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
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 [this message]
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=411E1783.1030103@grupopie.com \
    --to=pmarques@grupopie.com \
    --cc=ak@muc.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    /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.