libvirt/src/qemu
Michal Privoznik 1dc5dea7d6 qemu: Handle huge number of queues correctly
Currently, kernel supports up to 8 queues for a multiqueue tap device.
However, if user tries to enter a huge number (e.g. one million) the tap
allocation fails, as expected. But what is not expected is the log full
of warnings:

    warning : virFileClose:83 : Tried to close invalid fd 0

The problem is, upon error we iterate over an array of FDs (handlers to
queues) and VIR_FORCE_CLOSE() over each item. However, the array is
pre-filled with zeros. Hence, we repeatedly close stdin. Ouch.
But there's more. The queues allocation is done in virNetDevTapCreate()
which cleans up the FDs in case of error. Then, its caller, the
virNetDevTapCreateInBridgePort() iterates over the FD array and tries to
close them too. And so does qemuNetworkIfaceConnect() and
qemuBuildInterfaceCommandLine().
2013-09-03 13:38:35 +02:00
..
libvirtd_qemu.aug qemu: Set QEMU_AUDIO_DRV=none with -nographic 2013-09-02 16:53:39 -04:00
MIGRATION.txt qemu: Implement migration job phases 2011-07-27 08:45:09 -06:00
qemu_agent.c qemu_agent: Remove obvious comments 2013-07-31 14:25:43 +02:00
qemu_agent.h qemu_agent: Move updater function for VCPU hotplug into qemu_agent.c 2013-07-31 14:25:43 +02:00
qemu_bridge_filter.c virutil: Move string related functions to virstring.c 2013-05-02 16:56:55 +02:00
qemu_bridge_filter.h Replace 'struct qemud_driver *' with virQEMUDriverPtr 2012-11-28 18:17:25 +00:00
qemu_capabilities.c qemu: Support virtio-mmio transport for virtio on ARM 2013-09-02 16:53:40 -04:00
qemu_capabilities.h qemu: Support virtio-mmio transport for virtio on ARM 2013-09-02 16:53:40 -04:00
qemu_cgroup.c qemu: Set QEMU_AUDIO_DRV=none with -nographic 2013-09-02 16:53:39 -04:00
qemu_cgroup.h Auto-detect existing cgroup placement 2013-07-23 22:46:31 +01:00
qemu_command.c qemu: Handle huge number of queues correctly 2013-09-03 13:38:35 +02:00
qemu_command.h qemuBuildNicDevStr: Add mq=on for multiqueue networking 2013-08-22 13:48:56 +02:00
qemu_conf.c qemu: Set QEMU_AUDIO_DRV=none with -nographic 2013-09-02 16:53:39 -04:00
qemu_conf.h qemu: Set QEMU_AUDIO_DRV=none with -nographic 2013-09-02 16:53:39 -04:00
qemu_domain.c qemu: Fix networking for ARM guests 2013-09-02 16:53:40 -04:00
qemu_domain.h qemu: Drop qemuDomainMemoryLimit 2013-08-19 11:16:58 +02:00
qemu_driver.c qemu: Move qemuDomainDetachDeviceDiskLive to qemu_hotplug.c 2013-08-26 16:09:54 +02:00
qemu_driver.h maint: fix up copyright notice inconsistencies 2012-09-20 16:30:55 -06:00
qemu_hostdev.c pci: make virPCIDeviceReset more autonomous 2013-07-15 10:43:03 -04:00
qemu_hostdev.h qemu: Introduce activeScsiHostdevs list for scsi host devices 2013-05-13 21:26:06 +08:00
qemu_hotplug.c qemu_hotplug: Resolve DEADCODE coverity error 2013-09-01 19:30:59 -04:00
qemu_hotplug.h qemu: Move qemuDomainDetachDeviceDiskLive to qemu_hotplug.c 2013-08-26 16:09:54 +02:00
qemu_hotplugpriv.h qemu: Let tests override waiting time for device unplug 2013-08-26 16:09:55 +02:00
qemu_migration.c qemu_migration: Don't error on tunelled migration with --copy-storage 2013-08-06 16:07:57 +02:00
qemu_migration.h qemu: Move close callbacks handling into util/virclosecallbacks.c 2013-07-18 14:16:53 +02:00
qemu_monitor_json.c qemu: Introduce qemuMonitorGetDeviceAliases 2013-07-19 18:45:47 +02:00
qemu_monitor_json.h qemu: Introduce qemuMonitorGetDeviceAliases 2013-07-19 18:45:47 +02:00
qemu_monitor_text.c Convert 'int i' to 'size_t i' in src/qemu files 2013-07-10 17:55:15 +01:00
qemu_monitor_text.h qemu: Use bool instead of int in qemuMonitorSetCPU APIs 2013-06-07 15:57:03 +02:00
qemu_monitor.c qemu: Avoid using global qemu_driver in event handlers 2013-08-26 16:09:54 +02:00
qemu_monitor.h qemu: Avoid using global qemu_driver in event handlers 2013-08-26 16:09:54 +02:00
qemu_process.c qemu: Fix specifying char devs for ARM 2013-09-02 16:53:40 -04:00
qemu_process.h qemu: Export qemuProcessHandleDeviceDeleted for tests 2013-08-26 16:09:55 +02:00
qemu_processpriv.h qemu: Export qemuProcessHandleDeviceDeleted for tests 2013-08-26 16:09:55 +02:00
qemu.conf qemu: Set QEMU_AUDIO_DRV=none with -nographic 2013-09-02 16:53:39 -04:00
test_libvirtd_qemu.aug.in qemu: Set QEMU_AUDIO_DRV=none with -nographic 2013-09-02 16:53:39 -04:00
THREADS.txt Remove qemuDriverLock from almost everywhere 2013-02-13 11:10:30 +00:00