[libvirt] [RFC PATCH] support multifunction PCI device

KAMEZAWA Hiroyuki kamezawa.hiroyu at jp.fujitsu.com
Fri May 13 02:32:43 UTC 2011


On Wed, 11 May 2011 08:55:56 +0100
"Daniel P. Berrange" <berrange at redhat.com> wrote:

> On Wed, May 11, 2011 at 10:30:43AM +0800, Wen Congyang wrote:

> > 
> > 3. After hot plug multi function PCI devices:
> > # lspci
> > 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
> > 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
> > 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
> > 00:01.2 USB Controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
> > 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
> > 00:02.0 VGA compatible controller: Cirrus Logic GD 5446
> > 00:03.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 20)
> > 00:04.0 RAM memory: Red Hat, Inc Virtio memory balloon
> > 00:05.0 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
> > 00:06.0 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
> > 00:06.1 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
> > 00:06.2 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
> > 00:06.3 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
> > 00:06.4 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
> > 00:06.5 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
> > 00:06.6 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
> > 00:06.7 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
> > 
> > 
> > > 
> > >>
> > >> 2. support to hot unplug multi function PCI device
> > >>    hot unpluging multi function PCI device meas that all the other
> > >>    devices on the same slot will be hot unpluged. So we should do
> > >>    some cleanup and remove the other devices too. If the other
> > >>    device on the same slot does not support hot unpluged, or it is a
> > >>    a controller and some other devices still use this controller,
> > >>    I think we should refuse to hot unplug this mutlti function PCI
> > >>    device.
> > > 
> > > IMHO these kind of restrictions will make life really unpleasant
> > > for applications and are a reason we should *not* support the
> > > multifunction code. Instead we should focus on one of the other
> > > 3 options I mention above.
> > 

Hmm, how about adding <unpluggable> attribute to <device> definitions ?
IIUC, 
  1. There are some unpluggable default devices.
  2. There are devices which never should be removed by mistake, as rootfs.

When I've google'd "how to handle 100+ nics with KVM", a qemu community guy
answers "please use multifunction devices" but I disappointed to know
libvirt doesn't support it, now. 

And, IIUC, if multifunction device is supporetd by libvirt, it can tie up default
'unpluggable' devices (as serial, IDE, etc) into a slot and we'll have 3? more
empty slot at boot..


Thanks,
-Kame




More information about the libvir-list mailing list