From: Shin-ichiro KAWASAKI <kawasaki@juno.dti.ne.jp>
To: qemu-devel@nongnu.org
Cc: Lionel Landwerlin <lionel.landwerlin@openwide.fr>
Subject: Re: [Qemu-devel] sh : performance problem
Date: Thu, 05 Mar 2009 00:22:21 +0900 [thread overview]
Message-ID: <49AE9CAD.1030805@juno.dti.ne.jp> (raw)
In-Reply-To: <200903040259.18791.paul@codesourcery.com>
Paul Brook wrote:
>>>> Great :) But we're still far from arm :(
>
>> By the way, does someone know why there is some kind of "tlb management
>> code" in exec.c ??
>>
>> Does the SH4 architecture have special features that can't be handled in
>> a generic code ? Or are we just rewriting some code that is already
>> there ... ?
>
> I think you're missing the most important difference; SH uses a software
> managed TLB, whereas ARM uses a hardware managed TLB.
>
> The main consequence of this is that we don't have to model the actual ARM TLB
> at all, it is never directly visible. We effectively implement an infinitely
> large TLB.
>
> For SH the TLB is programmed directly, so we end up having to maintain two
> TLBs: The qemu TLB and the architectural SH TLB. For correct operation pages
> must be removed from the qemu TLB when they are evicted/replaced in the SH
> TLB. The SH TLB is quite small, and flushing qemu TLB entries is quite
> expensive, so this results in fairly poor performance.
>
> MIPS has a similar problem. However in that case the most common TLB
> operations do not directly expose the TLB state. In particular when setting a
> new TLB entry it is unspecified which TLB entry is replaced. At that point
> the OS can't know which ehtry was evicted, so we can lie, and not evict pages
> until the guest does something that allows it to determine the exact TLB
> state. In practice this is sufficient to make mips-linux workreasonably well.
>
> I'm not sure if the same is posible for SH. It probably depends whether URC is
> visible to/used by the guest.
Thank you Paul for your clear explanation. It confirms my guess, and answers my
question also.
As I posted for other mail, I tried to increase the number of tlb entry from 64
to 256 and get performance improvement. This approach modifies real hardware
specification including URC, but same SH-Linux kernel works fine. It implies
that SH-Linux does not refer URC, and MIPS approach might be the solution for
SH too.
Regards,
Shin-ichiro KAWASAKI
next prev parent reply other threads:[~2009-03-04 15:22 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-26 16:28 [Qemu-devel] sh : performance problem Shin-ichiro KAWASAKI
2009-02-28 19:15 ` Lionel Landwerlin
2009-03-01 6:05 ` Shin-ichiro KAWASAKI
2009-03-01 12:46 ` Lionel Landwerlin
2009-03-01 16:10 ` Shin-ichiro KAWASAKI
2009-03-01 17:39 ` Lionel Landwerlin
2009-03-02 14:46 ` Shin-ichiro KAWASAKI
2009-03-02 22:30 ` Lionel Landwerlin
2009-03-03 15:32 ` Shin-ichiro KAWASAKI
2009-03-02 23:58 ` Lionel Landwerlin
2009-03-03 0:09 ` Lionel Landwerlin
2009-03-03 15:46 ` Shin-ichiro KAWASAKI
2009-03-03 18:57 ` Lionel Landwerlin
2009-03-03 19:25 ` Laurent Desnogues
2009-03-03 22:28 ` Lionel Landwerlin
2009-03-04 2:59 ` Paul Brook
2009-03-04 15:22 ` Shin-ichiro KAWASAKI [this message]
2009-03-04 15:39 ` Shin-ichiro KAWASAKI
2009-03-03 23:11 ` Lionel Landwerlin
2009-03-04 15:12 ` Shin-ichiro KAWASAKI
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=49AE9CAD.1030805@juno.dti.ne.jp \
--to=kawasaki@juno.dti.ne.jp \
--cc=lionel.landwerlin@openwide.fr \
--cc=qemu-devel@nongnu.org \
/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;
as well as URLs for NNTP newsgroup(s).