From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35250) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGXRI-0005WG-C8 for qemu-devel@nongnu.org; Fri, 24 Jun 2016 16:10:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bGXRC-000525-B2 for qemu-devel@nongnu.org; Fri, 24 Jun 2016 16:10:55 -0400 Received: from mail-lf0-x243.google.com ([2a00:1450:4010:c07::243]:35098) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGXRC-000520-2A for qemu-devel@nongnu.org; Fri, 24 Jun 2016 16:10:50 -0400 Received: by mail-lf0-x243.google.com with SMTP id w130so22839495lfd.2 for ; Fri, 24 Jun 2016 13:10:50 -0700 (PDT) References: <1465224465-21998-1-git-send-email-peter.maydell@linaro.org> <1465224465-21998-18-git-send-email-peter.maydell@linaro.org> <8a6e05fc-92e3-d679-3970-83ec1f67f8ac@ilande.co.uk> <871f80d3-83af-9ee5-57f7-c71b420267a6@ilande.co.uk> From: Dmitry Osipenko Message-ID: <6839a6a6-7dc0-fbdc-3a9b-160dc87882cb@gmail.com> Date: Fri, 24 Jun 2016 23:10:47 +0300 MIME-Version: 1.0 In-Reply-To: <871f80d3-83af-9ee5-57f7-c71b420267a6@ilande.co.uk> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PULL 17/28] hw/ptimer: Perform counter wrap around if timer already expired List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Mark Cave-Ayland , Peter Maydell Cc: QEMU Developers , Artyom Tarasenko On 24.06.2016 21:37, Mark Cave-Ayland wrote: > On 24/06/16 19:19, Dmitry Osipenko wrote: > >> On 24.06.2016 19:02, Peter Maydell wrote: >>> On 24 June 2016 at 16:58, Mark Cave-Ayland >>> wrote: >>>> On 06/06/16 15:47, Peter Maydell wrote: >>>> >>>>> From: Dmitry Osipenko >>>>> >>>>> ptimer_get_count() might be called while QEMU timer already been expired. >>>>> In that case ptimer would return counter = 0, which might be undesirable >>>>> in case of polled timer. Do counter wrap around for periodic timer to keep >>>>> it distributed. In order to achieve more accurate emulation behaviour of >>>>> certain hardware, don't perform wrap around when in icount mode and return >>>>> counter = 0 in that case (that doesn't affect polled counter >>>>> distribution). >>>>> >>> >>>> Whilst testing Artyom's qemu-system-sparc patch today, I noticed another >>>> regression which I've bisected down to the above commit. >>>> >>>> Booting my NetBSD/OpenBSD test images with current git master causes the >>>> following warning to appear on the console: "WARNING: negative runtime; >>>> monotonic clock has gone backwards". >>>> >>>> Could this be a regression or does qemu-system-sparc make an incorrect >>>> assumption as to how the timer should work in this scenario? >>> >>> I'm not sure -- Dmitry ? >>> >>> thanks >>> -- PMM >>> >> >> The problem could be due to the IRQ being raised after the poll of the wrapped >> around counter in non-icount mode, so CPU "sees the future". In that case patch >> should be reverted and reworked. During the review of the patch we decided that >> it shouldn't be an issue. I'll take a closer look at it and try to reproduce the >> issue. > > Hi Dmitry, > > Thanks for looking at this. The reproducer with NetBSD is fairly easy: > > ./qemu-system-sparc -cdrom NetBSD-6.1.5-sparc.iso -boot d > > Hit 1 followed by Enter for the first couple of questions, and by the time you > get asked for the terminal settings you should find that the message has been > emitted somewhere on the console. > > > ATB, > > Mark. > > (repost due to mail client crash - apologies if this is a repeat) > Hi Mark, Thanks for the guide. I successfully reproduced the issue (it's exactly what I supposed in my previous reply) and will send fix for it shortly. Sorry for inconvenience. -- Dmitry