diff options
author | Victor Kamensky <kamensky@cisco.com> | 2020-10-07 13:38:37 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-10-08 11:28:52 +0100 |
commit | 4470a04943352224955f17e004962f0f9e1c9b0c (patch) | |
tree | d036fe58b78bb941d438a804994faf3cb3c69277 /meta/conf/machine/include | |
parent | 092228f2df6869e31b157ea08766b3e94bee6e29 (diff) | |
download | openembedded-core-contrib-4470a04943352224955f17e004962f0f9e1c9b0c.tar.gz |
qemu: add 34Kf-64tlb fictitious cpu type
In Yocto Project PR 13992 it was reported that qemumips
in autobuilder runs almost twice slower then qemumips64 and
some times hit time out.
Upon investigations of qemu-system with perf, gdb, and
SystemTap and comparing qemumips and qemumips64 machines
behavior it was noticed that qemu soft mmu code behaves
quite different and in case if qemumips tlbwr instruction
called 16 times more oftern. It happens that in qemumips64
case qemu runs with cpu type that contains 64 TLB, but in case
of qemumips qemu runs with cpu type that contains only
16 TLBs.
The idea of proposed qemu patch is to introduce fictitious
34Kf-64tlb cpu type that defined exactly as 34Kf but has
64 TLBs, instead of original 16 TLBs.
Testing of core-image-full-cmdline:do_testimage with
34Kf-64tlb shows 40% or so test execution real time
improvement.
Note for future porters of the patch: easiest way to update
the patch and be in sync with 34Kf definition is to copy
34Kf machine definition and apply the following changes to
it (just change 15 to 63 of CP0C1_MMU bits value)
[kamensky@coreos-lnx2 qemu]$ diff ~/34Kf.c ~/34Kf-64tlb.c
2c2
< .name = "34Kf",
> .name = "34Kf-64tlb",
6c6
< .CP0_Config1 = MIPS_CONFIG1 | (1 << CP0C1_FP) | (15 << CP0C1_MMU) |
> .CP0_Config1 = MIPS_CONFIG1 | (1 << CP0C1_FP) | (63 << CP0C1_MMU) |
Fixes https://bugzilla.yoctoproject.org/show_bug.cgi?id=13992
Upstream Status: Inappropriate
Signed-off-by: Victor Kamensky <kamensky@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/conf/machine/include')
0 files changed, 0 insertions, 0 deletions