From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54908) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn9LU-00036c-Ae for qemu-devel@nongnu.org; Fri, 16 Oct 2015 14:03:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zn9LQ-0006Zh-Ai for qemu-devel@nongnu.org; Fri, 16 Oct 2015 14:03:12 -0400 Received: from mail-lb0-x234.google.com ([2a00:1450:4010:c04::234]:33743) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn9LQ-0006Zd-2z for qemu-devel@nongnu.org; Fri, 16 Oct 2015 14:03:08 -0400 Received: by lbbpp2 with SMTP id pp2so77536807lbb.0 for ; Fri, 16 Oct 2015 11:03:07 -0700 (PDT) References: <1444774253-10492-1-git-send-email-rth@twiddle.net> <561EC2FA.40901@twiddle.net> <56204F63.6010501@twiddle.net> <562104CB.1080801@gmail.com> <5621277D.1000303@gmail.com> From: Sergey Fedorov Message-ID: <56213BD8.1070202@gmail.com> Date: Fri, 16 Oct 2015 21:03:04 +0300 MIME-Version: 1.0 In-Reply-To: <5621277D.1000303@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] target-*: Advance pc after recognizing a breakpoint List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson , Peter Maydell Cc: QEMU Developers On 16.10.2015 19:36, Sergey Fedorov wrote: > On 16.10.2015 17:08, Sergey Fedorov wrote: >> On 16.10.2015 04:14, Richard Henderson wrote: >>> On 10/16/2015 03:36 AM, Peter Maydell wrote: >>>> On 14 October 2015 at 22:02, Richard Henderson wrote: >>>>> On 10/15/2015 06:34 AM, Peter Maydell wrote: >>>>>> This is still the same cryptic comment we have in the >>>>>> targets which do do this. Can we have something >>>>>> that is a bit more explanatory about what is going on and >>>>>> why we need to do this, please? >>>>> Suggestions? >>>> ...well, I don't entirely understand the problem it's >>>> fixing, which is why I'm asking for a better comment :-) >>> Heh. Fair enough. How about >>> >>> /* The address covered by the breakpoint must be included in >>> [tb->pc, tb->pc + tb->size) in order to for it to be >>> properly cleared -- thus we increment the PC here so that >>> the logic setting tb->size below does the right thing. */ >>> >>> There are two edge cases that cause the problem with clearing that >>> could be described, but I think that the comment becomes too bulky, as >>> well as confuses the situation for someone cutting-and-pasting the >>> logic to a new port. >> Maybe we could rather fix that condition in >> tb_invalidate_phys_page_range()? It seems weird that it can't handle a >> zero-sized TB. > I think extending "!(tb_end <= start || tb_start >= end)" condition to > "!(tb_end <= start || tb_start >= end) || tb_start == start" would work > fine. Thoughts? I could prepare a patch for that. But there are at least two other places which doesn't seem to support a zero-sized TB: build_page_bitmap(), and tb_gen_code() when checking if a next page is needed. Best, Sergey