From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NxSV5-0006Pc-1g for qemu-devel@nongnu.org; Thu, 01 Apr 2010 18:04:31 -0400 Received: from [140.186.70.92] (port=40565 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NxSV2-0006OQ-MX for qemu-devel@nongnu.org; Thu, 01 Apr 2010 18:04:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NxSV0-0004te-3e for qemu-devel@nongnu.org; Thu, 01 Apr 2010 18:04:28 -0400 Received: from hall.aurel32.net ([88.191.82.174]:60876) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxSUz-0004tT-VG for qemu-devel@nongnu.org; Thu, 01 Apr 2010 18:04:26 -0400 Date: Thu, 1 Apr 2010 23:33:09 +0200 From: Aurelien Jarno Subject: Re: [Qemu-devel] Significant performance regression in qemu-system-mips. Message-ID: <20100401213309.GA19428@hall.aurel32.net> References: <201003241534.01219.rob@landley.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <201003241534.01219.rob@landley.net> Sender: Aurelien Jarno List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Rob Landley Cc: qemu-devel@nongnu.org On Wed, Mar 24, 2010 at 03:34:00PM -0500, Rob Landley wrote: > I have a native build under qemu that gets killed if it doesn't produce a line > of output for 60 seconds (hang detection enforced by the host monitoring > qemu's stdout with --nographic, not from within qemu). > > In the most recent release version, it never came close to triggering on mips > with a 30 second timeout. In the current -git version (well, as of Thursday > anyway), it triggers frequently (about 90% of the time) even with a 60 second > timeout. > > I bisected it to this: > > commit 1828be316f6637d43dd4c4f5f32925b17fb8107f > Author: Paolo Bonzini > Date: Wed Mar 10 11:38:41 2010 +0100 > > more alarm timer cleanup > > The timer_alarm_pending variable is related to the alarm timer but not > placed in the struct. Also, in qemu_mod_timer the wrong flag was being > tested: the timer is rearmed in the alarm timer "bottom half", so the > right flag to test there is the "pending" flag. > > Finally, I hoisted the NULL checks from alarm_has_dynticks to > host_alarm_handler. > > Signed-off-by: Paolo Bonzini > Signed-off-by: Anthony Liguori > > Reverting that patch fixed it (git show HEAD | patch -R -p1), by which I mean > three consecutive runs with 30 second timeout didn't trigger the hang > detection. > I have tried to reproduce the issue by measuring the boot time of a mips system, but it stay unchanged between before and after the patch. Do you have some more details about how to reproduce the issue ? Have you tried to pay with the -clock option? -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net