From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LeaEn-0004pM-Ku for qemu-devel@nongnu.org; Tue, 03 Mar 2009 14:25:09 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LeaEm-0004p3-5d for qemu-devel@nongnu.org; Tue, 03 Mar 2009 14:25:09 -0500 Received: from [199.232.76.173] (port=39978 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LeaEl-0004p0-Vi for qemu-devel@nongnu.org; Tue, 03 Mar 2009 14:25:08 -0500 Received: from mail-fx0-f175.google.com ([209.85.220.175]:60770) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LeaEl-0000eG-Dl for qemu-devel@nongnu.org; Tue, 03 Mar 2009 14:25:07 -0500 Received: by fxm23 with SMTP id 23so2411118fxm.34 for ; Tue, 03 Mar 2009 11:25:05 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <1236106677.16018.5.camel@couak.urd44.com> References: <49A6C317.1080202@juno.dti.ne.jp> <1236038327.4975.16.camel@coalu.atr> <49AD50E2.7000401@juno.dti.ne.jp> <1236106677.16018.5.camel@couak.urd44.com> Date: Tue, 3 Mar 2009 20:25:05 +0100 Message-ID: <761ea48b0903031125n5d97462eu15caa552764789d9@mail.gmail.com> Subject: Re: [Qemu-devel] sh : performance problem From: Laurent Desnogues Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On Tue, Mar 3, 2009 at 7:57 PM, Lionel Landwerlin wrote: > Le mercredi 04 mars 2009 =E0 00:46 +0900, Shin-ichiro KAWASAKI a =E9crit = : [...] >> sh4 : 5.8 [seconds] O(n) utlb search. >> sh4 : 4.6 [seconds] O(log2(n)) utlb search. >> sh4 : 4.1 [seconds] O(1) utlb search by Lionel >> arm : 0.8 [seconds] (-M versatilepb + Debian ARM) >> >> Your patch has a nice score! > > Great :) But we're still far from arm :( It would be interesting if you could run oprofile of both platforms (and even better if that was with call-graph output). >> > +#if !defined(CONFIG_USER_ONLY) >> > + /* vpn to utlb entry caches (too much space for user emulation) *= / >> > + uint8_t utlbs_1k[4194304]; /* 222 =3D> 4 Mb */ >> > + uint8_t utlbs_4k[1048576]; /* 220 =3D> 1 Mb */ >> > + uint8_t utlbs_64k[65536]; /* 216 =3D> 64 Kb */ >> > + uint8_t utlbs_1m[4096]; /* 212 =3D> 4 Kb */ >> > +#endif >> > } CPUSH4State; >> >> Isn't it too gorgeous? >> How about allocating them on demand? >> I guess sh-linux uses only utlbs_4k[], in general. >> If so, 4 Mb utlbs_1k[] is waste. >> > > sh-linux can also use huge pages of 64k and 1M. > > I think it is important to keep the emulation as close as possible from > the real the cpu capabilities. I think Shin-ichiro was rather pointing a the number of 1k pages, which are probably not used. OTOH I agree being close to CPU capabilities is important. Laurent