From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NDenG-0001EZ-QC for qemu-devel@nongnu.org; Thu, 26 Nov 2009 08:53:58 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NDenC-0001CW-Ss for qemu-devel@nongnu.org; Thu, 26 Nov 2009 08:53:58 -0500 Received: from [199.232.76.173] (port=54772 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NDenC-0001CH-OA for qemu-devel@nongnu.org; Thu, 26 Nov 2009 08:53:54 -0500 Received: from thoth.sbs.de ([192.35.17.2]:20806) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NDenC-0002da-6J for qemu-devel@nongnu.org; Thu, 26 Nov 2009 08:53:54 -0500 Message-ID: <4B0E886D.60602@siemens.com> Date: Thu, 26 Nov 2009 14:53:49 +0100 From: Jan Kiszka MIME-Version: 1.0 References: <1257169258297-git-send-email-lirans@il.ibm.com> In-Reply-To: <1257169258297-git-send-email-lirans@il.ibm.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 2/3 v5] Block live migration List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: lirans@il.ibm.com Cc: qemu-devel@nongnu.org lirans@il.ibm.com wrote: > +static int block_load(QEMUFile *f, void *opaque, int version_id) > +{ > + int len, flags; > + char device_name[256]; > + int64_t addr; > + BlockDriverState *bs; > + uint8_t *buf; > + > + block_mig_state->sectors_per_block = bdrv_get_sectors_per_chunk(); > + buf = qemu_malloc(BLOCK_SIZE); > + > + do { > + > + addr = qemu_get_be64(f); > + > + flags = addr & ~SECTOR_MASK; > + addr &= SECTOR_MASK; > + > + if(flags & BLK_MIG_FLAG_DEVICE_BLOCK) { > + > + /* get device name */ > + len = qemu_get_byte(f); > + > + qemu_get_buffer(f, (uint8_t *)device_name, len); > + device_name[len] = '\0'; > + > + bs = bdrv_find(device_name); > + > + qemu_get_buffer(f, buf, > + BLOCK_SIZE); > + if(bs != NULL) { > + > + bdrv_write(bs, (addr >> SECTOR_BITS), > + buf, block_mig_state->sectors_per_block); This synchronous write-back translates appears to be the reason for an unusable migration (or restore from snapshot) speed: about 100 KB/s here (ie. 22h for a rather small 8G guest :( ). Did you already try to improve this situation? Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux