[libvirt] [PATCH 0/2] Use more of qemuDomObjFromDomain
by Michal Privoznik
I know we are in the freeze so I will push this after upstream is thaw.
Michal Privoznik (2):
qemu: Relax locking in DomainHasManagedSaveImage and
DomainMonitorCommand
qemu: Convert some APIs to use qemuDomObjFromDomain
src/qemu/qemu_driver.c | 478 +++++------------------------------------------
1 files changed, 51 insertions(+), 427 deletions(-)
--
1.7.8.6
12 years
[libvirt] libvirt will wait 20 minutes or hang when the network interface down
by Benjamin Wang (gendwang)
Hi,
I find that when the network interface is down. In most scenarios, the libvirt will wait 20 minutes and report the exception. In seldom scenarios, the polling
thread will hang even if the network is recovered.
The following is the formal description from libcurl website:
http://curl.haxx.se/docs/faq.html (Section "4.19 Why doesn't cURL return an error when the network cable is unplugged?")
The following is the similar case about thread hand:
http://curl.haxx.se/mail/lib-2010-07/0108.html
For "wait 20 minutes", although this is the TCP normal mechanism, but if a server manages tons of thousands of devices by libvirt. When 1000 devices are down,
This could cause thread leak for a long period.
For thread hang, this could cause thread leak forever.
I tried to add the following codes in esx_vi.c. It seems that these code can avoid the above issues. Would you give your comments?
if (curl->headers == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Could not build CURL header list"));
return -1;
}
+ curl_easy_setopt(curl->handle, CURLOPT_LOW_SPEED_LIMIT, 10);
+ curl_easy_setopt(curl->handle, CURLOPT_LOW_SPEED_TIME, 120);
curl_easy_setopt(curl->handle, CURLOPT_USERAGENT, "libvirt-esx");
curl_easy_setopt(curl->handle, CURLOPT_HEADER, 0);
curl_easy_setopt(curl->handle, CURLOPT_FOLLOWLOCATION, 0);
curl_easy_setopt(curl->handle, CURLOPT_SSL_VERIFYPEER,
B.R.
Benjamin Wang
12 years
[libvirt] [PATCH 0/8] Fix PowerPC CPU driver
by Jiri Denemark
Current PowerPC driver is too complicated and mostly wrong as it was
apparently created from x86 driver and not properly addapted for PowerPC
architecture. More details about the issues are described in individual
patches.
Jiri Denemark (8):
cpu: Introduce cpuModelIsAllowed internal API
cpu: Make comparing PowerPC CPUs easier to read
cpu: Fix PowerPCNodeData
cpu: Fix loading PowerPC vendor from cpu_map.xml
cpu: Reimplement PowerPCBaseline
cpu: Reimplement PowerPCDecode
cpu: Remove hardcoded list of PowerPC models
cpu: Rename PowerPCUpdate and PowerPCDataFree functions
src/cpu/cpu.c | 17 ++
src/cpu/cpu.h | 5 +
src/cpu/cpu_generic.c | 19 +--
src/cpu/cpu_map.xml | 12 +-
src/cpu/cpu_powerpc.c | 462 +++++++++++++++++---------------------------------
src/cpu/cpu_x86.c | 11 +-
6 files changed, 193 insertions(+), 333 deletions(-)
--
1.8.0.2
12 years
[libvirt] Release of libvirt-1.0.1
by Daniel Veillard
So as scheduled, and since we got only a few fixes on top
of rc2 I made the release this morning, it is tagged in the git tree
and tarball and rpms are available as usual at:
ftp://libvirt.org/libvirt/
This is a balanced release with both new features, a lot of
improvements and a reasonable amount of bug fixes too, overall a
bit more than 350 commit, accumulated since 1.0.0.
Features:
- Introduce virtlockd daemon (Daniel P. Berrange)
- parallels: add disk and network device support (Dmitry Guryanov)
- Add virDomainSendProcessSignal API (Daniel P. Berrange)
- Introduce virDomainFSTrim() public API (Michal Privoznik)
- add fuse support for libvirt lxc (Gao feng)
- Add Gluster protocol as supported network disk backend (Harsh Prateek Bora)
- various snapshot improvements (Peter Krempa, Eric Blake)
Documentation:
- fix some typos in examples (Eric Blake)
- Fix location of libvirt.conf and auth.conf (Michał Łomnicki)
- Document offline migration (Jiri Denemark)
- libvirt.c: Fix wording and grammar in virDomainFSTrim (Michal Privoznik)
- Fix a few spaces (Ján Tomko)
- boot order for host and redirected USB devices (Ján Tomko)
- AbortJob: Fix documentation (Michal Privoznik)
- Fix "virsh create" example (Guido Günther)
Portability:
- build: minor build fixes for BSD (Eric Blake)
- Socket identity support for FreeBSD. (Roman Bogorodskiy)
- Require SANLK_INQ_WAIT for inq_lockspace support (Guido Günther)
- locking: Fix VPATH build and distribute generated files (Jiri Denemark)
- build: Fix VPATH build (Jiri Denemark)
- Change virCgroupGetAppRoot stub on non-Linux to avoid unused param warning (Daniel P. Berrange)
- Qemu FreeBSD: fix compilation (Roman Bogorodskiy)
- Drop mntent.h include. (Roman Bogorodskiy)
- virsh: Fix usage of header termios.h (Peter Krempa)
- pci: Fix building of 32bit PCI command array (Peter Krempa)
- spec: require dbus-daemon when using libvirtd in Fedora (Eric Blake)
- systemd: require dbus service (Eric Blake)
- rpc: fix build failure with older dbus (Eric Blake)
- build: fix build --without-network (Ján Tomko)
- build: trivial fix error: implicit declaration of function 'malloc' (Natanael Copa)
- run bootstrap if .gnulib is not present (Hu Tao)
- add ppc64 and s390x to arches where qemu-kvm exists (Dan Horák)
- nodeinfo: port nodecpumap to RHEL5 (Eric Blake)
- spec: don't enable cgconfig under systemd (Eric Blake)
Bug Fixes:
- network: fix (non)update of dnsmasq config during virDomainUpdateDeviceFlags (Laine Stump)
- sanlock: Re-add lockspace unconditionally (Michal Privoznik)
- install: fix virtlockd installation (Eric Blake)
- qemu: don't fail update netdev on bridge detach failure (Laine Stump)
- selinux: fix NULL dereference in GetSecurityMountOptions (Ján Tomko)
- network: prevent dnsmasq from listening on localhost (Laine Stump)
- Fix error reporting when fetching SCSI/LVM keys (Daniel P. Berrange)
- Fix probing of QED file format (Daniel P. Berrange)
- Fix memory leak in QEMU QMP capabilities initialization (Daniel P. Berrange)
- qemu: snapshot: Remove memory image if external checkpoint fails (Peter Krempa)
- qemu: snapshot: Don't leak XML definition if restarting of CPUs fails (Peter Krempa)
- qemu: fix uninitialized variable warning in doPeer2PeerMigrate (Ján Tomko)
- conf: Remove duplicate declaration of virNetworkDNSDefPtr (Jiri Denemark)
- qemu: Restart CPUs with valid async job type when doing external snapshots (Peter Krempa)
- qemu: eliminate bogus error log when changing netdev's bridge (Laine Stump)
- qemu: capabilities: fix machine name/canonical swappage (Cole Robinson)
- Inhibit daemon shutdown during driver initialization (Guido Günther)
- util: Don't fail virGetGroupIDByName when group not found (Christophe Fergeau)
- util: Don't fail virGetUserIDByName when user not found (Christophe Fergeau)
- storage: Error out earlier if the volume target path already exists (Osier Yang)
- remote: Avoid the thread race condition (Daniel P. Berrange)
- qemu: Fix memory (and FD) leak on PCI device detach (Jiri Denemark)
- qemu: Don't free PCI device if adding it to activePciHostdevs fails (Jiri Denemark)
- qemu: Fix error code when attaching existing device (Jiri Denemark)
- Fix memory leak introduced by commit 501bfad1 (Jim Fehlig)
- Shut down session libvirtd cleanly on host shutdown/user logout (Alexander Larsson)
- Inhibit desktop shutdown while any virtual machines are running (Daniel P. Berrange)
- conf: prevent crash with no uuid in cephx auth secret (Ján Tomko)
- virsh: don't crash if shutdown --mode not provided (Eric Blake)
- qemu: Fix up the default machine type for QMP probing (Viktor Mihajlovski)
- Fix uninitialized variables (Guido Günther)
- qemu: don't attempt undefined QMP commands (Eric Blake)
- storage: fix scsi detach regression with cgroup ACLs (Eric Blake)
- nwfilter: report an error on OOM (Ján Tomko)
- virsh: check the return value of virStoragePoolGetAutostart (Ján Tomko)
- conf: fix uninitialized variable in virDomainListSnapshots (Ján Tomko)
- rpc: don't destroy xdr before creating it in virNetMessageEncodeHeader (Ján Tomko)
- virsh: use correct sizeof when allocating cpumap (Ján Tomko)
- util: fix virBitmap allocation in virProcessInfoGetAffinity (Ján Tomko)
- conf: fix NULL check in virNetDevBandwidthParse (Ján Tomko)
- Don't fail hard when we can't connect to the monitor (Guido Günther)
- node_memory: Fix bug of node_memory_tune (Osier Yang)
- node_memory: Do not fail if there is parameter unsupported (Osier Yang)
- network: fix crash when portgroup has no name (Laine Stump)
- maint: Fix use of invalid reboot flags (Michal Privoznik)
- util: check for NULL parameter in virFileWrapperFdCatchError (Ján Tomko)
- conf: snapshot: check return value of virDomainSnapshotObjListNum (Ján Tomko)
- conf: check the return value of virXPathNodeSet (Ján Tomko)
- cgroup: fix impossible overrun in virCgroupAddTaskController (Ján Tomko)
- nwfilter: fix NULL pointer check in virNWFilterSnoopReqNew (Ján Tomko)
- qemu: Fix error messages when dispatching guest agent commands (Peter Krempa)
- qemu: Fix QMP Capabability Probing Failure (Viktor Mihajlovski)
- qemu: Wait for monitor socket even without pid (Viktor Mihajlovski)
- bitmap: fix typo to use UL type of integer constant in virBitmapIsAllSet (Guannan Ren)
- qemu: fix a crash when save file can't be opened (Ján Tomko)
- Fix leak of virNetworkPtr in LXC startup failure path (Daniel P. Berrange)
- Fix error reporting in virNetDevVethDelete (Daniel P. Berrange)
- Ensure transient def is removed if LXC start fails (Daniel P. Berrange)
- Ensure failure to create macvtap device aborts LXC start (Daniel P. Berrange)
- Avoid crash when LXC start fails with no interface target (Daniel P. Berrange)
- Treat missing driver cgroup as fatal in LXC driver (Daniel P. Berrange)
- Ensure LXC container exits if cgroups setup fails (Daniel P. Berrange)
- Fix error handling in virSecurityManagerGetMountOptions (Daniel P. Berrange)
- storage: fix device detach regression with cgroup ACLs (Eric Blake)
- lxc: Don't crash if no security driver is specified in libvirt_lxc (Peter Krempa)
- lxc: Avoid segfault of libvirt_lxc helper on early cleanup paths (Peter Krempa)
- storage: fix logical volume cloning (Ján Tomko)
- Fix exiting of libvirt_lxc program on container quit (Daniel P. Berrange)
- Skip deleted timers when calculting next timeout (Daniel P. Berrange)
- Fix virDiskNameToIndex to actually ignore partition numbers (Daniel P. Berrange)
- qemu: Stop recursive detection of image chains when an image is missing (Peter Krempa)
- storage: Fix bug of fs pool destroying (Osier Yang)
- qemu: fix RBD attach regression (Scott Sullivan)
- qemu: allow larger discrepency between memory & currentMemory in domain xml (Laine Stump)
- sanlock: Retry after EINPROGRESS (Michal Privoznik)
- virsh: fix uninitialized variable in cmdSnapshotEdit (Ján Tomko)
- util: fix index when building lock owners array (Laine Stump)
- Fix uninitialized variable in virLXCControllerSetupDevPTS (Daniel P. Berrange)
- tests: Remove temporary directories in qemumonitorjsontest (Peter Krempa)
- tests: Fix qemumonitorjsontest deadlock when the machine is under load (Peter Krempa)
- qemu: Fix domain ID numbering race condition (Peter Krempa)
- storage: fix broken backing chain (Philipp Hahn)
- qemu: Don't corrupt pointer in qemuDomainSaveMemory() (Peter Krempa)
- esx: Yet another connection fix for 5.1 (Martin Kletzander)
- iohelper: Don't report errors on special FDs (Michal Privoznik)
- qemu: Fix possible race when pausing guest (Peter Krempa)
- conf: net: Fix deadlock if assignment of network def fails (Peter Krempa)
- conf: net: Fix helper for applying new network definition (Peter Krempa)
Improvements:
- spec: Include lockd files in libvirt-daemon package (Jiri Denemark)
- build: Install both qemu-lockd.conf and qemu-sanlock.conf (Jiri Denemark)
- build: use fewer cat processes (Eric Blake)
- build: Distribute more files (Jiri Denemark)
- virsh: use vshReconnect for non-default connections too (Ján Tomko)
- virsh: don't lie about reconnection in vshReconnect (Ján Tomko)
- Add support for locking based on SCSI volume ID (Daniel P. Berrange)
- Add support for locking based on LVM volume uuid (Daniel P. Berrange)
- Add ability to maintain disk leases indirectly (Daniel P. Berrange)
- Add a virtlockd client as a lock driver impl (Daniel P. Berrange)
- Add support for re-exec() of virtlockd upon SIGUSR1 (Daniel P. Berrange)
- Enable systemd socket activation with virtlockd (Daniel P. Berrange)
- Implement dispatch functions for lock protocol in virtlockd (Daniel P. Berrange)
- Define a wire protocol for talking to the virtlockd daemon (Daniel P. Berrange)
- Introduce basic infrastructure for virtlockd daemon (Daniel P. Berrange)
- Refactor creation of lock manager plugins (Daniel P. Berrange)
- Support network boot for HVM guests in libxl (Jim Fehlig)
- Add lots of debugging to storage file probing code (Daniel P. Berrange)
- Log warning if storage magic matches, but version does not (Daniel P. Berrange)
- network: match xml warning message (Eric Blake)
- Fix make check with different object directory (Viktor Mihajlovski)
- qemu: Improve error reporting from qemuDomainManagedSaveRemove (Peter Krempa)
- qemu: Small code cleanups in the managedsave functions (Peter Krempa)
- qemu: Refactor managed save functions to use domain lookup helpers (Peter Krempa)
- qemu: Add a new domain lookup helper and improve the docs (Peter Krempa)
- util: Fix warning message in previous patch (Peter Krempa)
- util: rework error reporting in virGet(User|Group)IDByName (Peter Krempa)
- Refactor virDomainHostdevFind method (Daniel P. Berrange)
- Slightly refactor hostdev parsing / formating (Daniel P. Berrange)
- Remove bogus const return values in storage file APIs (Daniel P. Berrange)
- Add missing export of virStorageFileGetLVMKey & virStorageFileGetSCSIKey (Daniel P. Berrange)
- Fix sorting of libvirt_private.syms and add syntax check rule (Daniel P. Berrange)
- uml: Report error if inotify fails on driver startup (Cole Robinson)
- tools: Only install guests init script if --with-init=script=redhat (Cole Robinson)
- add vnc unix sockets to apparmor policy (Serge Hallyn)
- add security hook for permitting hugetlbfs access (Serge Hallyn)
- maint: mention when HACKING is rebuilt during make (Eric Blake)
- qemu: reuse qemuMigrationIsAllowed when doing save and managedsave (Peter Krempa)
- qemu: snapshot: Report better error message if migration isn't allowed (Peter Krempa)
- qemu: Make qemuMigrationIsAllowed more reusable (Peter Krempa)
- qemu: assume seccomp sandbox is supported since qemu 1.2 (Ján Tomko)
- domain: Keep assigned class_id in domstatus XML (Michal Privoznik)
- network: Create real network status files (Michal Privoznik)
- bandwidth: Create network bandwidth (un)plug functions (Michal Privoznik)
- bandwidth: Create rate update function (Michal Privoznik)
- bandwidth: Create (un)plug functions (Michal Privoznik)
- bandwidth: Create hierarchical shaping classes (Michal Privoznik)
- bandwidth: add new 'floor' attribute (Michal Privoznik)
- bandwidth: Attach sfq to leaf node (Michal Privoznik)
- parallels: handle network adapters of type 'routed' (Dmitry Guryanov)
- parallels: add routed pseudo network (Dmitry Guryanov)
- parallels: parse virtual network properties (Dmitry Guryanov)
- parallels: add network driver (Dmitry Guryanov)
- parallels: move parallelsParseError to parallels_utils.h (Dmitry Guryanov)
- parallels: add support of network interfaces to parallelsDomainDefineXML (Dmitry Guryanov)
- parallels: parse information about network interfaces (Dmitry Guryanov)
- examples: Fix balloon event callback (Jiri Denemark)
- network: put dnsmasq parameters in conf-file instead of command line (Gene Czarcinski)
- network: add support for DHCPv6 (Gene Czarcinski)
- conf: split <forward> parser/clear into separate functions (Laine Stump)
- conf: put data for network <forward> element into its own struct (Laine Stump)
- conf: make virNetworkIpDefClear consistent with other functions (Laine Stump)
- conf: rename some labels and functions in network_conf (Laine Stump)
- network: backend functions for updating network dns host/srv/txt (Laine Stump)
- conf: clear and parse functions for dns host/srv/txt records (Laine Stump)
- conf: rename network dns host/srv/txt arrays (Laine Stump)
- conf: use VIR_(INSERT|DELETE)_ELEMENT in virNetworkUpdate backend (Laine Stump)
- util: add VIR_(APPEND|INSERT|DELETE)_ELEMENT (Laine Stump)
- parallels: add support of removing disks (Dmitry Guryanov)
- parallels: apply config after VM creation (Dmitry Guryanov)
- parallels: add support of disks creation (Dmitry Guryanov)
- parallels: add function parallelsGetDiskBusName (Dmitry Guryanov)
- parallels: split parallelsStorageVolumeDelete function (Dmitry Guryanov)
- parallels: fill volumes capacity parameter (Dmitry Guryanov)
- parallels: add info about volumes (Dmitry Guryanov)
- parallels: fix leaks in parallelsFindVolumes (Dmitry Guryanov)
- parallels: create storage pools by VM list (Dmitry Guryanov)
- parallels: remove unused code from storage driver (Dmitry Guryanov)
- parallels: split parallelsStorageOpen function (Dmitry Guryanov)
- parallels: handle disk devices in parallelsDomainDefineXML (Dmitry Guryanov)
- parallels: add info about hard disk devices (Dmitry Guryanov)
- Add support for offline migration (liguang)
- S390: Assign default model "virtio" for network interfaces (Viktor Mihajlovski)
- virsh: allow metadata preallocation when creating volumes (Ján Tomko)
- storage: allow metadata preallocation when creating qcow2 images (Ján Tomko)
- qemu: Allow the user to specify vendor and product for disk (Osier Yang)
- Convert libxl driver to Xen 4.2 (Jim Fehlig)
- network: prevent a few invalid configuration combinations (Laine Stump)
- network: allow guest to guest IPv6 without gateway definition (Gene Czarcinski)
- util: Do not keep PCI device config file open (Jiri Denemark)
- util: Slightly refactor PCI list functions (Jiri Denemark)
- qemu: Simplify the code (Osier Yang)
- qemu: improve error for failed JSON commands (Eric Blake)
- qemu: nicer error message if live disk snapshot unsupported (Eric Blake)
- implement managedsave in libvirt xen legacy driver (Bamvor Jian Zhang)
- Bind connection close callback APIs to python binding (Daniel P. Berrange)
- Replace polling for active VMs with signalling by drivers (Daniel P. Berrange)
- Only let VM drivers block libvirtd timed shutdown (Daniel P. Berrange)
- Make QEMU perform managed save of all VMs on stop of libvirtd (Daniel P. Berrange)
- build: fix incremental autogen.sh when no AUTHORS is present (Eric Blake)
- Add iSCSI backend storage driver for ESX (Ata E Husain Bohra)
- qemu: support live update of an interface's filter (Laine Stump)
- nwfilter: utility function virNWFilterVarValueEqual (Stefan Berger)
- conf: fix virDomainNetGetActualDirect*() and BridgeName() (Laine Stump)
- virsh: Report errors if arguments of the schedinfo command are incorrect (Peter Krempa)
- logging: more API needing to log flags (Eric Blake)
- s/flags=%u/flags=%x/ in earlier commit (Daniel P. Berrange)
- Allow duration=0 for virsh nodesuspend (Daniel P. Berrange)
- Allow comma separated list of shutdown/reboot modes with virsh (Daniel P. Berrange)
- Introduce APIs for splitting/joining strings (Daniel P. Berrange)
- Add support for shutdown / reboot APIs in LXC driver (Daniel P. Berrange)
- Introduce two new methods for triggering controlled shutdown/reboot (Daniel P. Berrange)
- Move reboot/shutdown flags combination check into QEMU driver (Daniel P. Berrange)
- Add APIs for talking to init via /dev/initctl (Daniel P. Berrange)
- Ensure virDomainShutdownFlags logs flags parameter (Daniel P. Berrange)
- Quote client identity in SASL whitelist log message (Daniel P. Berrange)
- qemu: Refactor error reporting in qemu driver configuration parser (Peter Krempa)
- qemu: Refactor config parameter retrieval (Peter Krempa)
- network: use dnsmasq --bind-dynamic when available (Laine Stump)
- util: new virSocketAddrIsPrivate function (Laine Stump)
- util: capabilities detection for dnsmasq (Laine Stump)
- virsh: do timing even for unusable connections (Ján Tomko)
- Turn some dual-state int parameters into booleans (Daniel P. Berrange)
- Introduce a 'stop' method to virDriverState (Daniel P. Berrange)
- Implement virDomainSendProcessSignal for LXC driver (Daniel P. Berrange)
- Add a 'send-process-signal' command to virsh (Daniel P. Berrange)
- Specify remote protocol for virDomainSendProcessSignal (Daniel P. Berrange)
- Rename misc QEMU structs/enums to use normal naming style (Daniel P. Berrange)
- Replace 'struct qemud_driver *' with virQEMUDriverPtr (Daniel P. Berrange)
- virsh: fix error messages in iface-bridge (Ján Tomko)
- libssh2_session: support DSS keys as well (Ján Tomko)
- virsh: Rewrite cmdDomDisplay (Martin Kletzander)
- virsh: Expose new virDomainFSTrim API (Michal Privoznik)
- qemu: Implement virDomainFSTrim (Michal Privoznik)
- remote: Implement virDomainFSTrim (Michal Privoznik)
- qemu: Add QEMU version computation to QMP probing (Viktor Mihajlovski)
- mount fuse's meminfo file to container's /proc/meminfo (Gao feng)
- make /proc/meminfo isolate with host through fuse (Gao feng)
- add interface virCgroupGetAppRoot (Gao feng)
- add interface virCgroupGetMemSwapUsage (Gao feng)
- Add a configure option for fuse support in LXC driver (Gao feng)
- Alphabetically sort libvirt_daemon.syms (Daniel P. Berrange)
- Change bridge driver to use named initializers with virDriverState (Daniel P. Berrange)
- virdbus: Add virDBusGetSessionBus helper (Alexander Larsson)
- Specify name of target interface with macvlan error (Daniel P. Berrange)
- Store initpid in the domain status XML for LXC (Daniel P. Berrange)
- Pass virSecurityManagerPtr object further down into LXC setup code (Daniel P. Berrange)
- tests: Add tests for gluster protocol based network disks support (Harsh Prateek Bora)
- qemu: Add support for gluster protocol based network storage backend. (Harsh Prateek Bora)
- Refactor ESX storage driver to implement facade pattern (Ata E Husain Bohra)
- Add private data pointer to virStoragePool and virStorageVol (Ata E Husain Bohra)
- cpu: Add Intel Haswell cpu model (Peter Krempa)
- util: Use virReportSystemError for system error in pci.c (Osier Yang)
- virsh: Report error when taking a snapshot with empty --memspec argument (Peter Krempa)
- Warn if requesting update to non-existent timer/handle watch (Daniel P. Berrange)
- qemuhelpdata: Revert my 'fix' (Michal Privoznik)
- conf: Report sensible error for invalid disk name (Martin Kletzander)
- Log an audit message with the LXC init pid (Daniel P. Berrange)
- Use virNetServerRun instead of custom main loop (Daniel P. Berrange)
- storage: Improve virStorageBackendFileSystemStop (Osier Yang)
- tests: update qemuhelptest data (Ján Tomko)
- tests: add boot order for host and redirected USB to qemu argv test (Ján Tomko)
- conf: add support for booting from redirected USB devices (Ján Tomko)
- qemu: graphics support for simultaneous one of each sdl, vnc, spice (Alon Levy)
- qemu: refactor graphics code to not hardcode a single display (Alon Levy)
- snapshot: make cloning of domain definition easier (Eric Blake)
- snapshot: expose location through virsh snapshot-info (Eric Blake)
- snapshot: implement new filter sets (Eric Blake)
- snapshot: add virsh back-compat support for new filters (Eric Blake)
- snapshot: add two more filter sets to API (Eric Blake)
- nodeinfo: support kernels that lack socket information (Eric Blake)
- snapshot: require user to supply external memory file name (Eric Blake)
- virsh: save: report an error if XML file can't be read (Ján Tomko)
- virsh: Use virNodeGetCPUMap if possible (Viktor Mihajlovski)
- python: Use virNodeGetCPUMap where possible (Viktor Mihajlovski)
- qemu, lxc: Change host CPU number detection logic. (Viktor Mihajlovski)
- nodeinfo: enable nodeGetCPUCount for older kernels (Viktor Mihajlovski)
- Use helper functions to format the journal iov array (Miloslav Trmač)
- Add metadata to virLogOutputFunc (Miloslav Trmač)
- Add a metadata parameter to virLog{, V}Message (Miloslav Trmač)
- qemu: add bootindex for usb-host and usb-redir devices (Ján Tomko)
- build: rerun bootstrap if AUTHORS is missing (Eric Blake)
- qemu: Don't force port=0 for SPICE (Michal Privoznik)
- snapshot: qemu: Fix detection of external snapshots when deleting (Peter Krempa)
- nodeinfotest: Add test data from a AMD bulldozer machine. (Peter Krempa)
- nodeinfotest: Add test data for 2 processor host with broken NUMA (Peter Krempa)
- nodeinfo: Add check and workaround to guarantee valid cpu topologies (Peter Krempa)
- qemu: Allow migration to be cancelled at prepare phase (Michal Privoznik)
- capabilities: defaultConsoleTargetType can depend on architecture (Viktor Mihajlovski)
- snapshot: qemu: Add support for external inactive snapshots (Peter Krempa)
- virsh: add snapshot-create-as memspec support (Eric Blake)
- virsh: make ,, escape parsing common (Eric Blake)
- qemu: Emit event if 'cont' fails (Michal Privoznik)
- Introduce new VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR event (Michal Privoznik)
- virsh: document which term is older (Eric Blake)
- tests: Add test for controller order (Michal Privoznik)
- qemu: Add controllers in specified order (Michal Privoznik)
- qemu: Wrap controllers code into dummy loop (Michal Privoznik)
- spec: replace scriptlets with new systemd macros (Václav Pavlín)
- gitignore: ignore more files (liguang)
- snapshot: qemu: Remove restrictions preventing external checkpoints (Peter Krempa)
- snapshot: qemu: Add support for external checkpoints (Peter Krempa)
- snapshot: qemu: Rename qemuDomainSnapshotCreateActive (Peter Krempa)
- snapshot: qemu: Add async job type for snapshots (Peter Krempa)
- snapshot: Add flag to enable creating checkpoints in live state (Peter Krempa)
- qemu: Split out domain memory saving code to allow reuse (Peter Krempa)
- qemu: Clean up snapshot retrieval to use the new helper (Peter Krempa)
- cpu: Add AMD Opteron G5 cpu model (Peter Krempa)
- cpu: Add newly added cpu flags (Peter Krempa)
- snapshot: merge pre-snapshot checks (Eric Blake)
- snapshot: populate new XML info for qemu snapshots (Eric Blake)
- snapshot: improve disk align checking (Eric Blake)
- snapshot: new XML for external system checkpoint (Eric Blake)
- snapshot: simplify OOM checking during parse (Eric Blake)
- Document bracket whitespace rules & add syntax-check rule (Daniel P. Berrange)
- net: Mark network persistent when assigning persistent definition (Peter Krempa)
- net: Add support for changing persistent networks to transient (Peter Krempa)
- net: Re-use checks when creating transient networks (Peter Krempa)
- net: Remove dnsmasq and radvd files also when destroying transient nets (Peter Krempa)
- net: Move creation of dnsmasq hosts file to function starting dnsmasq (Peter Krempa)
- net: Change argument type of virNetworkObjIsDuplicate() (Peter Krempa)
- build: Do not ignore logging.c in sc_prohibit_mkstemp (Jiri Denemark)
- qemu: use default machine type if missing it in qemu command line (Guannan Ren)
Cleanups
- storage: Remove the redundant white lines (Osier Yang)
- Fix the indention (Osier Yang)
- Do not export symbol virStateActive anymore (Osier Yang)
- maint: Misc whitespace cleanups (Peter Krempa)
- Fix the coding style (Osier Yang)
- Fix indentions (Osier Yang)
- qemu: Remove full stop from error messages (Jiri Denemark)
- build: more fix to avoid C99 for loop (Hu Tao)
- nwfilter: drop dead code (Eric Blake)
- qemu: Drop word "either" from comments for agent monitor functions (Peter Krempa)
- s/qemud/qemu/ in QEMU driver sources (Daniel P. Berrange)
- Remove bogus newline at end of debug log message (Daniel P. Berrange)
- build: avoid C99 for loop (Eric Blake)
- util: Fix the indention (Osier Yang)
- qemu/qemu_command.c: fix indent of label (Alon Levy)
- qemu: Beautify code indent in migration codes (liguang)
- qemu: Fix function header formating of 2 functions (Peter Krempa)
- Remove spurious whitespace between function name & open brackets (Daniel P. Berrange)
- Remove a chunk which should not have been pushed as part of 1.0.0 (Daniel Veillard)
- logging.c: Properly indent and ignore one syntax-check rule (Michal Privoznik)
Thanks everybody for your contributions, be it reports, code, reviews,
ideas or documentation !
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
12 years
[libvirt] [PATCH] S390: Re-enable capability probing for virtio devices.
by Viktor Mihajlovski
Since we switched to QMP probing, the object types are spelled out
explicitly, i.e. virtio-net-pci. This has effectively disabled
the capability detection of s390 virtio devices. The trivial fix
is to add the s390 virtio types explicitly to qemuCapsObjectProps.
Signed-off-by: Viktor Mihajlovski <mihajlov(a)linux.vnet.ibm.com>
---
src/qemu/qemu_capabilities.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index a6ac169..a705a53 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1400,6 +1400,10 @@ static struct qemuCapsObjectTypeProps qemuCapsObjectProps[] = {
ARRAY_CARDINALITY(qemuCapsObjectPropsVirtioBlk) },
{ "virtio-net-pci", qemuCapsObjectPropsVirtioNet,
ARRAY_CARDINALITY(qemuCapsObjectPropsVirtioNet) },
+ { "virtio-blk-s390", qemuCapsObjectPropsVirtioBlk,
+ ARRAY_CARDINALITY(qemuCapsObjectPropsVirtioBlk) },
+ { "virtio-net-s390", qemuCapsObjectPropsVirtioNet,
+ ARRAY_CARDINALITY(qemuCapsObjectPropsVirtioNet) },
{ "pci-assign", qemuCapsObjectPropsPciAssign,
ARRAY_CARDINALITY(qemuCapsObjectPropsPciAssign) },
{ "kvm-pci-assign", qemuCapsObjectPropsPciAssign,
--
1.7.9.5
12 years
[libvirt] [PATCH] util: fix botched check for new netlink request filters
by Laine Stump
This is an adjustment to the fix for
https://bugzilla.redhat.com/show_bug.cgi?id=889319
to account for two bonehead mistakes I made.
commit ac2797cf2af2fd0e64c58a48409a8175d24d6f86 attempted to fix a
problem with netlink in newer kernels requiring an extra attribute
with a filter flag set in order to receive an IFLA_VFINFO_LIST from
netlink. Unfortunately, the #ifdef that protected against compiling it
in on systems without the new flag went a bit too far, assuring that
the new code would *never* be compiled.
The first problem was that, while some IFLA_* enum values are also
not, so checking to see if it's #defined is not a valid method of
determining whether or not to add the attribute. Fortunately, the flag
that is being set (RTEXT_FILTER_VF) *is* #defined, and it is never
present if IFLA_EXT_MASK isn't, so it's sufficient to just check for
that flag.
And to top it off, due to the code not actually compiling when I
thought it did, I didn't realize that I'd been given the wrong arglist
to nla_put() - you can't just send a const value to nla_put, you have
to send it a pointer to memory containing what you want to add to the
message, along with the length of that memory.
This time I've actually sent the patch over to the other machine
that's expriencing the problem, applied it to the branch being used
(0.10.2) and verified that it works properly, i.e. it does fix the
problem it's supposed to fix. :-/
---
src/util/virnetdev.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index e5a0d6d..898e77a 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -1275,13 +1275,17 @@ virNetDevLinkDump(const char *ifname, int ifindex,
goto buffer_too_small;
}
-# if defined(IFLA_EXT_MASK) && defined(RTEXT_FILTER_VF)
+# if defined(RTEXT_FILTER_VF)
/* if this filter exists in the kernel's netlink implementation,
* we need to set it, otherwise the response message will not
* contain the IFLA_VFINFO_LIST that we're looking for.
*/
- if (nla_put(nl_msg, IFLA_EXT_MASK, RTEXT_FILTER_VF) < 0)
+ {
+ uint32_t ifla_ext_mask = RTEXT_FILTER_VF;
+
+ if (nla_put(nl_msg, IFLA_EXT_MASK, sizeof(ifla_ext_mask), &ifla_ext_mask) < 0)
goto buffer_too_small;
+ }
# endif
if (virNetlinkCommand(nl_msg, recvbuf, &recvbuflen,
--
1.7.11.7
12 years
[libvirt] qemumonitorjsontest still hangs
by Eric Blake
I ran 'make check' under a heavily loaded system, and it hung in
qemumonitorjsontest as follows:
(gdb) t a a bt
Thread 2 (Thread 0x2b0f8000e700 (LWP 423)):
#0 0x00000032f96e998d in poll () from /lib64/libc.so.6
#1 0x00002b0f7f3a1951 in virEventPollRunOnce () at util/event_poll.c:615
#2 0x00002b0f7f39fb26 in virEventRunDefaultImpl () at util/event.c:247
#3 0x00000000004c25fa in qemuMonitorTestWorker (opaque=0x1ad8bc0)
at qemumonitortestutils.c:308
#4 0x00002b0f7f3bbc39 in virThreadHelper (data=0x1ada580)
at util/threads-pthread.c:161
#5 0x00000032f9a07d15 in start_thread () from /lib64/libpthread.so.0
#6 0x00000032f96f246d in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x2b0f7fe0bbc0 (LWP 402)):
#0 0x00000032f9a08e60 in pthread_join () from /lib64/libpthread.so.0
#1 0x00002b0f7f3bbeae in virThreadJoin (thread=0x1ad8be8)
at util/threads-pthread.c:236
#2 0x00000000004c27b0 in qemuMonitorTestFree (test=0x1ad8bc0)
at qemumonitortestutils.c:362
#3 0x00000000004144ba in testQemuMonitorJSONGetMachines (data=0x1ac7650)
at qemumonitorjsontest.c:298
#4 0x0000000000414ef2 in virtTestRun (title=0x4c3434 "GetMachines",
nloops=1,
body=0x413f3e <testQemuMonitorJSONGetMachines>, data=0x1ac7650)
at testutils.c:160
---Type <return> to continue, or q <return> to quit---
#5 0x00000000004149f4 in mymain () at qemumonitorjsontest.c:446
#6 0x0000000000416092 in virtTestMain (argc=1, argv=0x7fffc02dcac8,
func=0x41493d <mymain>) at testutils.c:719
#7 0x0000000000414aab in main (argc=1, argv=0x7fffc02dcac8)
at qemumonitorjsontest.c:455
This was with latest libvirt.git, so I'm worried we still have a nasty
race somewhere in there.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
12 years
[libvirt] [PATCH] blockjob: fix memleak that prevented block pivot
by Eric Blake
https://bugzilla.redhat.com/show_bug.cgi?id=888426
The code for doing a block-copy was supposed to track the destination
file in drive->mirror, but was set up to do all mallocs prior to
starting the copy so that OOM wouldn't leave things partially started.
However, the wrong variable was being written; later in the code we
silently did 'disk->mirror = mirror' which was still NULL, and thus
leaking memory and leaving libvirt to think that the mirror job was
never started, which prevented a pivot operation after a copy.
* src/qemu/qemu_driver.c (qemuDomainBlockCopy): Initialize correct
variable.
---
src/qemu/qemu_driver.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 7d8dd21..184f852 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -13429,7 +13429,7 @@ qemuDomainBlockCopy(virDomainPtr dom, const char *path,
}
if (!format && disk->mirrorFormat > 0)
format = virStorageFileFormatTypeToString(disk->mirrorFormat);
- if (!(disk->mirror = strdup(dest))) {
+ if (!(mirror = strdup(dest))) {
virReportOOMError();
goto endjob;
}
--
1.7.1
12 years
[libvirt] vhost-net on ethernet interface type
by Raja Sivaramakrishnan
Hello,
I would like to enable vhost-net on an interface of ethernet type. However,
this doesn't work, probably due to the following code in libvirt.
if (actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||
actualType == VIR_DOMAIN_NET_TYPE_BRIDGE ||
actualType == VIR_DOMAIN_NET_TYPE_DIRECT) {
/* Attempt to use vhost-net mode for these types of
network device */
Can VIR_DOMAIN_NET_TYPE_ETHERNET also be included in the check
above? Or is there some reason to disable vhost-net for this type?
Thanks,
Raja
12 years