On (Tue) Mar 09 2010 [14:15:45], Juan Quintela wrote:
> 
> Hi Amit

Hey Juan,

> Checking migration, I just found this problem:
> 
> I don't know what to put there.  a return -EINVAL or continue?
> Looking more at the code, I am not sure what checks:
> 
> a- that bus->max_nr_ports is the same in both sides (or at least bigger
>    on migration destination)

Yes, we should check for this.

> b- We sent the value of config.nr_ports, but ... we assign it back on
>    destination, instead of checking that they are the same.

This is done to accomodate for hot-plug/unplug. nr_ports will go up /
down after those operations. (Current implementation only increases this
value, on hotplug operations. On hot-unplug, this value is not
decremented.)

> c- port->id is taken from nr_ports again, and nothing checks that ports
>    appear in the same order in source and destination.

Actually, this has me thinking about how would this work:
- start vm with 3 ports
- hotplug 2 more ports
- migrate

Would the destination have 5 ports, or would it have 3? I thought qdev
would take care of this scenario (hotplug). I don't think I've tested
this, so I'll do this soon, but in case anyone knows the answer, please
let me know.

[snipped patch that's necessary in case qdev doesn't handle this kind of
hotplug]

                Amit
-- 
http://log.amitshah.net/


Reply via email to