Andrew Cooper writes ("Re: [PATCH 10/12] docs/migration: Specify 
X86_{CPUID,MSR}_POLICY records"):
> The migration stream is split into records with no playload (markers
> with external control flow meaning), and data records, which have a payload.

I remember thinking at the time you specified this (some time ago, in
migration v2) that this was anomalous.

At the time it made no difference in practice, because all existing
payload types required nonempty payloads anyway, so I didn't argue.

> It is an error for a data record to have no payload, because it means
> there is a source side generation bug.  In the case of Xen returning 0
> MSRs, the record would be omitted entirely, rather than be sent with 0
> MSRs worth of data.

I think it would be better to say instead that data records may have a
0-length payload.  This allows a record with a 0-length payload to
have a different semantic meaning ("here is this information and the
information is the empty set") from an omitted record ("this
information is not available/provided").

Whether a record is a marker ought to be inferred from its type.

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to