On 12/14/2016 08:53 PM, Jim Fehlig wrote: > On 12/14/2016 03:53 AM, Joao Martins wrote: >> libvirt libxl picks its own default with respect to the default NIC >> to use. libxlMakeNic is the one responsible for this and on boot it >> picks LIBXL_NIC_TYPE_VIF_IOEMU for HVM domains such that it accomodates >> both PV and emulated one. The good behaving guest at boot will then >> select the pv and unplug the emulated device. >> >> Now, on HVM when attaching an interface it will pick the same default >> that is LIBXL_NIC_TYPE_VIF_IOEMU which as a result will fail the attach >> (see xen commit 32e9d0f ("libxl: nic type defaults to vif in hotplug for >> hvm guest"). Xen doesn't yet support the hotplug of emulated devices, >> but we don't want to rule out that case either, which might get support >> in the future. Hence we simply reverse the defaults when we are >> attaching the interface which allows libvirt to prefer the PV nic first >> without adding "model='netfront'" following the same pattern as above >> commit. Also to avoid ruling out the emulated one we set to >> LIBXL_NIC_TYPE_IOEMU when setting a model type that is not 'netfront'. >> >> Signed-off-by: Joao Martins <joao.m.martins@xxxxxxxxxx> >> Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx> >> --- >> Since RFC: >> - Joao: Add mention to HVM domains in the first paragraph of commit >> message. >> - Jim: Add comment about libxl_device_nic type inner workings >> - Jim: Prevent attach on PV when model != netfront >> - Joao: Remove now unused ioemu_nic variable >> - Joao: Append one small paragraph about why we mimic xl/libxl >> --- >> src/libxl/libxl_conf.c | 39 +++++++++++++++++++++++++++++++-------- >> src/libxl/libxl_conf.h | 3 ++- >> src/libxl/libxl_driver.c | 2 +- >> 3 files changed, 34 insertions(+), 10 deletions(-) > > ACK and pushed. Thank you! Joao -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list