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