From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O2NS5-0005yU-SL for qemu-devel@nongnu.org; Thu, 15 Apr 2010 07:41:45 -0400 Received: from [140.186.70.92] (port=42208 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O2NS2-0005wL-1M for qemu-devel@nongnu.org; Thu, 15 Apr 2010 07:41:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O2NRr-00012l-NV for qemu-devel@nongnu.org; Thu, 15 Apr 2010 07:41:41 -0400 Received: from hall.aurel32.net ([88.191.82.174]:49071) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O2NRr-000121-Cu for qemu-devel@nongnu.org; Thu, 15 Apr 2010 07:41:31 -0400 Message-ID: <4BC6FB63.9000207@aurel32.net> Date: Thu, 15 Apr 2010 13:41:23 +0200 From: Aurelien Jarno MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: Missing singlestep for already-translated code? References: <4BC47340.3030407@siemens.com> <4BC48D85.7050903@siemens.com> <4BC6E44D.5080406@aurel32.net> <4BC6E6DA.3040100@siemens.com> In-Reply-To: <4BC6E6DA.3040100@siemens.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: Jun Koi , "qemu-devel@nongnu.org" , Alexander Graf Jan Kiszka a écrit : > Aurelien Jarno wrote: >> Jun Koi a écrit : >>> On Wed, Apr 14, 2010 at 12:28 AM, Jan Kiszka wrote: >>>> Alexander Graf wrote: >>>>> On 13.04.2010, at 15:36, Jan Kiszka wrote: >>>>> >>>>>> Jun Koi wrote: >>>>>>> Hi, >>>>>>> >>>>>>> I am looking into the singlestep command in monitor interface, and it >>>>>>> seems that we only take into account the singlestep flag when we are >>>>>>> translating code. >>>>>>> So for the already-translated code, we will miss singlestep? >>>>>> This feature is broken. For TCG, it should at least flush the >>>>>> translation buffer, and for KVM it has to enable single-stepping in the >>>>>> kernel. That's what happens automatically when you call cpu_single_step. >>>>>> I guess 'singlestep' wants to be somehow orthogonal to this. But this is >>>>>> the wrong approach. >>>>>> >>>>>> Does anyone actually used this feature or still does so? It looks fairly >>>>>> redundant to me, kind of a poor-man's gdb front-end as part of the >>>>>> monitor console. >>>>> Not sure what it does, but I use -singlestep quite a lot to get register dumps for instructions when using -d cpu. >>>> Ah, "singlestep" is not about stopping the VM after each instruction but >>>> about limiting the TB length to a single instruction. Badly named and >>>> poorly documented. >>>> >>>> In that case, the dynamic switch should already be fine by adding a >>>> tb_flush() on enable. Still, someone should also patch at least the docs. >>>> >> What's the real point of flushing the tb to get it retranslated again? >> It will be retranslated in the exact same way. > > Nope. AFAIU, 'singlestep' will enforce single-instruction TBs. > Ah ok, you mean it flushes the already translate TB. It makes sense now. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net