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. 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.