|
From: | Xiao Guangrong |
Subject: | Re: [Qemu-devel] [PATCH v2 08/18] nvdimm: init backend memory mapping and config data area |
Date: | Thu, 17 Sep 2015 17:14:16 +0800 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 |
On 09/17/2015 05:04 PM, Igor Mammedov wrote:
On Thu, 17 Sep 2015 16:39:12 +0800 Xiao Guangrong <address@hidden> wrote:On 09/16/2015 12:10 AM, Paolo Bonzini wrote:On 01/09/2015 11:14, Stefan Hajnoczi wrote:When I was digging into live migration code, i noticed that the same MR name may cause the name "idstr", please refer to qemu_ram_set_idstr(). Since nvdimm devices do not have parent-bus, it will trigger the abort() in that function.I see. The other devices that use a constant name are on a bus so the abort doesn't trigger.However, the MR name must be the same across the two machines. Indices are not friendly to hotplug. Even though hotplug isn't supported now, we should prepare and try not to change migration format when we support hotplug in the future.Thanks for your reminder.Is there any other fixed value that we can use, for example the base address of the NVDIMM?How about use object_get_canonical_path(OBJECT(dev)) (the @dev is NVDIMM device) ?if you use split backend/frotnend idea then existing backends already have a stable name derived from backend's ID and you won't need to care about it.
Yes, i am using this idea and addressing your suggestion that use memory_region_init_alias() to partly map hostmem to guest's address space. The code is like this: /* get the memory region from backend memory. */ mr = host_memory_backend_get_memory(dimm->hostmem, errp); /* nvdimm_nr will map to guest address space. */ memory_region_init_alias(&nvdimm->nvdimm_mr, OBJECT(dev), object_get_canonical_path(OBJECT(dev)), mr, 0, size - nvdimm->label_size); /* the label size at the end of the file used as label_data of NVDIMM. */ ...... So there are two memory regions, one is the backend-mem and another one is nvdimm_mr in the example above. The name i am worried about is the name of nvdimm_mr.
[Prev in Thread] | Current Thread | [Next in Thread] |