> On Wed, Mar 17, 2010 at 03:05:57PM +0000, Paul Brook wrote: > > > + if (size >= PREFERRED_RAM_ALIGN) > > > + new_block->host = qemu_memalign(PREFERRED_RAM_ALIGN, > > > size); > > > > Is this deliberately bigger-than rather than multiple-of? > > Having the size not be a multiple of alignment seems somewhat strange, > > it's always going to be wrong at one end... > > Size not multiple I think is legitimate, the below-4G chunk isn't > required to end 2M aligned, all it matters is that the above-4G then > starts aligned. In short one thing to add in the future as parameter > to qemu_ram_alloc is the physical address that the host virtual > address corresponds to.
In general you don't know this at allocation time. > The guest physical address that the host > retval corresponds to, has to be aligned with PREFERRED_RAM_ALIGN for > NPT/EPT to work. I don't think it's a big concern right now. If you allocating chinks that are multiples of the relevant page size, then I don't think you can expect anything particularly sensible to happen. Paul