All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH, RFT] Speedup 'tb_find_slow' by using the same heuristic as during memory page lookup
@ 2010-11-22 19:42 Kirill Batuzov
  2010-11-23 12:38 ` Riku Voipio
  2010-11-23 16:23 ` Mulyadi Santosa
  0 siblings, 2 replies; 3+ messages in thread
From: Kirill Batuzov @ 2010-11-22 19:42 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1486 bytes --]

Move the last found TB to the head of the list so it will be found more 
quickly next time it will be looked for.

Signed-off-by: Kirill Batuzov <batuzovk@ispras.ru>
Signed-off-by: Pavel Yushchenko <pau@ispras.ru>
---
Hello.  This patch gives significant boost to a used by us rather rich 
(for embedded one - featuring X-server, many daemons and applications) 
ARM-based system literally decreasing its boot to desktop time by TWO 
times!  (Average number of traversed 'tb_phys_hash' entries in the main 
loop of the 'tb_find_slow' function reduced from 20 to 1.5.)  We were 
able to shorten boot to login time by about 25% as well using Debian on 
versatilepb (no X-server, only basic system). Seems like kernel booting 
time is not affected.  No problems were encountered during our experiments.

We are looking forward for comments about this change and help with 
testing. Thanks in advance!

  cpu-exec.c |    5 +++++
  1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/cpu-exec.c b/cpu-exec.c
index 5d6dd51..55c4526 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -161,6 +161,11 @@ static TranslationBlock *tb_find_slow(target_ulong pc,
      tb = tb_gen_code(env, pc, cs_base, flags, 0);

   found:
+    if (*ptb1) {
+        *ptb1 = tb->phys_hash_next;
+        tb->phys_hash_next = tb_phys_hash[h];
+        tb_phys_hash[h] = tb;
+    }
      /* we add the TB in the virtual pc hash table */
      env->tb_jmp_cache[tb_jmp_cache_hash_func(pc)] = tb;
      return tb;

[-- Attachment #2: tb_find_slow-locality-heuristic.patch --]
[-- Type: application/x-patch, Size: 522 bytes --]

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-11-23 16:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-22 19:42 [Qemu-devel] [PATCH, RFT] Speedup 'tb_find_slow' by using the same heuristic as during memory page lookup Kirill Batuzov
2010-11-23 12:38 ` Riku Voipio
2010-11-23 16:23 ` Mulyadi Santosa

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.