Go to file
Peter Krempa 9eb9106ea5 qemu: command: Add support for sparse vcpu topologies
Add support for using the new approach to hotplug vcpus using device_add
during startup of qemu to allow sparse vcpu topologies.

There are a few limitations imposed by qemu on the supported
configuration:
- vcpu0 needs to be always present and not hotpluggable
- non-hotpluggable cpus need to be ordered at the beginning
- order of the vcpus needs to be unique for every single hotpluggable
  entity

Qemu also doesn't really allow to query the information necessary to
start a VM with the vcpus directly on the commandline. Fortunately they
can be hotplugged during startup.

The new hotplug code uses the following approach:
- non-hotpluggable vcpus are counted and put to the -smp option
- qemu is started
- qemu is queried for the necessary information
- the configuration is checked
- the hotpluggable vcpus are hotplugged
- vcpus are started

This patch adds a lot of checking code and enables the support to
specify the individual vcpu element with qemu.
2016-08-24 15:44:47 -04:00
.gnulib@a2a39436b6 maint: update to latest gnulib 2016-08-18 13:36:39 +02:00
build-aux prohibit-duplicate-header: print file name and line 2016-06-23 12:48:40 +02:00
daemon remote: rename protocol names for close callbacks 2016-08-23 19:48:01 +03:00
docs qemu: command: Add support for sparse vcpu topologies 2016-08-24 15:44:47 -04:00
examples Introduce node device update event as top level event 2016-08-15 08:30:56 -04:00
gnulib build: drop hack for old mingw ssize_t 2016-07-12 08:57:13 -06:00
include/libvirt Introduce node device update event as top level event 2016-08-15 08:30:56 -04:00
m4 virt-wireshark: Properly substract wireshark prefix 2016-07-27 17:01:18 +02:00
po Introduce node device lifecycle event APIs 2016-08-02 09:52:00 -04:00
src qemu: command: Add support for sparse vcpu topologies 2016-08-24 15:44:47 -04:00
tests qemu: command: Add support for sparse vcpu topologies 2016-08-24 15:44:47 -04:00
tools virsh: use vshError consistently after virBufferError checks 2016-08-24 17:43:29 +02:00
.ctags maint: Make ctags work out of the box 2013-07-18 08:47:21 +02:00
.dir-locals.el build: avoid tabs that failed syntax-check 2012-09-06 09:43:46 -06:00
.gitignore examples: admin: Add some examples for the new admin APIs 2016-06-26 00:21:06 +02:00
.gitmodules make .gnulib a submodule 2009-07-08 16:17:51 +02:00
.mailmap maint: update .mailmap for recent contributions 2015-03-20 06:17:55 -06:00
AUTHORS.in Change maintainers list 2016-02-12 13:10:05 +03:00
COPYING maint: follow recommended practice for using LGPL 2013-05-20 14:15:21 -06:00
COPYING.LESSER maint: Remove control characters from LGPL license file 2015-09-25 09:16:24 +02:00
ChangeLog-old Fix typos in src/* 2014-04-21 16:49:08 -06:00
HACKING docs: remove outdated suggestion to make patches with "diff -urp"/"git diff" 2016-07-01 12:41:10 -04:00
Makefile.am dist: Speed up distribution compression 2016-06-30 16:05:24 +02:00
Makefile.nonreentrant cfg.mk: use a single regex for all non-reentrant functions 2016-06-15 15:00:56 +02:00
README Correct typos in the documentation (Atsushi SAKAI) 2008-01-24 10:15:13 +00:00
README-hacking docs: update README-hacking 2014-05-06 16:20:24 -06:00
TODO Update todo list file to point at bugzilla/website 2010-10-13 16:45:26 +01:00
autobuild.sh maint: Switch to xz compressed PAX release archives 2016-06-15 18:53:34 +02:00
autogen.sh maint: improve usage of autogen's --no-git 2015-02-06 11:35:29 -07:00
bootstrap maint: update to latest gnulib 2016-05-26 10:47:03 -06:00
bootstrap.conf hvsupport: use a regex instead of XML::XPath 2016-07-19 18:42:44 +02:00
cfg.mk cfg.mk: join not_streq and not_strneq tests 2016-08-18 13:37:08 +02:00
config-post.h gnulib: add getopt module 2016-07-10 15:39:44 -04:00
configure.ac Post-release version bump to 2.2.0 2016-08-02 13:00:38 +02:00
libvirt-admin.pc.in Add libvirt-admin library 2015-06-16 13:46:20 +02:00
libvirt-lxc.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt-qemu.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt.spec.in rpm: set TLS priority to @LIBVIRT,SYSTEM on Fedora >= 25 2016-08-04 15:59:24 +01:00
mingw-libvirt.spec.in mingw-libvirt.spec.in: add perl + perl(Getopt::Long) BRs 2016-07-01 14:11:15 +01:00
run.in Add PKG_CONFIG_PATH to run.in script. 2014-06-26 14:32:35 +01:00

README

         LibVirt : simple API for virtualization

  Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). It is free software
available under the GNU Lesser General Public License. Virtualization of
the Linux Operating System means the ability to run multiple instances of
Operating Systems concurrently on a single hardware system where the basic
resources are driven by a Linux instance. The library aim at providing
long term stable C API initially for the Xen paravirtualization but
should be able to integrate other virtualization mechanisms if needed.

Daniel Veillard <veillard@redhat.com>