I'm in the process of rewriting virt-p2v which is our program for converting physical machines to become virtual machines, running on top of libvirt + KVM. The physical machine has certain characteristics -- eg: - number of physical cores - amount of RAM - CPU type (eg. AMD Opteron, Intel Core i7) - CPU flags (eg. ACPI, SSE4) which it might make sense to reflect in the libvirt XML of the virtual machine we create. The old version of virt-p2v is pretty simplistic about this. It generates *only* an i386 or x86-64 VM, and the only flags it considers are 'apic', 'acpi', 'pae' and 'lm' [the latter to distinguish between 32 and 64 bit x86]. What should the new version do? Particular questions: - Should we try to reflect the CPU type of the physical machine in the virtual machine? eg. If it's an Opteron, we generate an Opteron target machine. (I believe the answer is *no*, because this is not live migration, and most guests can boot on any compatible CPU). - How can I ask libvirt to give me the best possible CPU, and not some baseline? Normally I use host-model, but I think that prevents migration. - What CPU flags should be reflected in the target libvirt XML? - Is it worth modelling CPU thread layout? (I suspect this will be a lot of work with the potential to break things rather than provide any measurable benefits.) - Is there anything else I haven't thought about? However the overriding rule is: - We *must not* end up with a target virtual machine which doesn't work! Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list