From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:43160) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ULJkh-0007XS-O9 for qemu-devel@nongnu.org; Thu, 28 Mar 2013 16:48:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ULJke-0007zg-Qe for qemu-devel@nongnu.org; Thu, 28 Mar 2013 16:48:51 -0400 Received: from mail-da0-x232.google.com ([2607:f8b0:400e:c00::232]:50405) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ULJke-0007za-KE for qemu-devel@nongnu.org; Thu, 28 Mar 2013 16:48:48 -0400 Received: by mail-da0-f50.google.com with SMTP id t1so3158916dae.37 for ; Thu, 28 Mar 2013 13:48:47 -0700 (PDT) Sender: Richard Henderson Message-ID: <5154ACAA.8010107@twiddle.net> Date: Thu, 28 Mar 2013 13:48:42 -0700 From: Richard Henderson MIME-Version: 1.0 References: <1364484781-15561-1-git-send-email-rth@twiddle.net> <1364484781-15561-15-git-send-email-rth@twiddle.net> <20130328200946.GD5000@ohm.aurel32.net> In-Reply-To: <20130328200946.GD5000@ohm.aurel32.net> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3 14/20] tcg-arm: Cleanup goto_tb handling List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aurelien Jarno Cc: Peter Maydell , qemu-devel@nongnu.org On 2013-03-28 13:09, Aurelien Jarno wrote: > I already proposed such a patch, but it seems to improve things only on > some specific cases (kernel boot), while increasing the I/D cache and > TLB pressure. > > See https://lists.gnu.org/archive/html/qemu-devel/2012-10/msg01684.html Hmm. I see that your previous attempt didn't also go with a removal of the 16MB limit on code_gen_buffer. Given the default is 32MB, I wonder if the decrease in translation makes enough difference. I'll admit that this sort of change needs more benchmarking. What I'd like to do one way or the other is get rid of the myriad ifdefs. That's just too confusing. For the record, I've also been experimenting with a real constant pool. This starts to significantly reduce the insn size, even with movw. This primarily due to re-use of helper address constants. With the pool, I also place the goto_tb constants there as well. I've not gotten that code completely stable yet, but once I do I can also consider the number of Dcache lines that the pool will occupy. (With v7, I only see 2-3 entries in the pool per TB, so in most cases aligning to a cache boundary won't matter.) r~