On Wed, Aug 15, 2012 at 01:44:14PM +0300, Avi Kivity wrote: > On 08/14/2012 06:51 PM, Marcelo Tosatti wrote: > >> > >> Userspace may want to modify the ROM (for example, when programming a > >> flash device). It is also possible to map an hva range rw through one > >> slot and ro through another. > > > > Right, can do that with multiple userspace maps to the same anonymous > > memory region (see other email). > > Yes it's possible. It requires that we move all memory allocation to be > fd based, since userspace can't predict what memory will be dual-mapped > (at least if emulated hardware allows this). It can: - Create named memory object, with associated fd. - Copy data from large anonymous memory region to named memory. - Unmap region that must be dual-mapped from large anonymous memory chunk. - Map named memory object at address. The last step can be replaced by adjusting KVM memory slots. The disadvantage of protection information in memory slots is that it duplicates functionality that is handled by userspace mappings. Moreover, multiple memory maps are necessary for any split-qemu-into-smaller-pieces solutions. > Is this a reasonable > requirement? Do ksm/thp/autonuma work with this? As mentioned, only memory used for ROM purposes must be dual mapped. I don't think there is any way to create multiple mappings to one anonymous memory object ATM, but POSIX defines it (posix_typed_mem_open). The limitation of thp/ksm on shared memory also affects any other user of shared memory, so it should be fixed there. Also, QEMU ROM is allocated separately from RAM, correct? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html