From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MHXsM-0005e3-HV for qemu-devel@nongnu.org; Fri, 19 Jun 2009 02:47:02 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MHXsL-0005bw-N4 for qemu-devel@nongnu.org; Fri, 19 Jun 2009 02:47:01 -0400 Received: from [199.232.76.173] (port=56382 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MHXsK-0005bI-Ns for qemu-devel@nongnu.org; Fri, 19 Jun 2009 02:47:00 -0400 Received: from mx20.gnu.org ([199.232.41.8]:11800) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MHXsK-0002ly-0h for qemu-devel@nongnu.org; Fri, 19 Jun 2009 02:47:00 -0400 Received: from fg-out-1718.google.com ([72.14.220.152]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MHXsI-0000kT-Ic for qemu-devel@nongnu.org; Fri, 19 Jun 2009 02:46:58 -0400 Received: by fg-out-1718.google.com with SMTP id e21so499292fga.8 for ; Thu, 18 Jun 2009 23:46:56 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <1245336842.32163.18.camel@dis> References: <1245336842.32163.18.camel@dis> Date: Fri, 19 Jun 2009 08:46:56 +0200 Message-ID: <761ea48b0906182346u5d05c1dev323acd98432638@mail.gmail.com> Subject: Re: [Qemu-devel] POLL: Support for instrumentation? From: Laurent Desnogues Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Sami Kiminki Cc: qemu-devel@nongnu.org On Thu, Jun 18, 2009 at 4:54 PM, Sami Kiminki wrote: > > We are considering doing some work on instrumentation support for QEMU. > But before rushing into implementation, I wonder if there is more > general interest in this subject, and if so, what kind of > instrumentation would you like to see? I am definitely interested. But again, being the less intrusive possible is a must from my point of view. Not degrading performance too much is also a must. Things I'd like to see: - instruction traces (including category mix) - memory traces - canceled conditional instructions - taken/non taken branches - flexible branch prediction - flexible multi-level cache simulation Some of these things can be done after execution, provided enough information is collected at runtime. By flexible, I mean an easy to change for instance predictor(s) and cache geometry. This is a huge subject with a huge literature :-) >>From an implementation point of view, doing it so that it is easy to add runtime info collection and post execution info extraction will be difficult, especially if you want it to be accepted into mainline. Laurent