From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:59690) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R9YcJ-00015R-Lc for qemu-devel@nongnu.org; Fri, 30 Sep 2011 04:38:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R9YcF-0000S4-BM for qemu-devel@nongnu.org; Fri, 30 Sep 2011 04:38:47 -0400 Received: from ozlabs.org ([203.10.76.45]:55770) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R9YcE-0000Qw-UG for qemu-devel@nongnu.org; Fri, 30 Sep 2011 04:38:43 -0400 Date: Fri, 30 Sep 2011 18:18:49 +1000 From: David Gibson Message-ID: <20110930081849.GC4512@yookeroo.fritz.box> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: [Qemu-devel] Avoiding nographic_timer exits List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org With PowerKVM, exits from KVM to qemu are even more expensive than on x86. One significant source of these we're finding (since we usually work in -nographic mode) is the nographic_timer. At present, we're using a hack to disable it, but that's obviously not a long term solution. From examination, it looks like the only purpose of this timer is to flush coalesced mmios. So it seems like the timer should only be activated when a coalesced mmio region actually exists, but I'm not entirely sure how to go about that. Thinking longer term, it seems very odd that a userspace periodic timer handles this at all. Surely it would make more sense to use a kernel timer within KVM, which can be activated only when there are actually pending coalesced MMIOs in the buffer. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson