From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51797) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X04sa-0003k2-VD for qemu-devel@nongnu.org; Thu, 26 Jun 2014 04:18:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X04sV-0004SS-JB for qemu-devel@nongnu.org; Thu, 26 Jun 2014 04:18:00 -0400 Received: from [2001:41d0:8:2b42::1] (port=57706 helo=greensocs.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X04sV-0004SL-AK for qemu-devel@nongnu.org; Thu, 26 Jun 2014 04:17:55 -0400 Message-ID: <53ABD731.6010604@greensocs.com> Date: Thu, 26 Jun 2014 10:17:53 +0200 From: Frederic Konrad MIME-Version: 1.0 References: <1403709607-6434-1-git-send-email-fred.konrad@greensocs.com> <53AAEE32.2000102@redhat.com> In-Reply-To: <53AAEE32.2000102@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH v5 00/13] Reverse execution. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, quintela@redhat.com, mark.burton@greensocs.com, dgilbert@redhat.com, amit.shah@redhat.com, vilanova@ac.upc.edu On 25/06/2014 17:43, Paolo Bonzini wrote: > Il 25/06/2014 17:19, fred.konrad@greensocs.com ha scritto: >> From: KONRAD Frederic >> >> Hi everybody, >> >> This is the fifth version of this RFC (see the changes below). >> >> Those are the two first patch-set we have been worked on for reverse >> execution. >> >> The first part is fully reviewed except the "icount: introduce icount >> timer" >> patch maybe we can merge them? >> >> The first series: >> icount: put icount variables into TimerState. >> migration: migrate icount fields. >> migration: make qemu_savevm_state public. >> icount: introduce icount timer. >> icount: check for icount clock deadline when cpu loop exits. >> icount: make icount extra computed on icount clock as well. >> timer: add cpu_icount_to_ns function. >> >> are various preparation patches for reverse execution. >> >> The last patches: >> trace-events: add reverse-execution events. >> introduce reverse execution mechanism. >> gdbstub: allow reverse execution in gdb stub. >> cpu-exec: trigger a debug request when rexec stops. >> cexe: synchronize icount on the next event. >> cexe: allow to enable reverse execution. >> >> are reverse execution introduction. >> >> They can be clone at: git://git.greensocs.com/qemu_cexe.git:cexe_2_3_v5 >> >> The third series will be sent as soon as possible and have some >> issues with >> QEMU's thread as it use fork. >> >> This implementation of reverse execution works with instruction >> counting: >> >> A new clock is implemented which is icount clock. It grows each time an >> instruction is executed and is totally independant of host clock. >> >> Snapshots are taken regularly (based on icount clock) with help of >> migration >> code and written on the disk. >> >> When user wants to use reverse-stepi: >> * Last snapshot is reloaded. >> * A stop callback is created to be triggered at the previous >> instruction. >> >> This stop callback generates a debug exception so QEMU stops in debug >> mode. >> >> Command line: >> * -cexe option is added to enable reverse execution, it needs icount 1. > > What does -cexe stand for? > > There was a patch on the list to convert -icount to QemuOpts, could > you adopt that and add a cexe suboption? Hi, You mean adding cexe as a suboption of icount? Is both option related? I mean reverse execution needs icount but I think it doesn't make sense to make it as icount suboption? But I can convert cexe option as a QemuOpts. Thanks, Fred > > Paolo