mirror of https://lore.kernel.org/lkml/
 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                     ` 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome