Message ID | alpine.DEB.2.00.1012021432510.24917@bulbul |
---|---|
State | New |
Headers | show |
On Thu, Dec 2, 2010 at 1:12 PM, Kirill Batuzov <batuzovk@ispras.ru> wrote: > 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> > --- > > This patch appeared during investigation of performance issues with > S5PC110 emulation for Samsung. It increses OS startup speed significantly. The patch looks reasonable, but I didn't see any visible difference in my tests. Could you report your numbers?
On 04.12.2010 23:11, Blue Swirl wrote: > On Thu, Dec 2, 2010 at 1:12 PM, Kirill Batuzov<batuzovk@ispras.ru> wrote: >> 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> >> --- >> >> This patch appeared during investigation of performance issues with >> S5PC110 emulation for Samsung. It increses OS startup speed significantly. > > The patch looks reasonable, but I didn't see any visible difference in > my tests. Could you report your numbers? The exact numbers depend on complexity of guest system. - For basic Debian system (no X-server) on versatilepb we observed 25% decrease of boot time. - For to-be released Samsung LIMO platform on S5PC110 board we observed 2x (for older version) and 3x (for newer version) decrease of boot time. - Small CPU-intensive benchmarks are not affected because they are completely handled by 'tb_find_fast'. We also noticed better response time for heavyweight GUI applications, but I do not know how to measure it accurately. ---- Kirill.
On Sun, Dec 5, 2010 at 7:14 AM, Kirill Batuzov <batuzovk@ispras.ru> wrote: > On 04.12.2010 23:11, Blue Swirl wrote: >> >> On Thu, Dec 2, 2010 at 1:12 PM, Kirill Batuzov<batuzovk@ispras.ru> wrote: >>> >>> 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> >>> --- >>> >>> This patch appeared during investigation of performance issues with >>> S5PC110 emulation for Samsung. It increses OS startup speed >>> significantly. >> >> The patch looks reasonable, but I didn't see any visible difference in >> my tests. Could you report your numbers? > > The exact numbers depend on complexity of guest system. > - For basic Debian system (no X-server) on versatilepb we observed 25% > decrease of boot time. > - For to-be released Samsung LIMO platform on S5PC110 board we observed 2x > (for older version) and 3x (for newer version) decrease of boot time. > - Small CPU-intensive benchmarks are not affected because they are > completely handled by 'tb_find_fast'. > > We also noticed better response time for heavyweight GUI applications, but I > do not know how to measure it accurately. OK. Thanks, applied.
diff --git a/cpu-exec.c b/cpu-exec.c index dbdfdcc..39e5eea 100644 --- a/cpu-exec.c +++ b/cpu-exec.c @@ -167,6 +167,12 @@ static TranslationBlock *tb_find_slow(target_ulong pc, tb = tb_gen_code(env, pc, cs_base, flags, 0); found: + /* Move the last found TB to the head of the list */ + if (likely(*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;