From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:43602) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXwci-0004ro-0y for qemu-devel@nongnu.org; Tue, 06 Dec 2011 10:08:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RXwch-00042j-04 for qemu-devel@nongnu.org; Tue, 06 Dec 2011 10:08:00 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35706) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXwcg-00042f-Pi for qemu-devel@nongnu.org; Tue, 06 Dec 2011 10:07:58 -0500 Message-ID: <4EDE308B.7070600@redhat.com> Date: Tue, 06 Dec 2011 16:11:07 +0100 From: Kevin Wolf MIME-Version: 1.0 References: <1321334931-26087-1-git-send-email-wdongxu@linux.vnet.ibm.com> <20111206124843.GA14426@amt.cnet> <4EDE11C4.2040202@redhat.com> <20111206145316.GA17987@amt.cnet> In-Reply-To: <20111206145316.GA17987@amt.cnet> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v5] block:add-cow file format List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Marcelo Tosatti Cc: shuming@linux.vnet.ibm.com, Dong Xu Wang , qemu-devel@nongnu.org, stefanha@linux.vnet.ibm.com Am 06.12.2011 15:53, schrieb Marcelo Tosatti: > On Tue, Dec 06, 2011 at 01:59:48PM +0100, Kevin Wolf wrote: >>>> + >>>> + ret = bdrv_pread(bs->file, sizeof(header), state->bitmap, >>>> + state->bitmap_size); >>>> + if (ret != state->bitmap_size) { >>>> + goto fail; >>>> + } >>> >>> Reading the entire bitmap in memory is not acceptable, it may be huge. >>> Better mmap it and use msync(MS_SYNC) when writing it back. This way the >>> host can free memory easily upon pressure. >> >> You can't use mmap in block drivers. It would only work with raw-posix >> backends, if at all. > > This is just the bitmap, a plain file. Why would you want to use > anything other than a plain file to use as storage for the bitmap? The obvious case is raw-win32. There are probably not so obvious, but still valid use cases that involve things like NBD, iSCSI, blkdebug or whatever. Kevin