KVM: set upper bounds for iobus dev to limit userspace
authorAmos Kong <akong@redhat.com>
Fri, 9 Mar 2012 04:17:40 +0000 (12:17 +0800)
committerAvi Kivity <avi@redhat.com>
Sun, 8 Apr 2012 09:47:00 +0000 (12:47 +0300)
kvm_io_bus devices are used for ioevent, pit, pic, ioapic,
coalesced_mmio.

Currently Qemu only emulates one PCI bus, it contains 32 slots,
one slot contains 8 functions, maximum of supported PCI devices:
 1 * 32 * 8 = 256. One virtio-blk takes one iobus device,
one virtio-net(vhost=on) takes two iobus devices.
The maximum of coalesced mmio zone is 100, each zone
has an iobus devices. So 300 io_bus devices are not enough.

Set an upper bounds for kvm_io_range to limit userspace.
1000 is a very large limit and not bloat the typical user.

Signed-off-by: Amos Kong <akong@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
include/linux/kvm_host.h

index ba9fb4a..3a2cea6 100644 (file)
@@ -68,7 +68,7 @@ struct kvm_io_range {
        struct kvm_io_device *dev;
 };
 
-#define NR_IOBUS_DEVS 300
+#define NR_IOBUS_DEVS 1000
 
 struct kvm_io_bus {
        int                   dev_count;