You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This breaks live migration of CPUID settings because the empty CPUID set gets applied during the device state phase even if the target applied different CPUID settings when processing the source's instance spec.
This can be fixed trivially by calling set_len in this path. That said, this entire code path might be obsolete now: with #844 in place, the instance specs sent during live migration always have the correct CPUID settings, so exporting and importing them duplicates work. (See the discussion in #844 for more details.) Given this it might make even more sense just to remove CPUID settings from the vCPU device state payload entirely.
The text was updated successfully, but these errors were encountered:
Observed during ad hoc testing.
The problem is that
get_cpuid
usesVec::with_capacity
to create an entry array, but never sets its actual length:propolis/lib/propolis/src/vcpu.rs
Lines 249 to 256 in c0bb4cd
This breaks live migration of CPUID settings because the empty CPUID set gets applied during the device state phase even if the target applied different CPUID settings when processing the source's instance spec.
This can be fixed trivially by calling
set_len
in this path. That said, this entire code path might be obsolete now: with #844 in place, the instance specs sent during live migration always have the correct CPUID settings, so exporting and importing them duplicates work. (See the discussion in #844 for more details.) Given this it might make even more sense just to remove CPUID settings from the vCPU device state payload entirely.The text was updated successfully, but these errors were encountered: