From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:43473) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXwbd-0003f2-7r for qemu-devel@nongnu.org; Tue, 06 Dec 2011 10:06:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RXwbT-0003vu-Np for qemu-devel@nongnu.org; Tue, 06 Dec 2011 10:06:53 -0500 Received: from mx1.redhat.com ([209.132.183.28]:22069) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXwbT-0003vb-Ce for qemu-devel@nongnu.org; Tue, 06 Dec 2011 10:06:43 -0500 Date: Tue, 6 Dec 2011 13:06:10 -0200 From: Marcelo Tosatti Message-ID: <20111206150610.GA18056@amt.cnet> References: <1321334931-26087-1-git-send-email-wdongxu@linux.vnet.ibm.com> <20111206124843.GA14426@amt.cnet> <4EDE11C4.2040202@redhat.com> <20111206145316.GA17987@amt.cnet> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20111206145316.GA17987@amt.cnet> Subject: Re: [Qemu-devel] [PATCH v5] block:add-cow file format List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: shuming@linux.vnet.ibm.com, Dong Xu Wang , qemu-devel@nongnu.org, stefanha@linux.vnet.ibm.com On Tue, Dec 06, 2011 at 12:53:16PM -0200, Marcelo Tosatti wrote: > 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. > > > > Kevin > > 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? Well, mmap'ing would make life much simpler, but it has limitations such as portability. Then what is necessary is a cache similar to qcow2's metadata cache.