On Fri, May 03, 2013 at 10:45:18AM +0800, Liu Ping Fan wrote:
> +/**
> + * Install new regions list
> + */
> +static void hostmem_listener_commit(MemoryListener *listener)
> +{
> + HostMem *tmp;
> + AddrSpaceMem *as_mem = container_of(listener, AddrSpaceMem, listener);
> +
> + /* writer of cur_hostmem &next_hostmem is serialed by biglock
s/serialed/serialized/
> + * in hotplug path. So only take care of r/w on cur_hostmem
> + */
Indentation.
> @@ -164,18 +203,30 @@ void hostmem_init(void)
> .coalesced_mmio_del = hostmem_listener_coalesced_mmio_dummy,
> .priority = 10,
> };
> + as_mem->cur_hostmem = g_new0(HostMem, 1);
> + as_mem->cur_hostmem->ref = 1;
> + memory_listener_register(&as_mem->listener, as);
>
> - memory_listener_register(&system_mem->listener, &address_space_memory);
> - if (system_mem->num_new_regions > 0) {
> - hostmem_listener_commit(&system_mem->listener);
> - }
The point of this if statement was to make the newly added regions
visible. I guess it is not necessary because exec.c is calling us
before any memory gets initialized now?