From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45737) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XNBrz-000274-B5 for qemu-devel@nongnu.org; Thu, 28 Aug 2014 22:25:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XNBrr-0003dP-Qy for qemu-devel@nongnu.org; Thu, 28 Aug 2014 22:24:55 -0400 Received: from mail-pa0-f49.google.com ([209.85.220.49]:41715) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XNBrr-0003cF-I7 for qemu-devel@nongnu.org; Thu, 28 Aug 2014 22:24:47 -0400 Received: by mail-pa0-f49.google.com with SMTP id kq14so4985292pab.22 for ; Thu, 28 Aug 2014 19:24:34 -0700 (PDT) Received: from labyrinth (dc-3.calit2.uci.edu. [128.195.136.164]) by mx.google.com with ESMTPSA id by6sm18582663pab.15.2014.08.28.19.24.32 for (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 28 Aug 2014 19:24:33 -0700 (PDT) From: "Byron Hawkins" Date: Thu, 28 Aug 2014 19:24:32 -0700 Message-ID: <36d601cfc330$5eb23ea0$1c16bbe0$@uci.edu> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_36D7_01CFC2F5.B2582190" Content-Language: en-us Subject: [Qemu-devel] Running programs that dynamically generate code List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: QEMU Developer List This is a multipart message in MIME format. ------=_NextPart_000_36D7_01CFC2F5.B2582190 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, I'm working on a research project to optimize binary translation for target applications that dynamically generate code, such as browser JIT engines. When I run the octane benchmark in Chrome v8 under QEMU (i.e., qemu-x86_64), it shows significant overhead compared to a native run. Can someone tell me how QEMU maintains consistency with the target application when it dynamically generates code? For example, does it set executable pages readonly and catch the page fault when the target app writes to it? I searched the documentation and mailing list, but all the references to "dynamically generated code" and "JIT" are about code generated by QEMU, not about code generated by the target application. If there is a document about this somewhere, please send me a link-or just a basic explanation would also be very helpful. Thanks. Byron ------=_NextPart_000_36D7_01CFC2F5.B2582190 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi, I’m working on a research project to = optimize binary translation for target applications that dynamically = generate code, such as browser JIT engines. When I run the octane = benchmark in Chrome v8 under QEMU (i.e., qemu-x86_64), it shows = significant overhead compared to a native run. Can someone tell me how = QEMU maintains consistency with the target application when it = dynamically generates code? For example, does it set executable pages = readonly and catch the page fault when the target app writes to it? I = searched the documentation and mailing list, but all the references to = “dynamically generated code” and “JIT” are about = code generated by QEMU, not about code generated by the target = application. If there is a document about this somewhere, please send me = a link—or just a basic explanation would also be very helpful. = Thanks.


Byron

------=_NextPart_000_36D7_01CFC2F5.B2582190--