Subject: Re: Number of NICs per VM with qemu-upstream (Was: Re: Re: [Xen-users] libvirt
Date: Thursday 20th November 2014 11:39:26 UTC (over 4 years ago)
On Thu, 20 Nov 2014, Ian Campbell wrote: > On Mon, 2014-11-17 at 13:00 +0000, Stefano Stabellini wrote: > > On Mon, 17 Nov 2014, Ian Campbell wrote: > > > On Sat, 2014-11-15 at 10:16 +0800, hanyandong wrote: > > > > By the way, how many NICs can I apply to a VM? > > > > > > > > On xen-4.4.0, Using qemu-dm, I can apply 8 NIC to a VM, but using > > > > qemu-system-i386, I can only apply 4 NICs to an VM? > > > > is it normal? > > > > > > I've no idea, CCing the qemu maintainers. > > > > > > I'd have expected the number of PV nics to be completely independent of > > > the device mode, so I suppose you mean emulated NICs? > > > > I can pass 4 emulated NICs maximum, but you can easily reach 8 if you > > use PV NICs instead. Just pass 'type=pv' like this: > > > > vif=['', '', '', '', 'type=pv', 'type=pv', 'type=pv', 'type=pv'] > > > > it is going to create 4 emulated nics and 4 pv nics. The 4 emulated nics > > also have 4 corresponding pv nics. The emulated nics get disconnected > > soon after boot by the guest operating system (if it has pv drivers > > installed, such as Linux). So overall once the boot sequence is fully > > completed you'll end up with the 8 pv nics that you want. > > I wonder if we should do something in (lib)xl such that by default the > first 4 NICs have type LIBXL_NIC_TYPE_VIF_IOEMU (i.e. emulated+PV path) > and the rest have LIBXL_NIC_TYPE_VIF (i.e. PV only). That looks like a simple and reasonable idea. > > BTW the reason for the failure seems to be that QEMU runs out of ram > > (xen: failed to populate ram at 80110000, so > > xc_domain_populate_physmap_exact failed) allocating roms for the rtl8139 > > (40000 bytes each). Maybe qemu-trad wasn't loading any roms for rtl8139. > > Interestingly e1000 doesn't need any roms either, so another way around > > this would be to set 'type=e1000' for all the vifs. > > Or to use the new option in 4.5 to increase the MMIO space (or is that > not where ROMs end up?) > > Do we need to plumb through qemu's optionrom parameter to allow a) > limiting the number of NICs which will try to do PXE and b) allow custom > roms etc? The libxl solution is the best one for simplicity, besides I don't think there is such an option for QEMU.