On Thu, 14 Sep 2017 13:51:45 +0200
Michal Privoznik <mprivozn(a)redhat.com> wrote:
On 09/14/2017 02:33 AM, Haozhong Zhang wrote:
> On 09/13/17 17:28 +0200, Michal Privoznik wrote:
>>
>> BTW: I ran a migration from no nvdimm qemu to one that had -M nvdimm=on
>> and guest migrated happily. So looks like guest ABI is stable (or at
>> least stable enough not to crash). But since ACPI table is changed I
>> doubt that.
>
> One example that may cause trouble is that
> 1/ Guest OS got a pointer to an ACPI table A on the source host (w/o nvdimm=on)
> 2/ After migrating to the destination host (w/ nvdimm=on), the
> location of ACPI table A is occupied by NFIT. If guest OS tries to
> access ACPI table A via the pointer in step 1/, then it will access
> the wrong table.
>
Ah, you're right. So it a guest ABI breakage to add nvdimm=on. IOW,
libvirt can't safely add that onto command line. Well we could for
freshly started guest and not those which are just being migrated. But
that increases attack surface so it's not safe either. Okay, I'll stick
with the latest proposal (expose this in domain XML and let users turn
it on if they want to).
also note that it depends on memory hotplug being enabled
'-m xxx,slots+maxmem'