From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=38647 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PNpmJ-0002Mm-P4 for qemu-devel@nongnu.org; Wed, 01 Dec 2010 11:44:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PNplv-0006lj-QQ for qemu-devel@nongnu.org; Wed, 01 Dec 2010 11:43:35 -0500 Received: from mx1.redhat.com ([209.132.183.28]:62495) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PNplv-0006l9-Fq for qemu-devel@nongnu.org; Wed, 01 Dec 2010 11:43:11 -0500 Message-ID: <4CF67B19.9000308@redhat.com> Date: Wed, 01 Dec 2010 18:43:05 +0200 From: Avi Kivity MIME-Version: 1.0 References: <411b3f89b6b79b429686bd1b1fa188ba55b6c6f7.1290552026.git.quintela@redhat.com> <4CF45DE0.8020701@codemonkey.ws> <4CF65FBB.3020406@redhat.com> <4CF66FEB.7030602@codemonkey.ws> <4CF678E0.9070904@codemonkey.ws> In-Reply-To: <4CF678E0.9070904@codemonkey.ws> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 10/10] Maintaing number of dirty pages List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel@nongnu.org, Juan Quintela On 12/01/2010 06:33 PM, Anthony Liguori wrote: >>> BTW, by this logic, even a 1-byte dirty bitmap is only 16mb which can >>> be read in less than 16ms so where is the reported 24 minute stall >>> coming from? >> a) we read the bitmap more than once > > Not in a single iteration which is what the "stall" would consist of. > >> b) the 1ms is based on "we read" it with longs and optimized, just now >> we have to read it by byte and inside the byte. > > Byte accesses verse long access doesn't turn 16ms into 24 minutes. We need actual measurements instead of speculations. Walking the dirty bitmap _did_ _not_ introduce any stalls. It was the qemu mutex, or walking kvm data structures in the kernel, or something. No amount of dirty bitmap optimization will fix it. -- error compiling committee.c: too many arguments to function