- 18 12月, 2009 13 次提交
-
-
由 Jiri Denemark 提交于
* src/qemu/qemu_conf.c src/qemu/qemu_conf.h src/qemu/qemu_driver.c: add the new entry point, extend capabilities and code to interract with qemu
-
由 Jiri Denemark 提交于
* src/cpu/cpu_map.xml: newdescription file * src/Makefile.am: include it in dist
-
由 Jiri Denemark 提交于
Each driver supporting CPU selection must fill in host CPU capabilities. When filling them, drivers for hypervisors running on the same node as libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers, such as VMware, need to implement their own way of getting such data. Raw data can be decoded into virCPUDefPtr using cpuDecode() function. When implementing virConnectCompareCPU(), a hypervisor driver can just call cpuCompareXML() function with host CPU capabilities. For each guest for which a driver supports selecting CPU models, it must set the appropriate feature in guest's capabilities: virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0) Actions needed when a domain is being created depend on whether the hypervisor understands raw CPU data (currently CPUID for i686, x86_64 architectures) or symbolic names has to be used. Typical use by hypervisors which prefer CPUID (such as VMware and Xen): - convert guest CPU configuration from domain's XML into a set of raw data structures each representing one of the feature policies: cpuEncode(conn, architecture, guest_cpu_config, &forced_data, &required_data, &optional_data, &disabled_data, &forbidden_data) - create a mask or whatever the hypervisor expects to see and pass it to the hypervisor Typical use by hypervisors with symbolic model names (such as QEMU): - get raw CPU data for a computed guest CPU: cpuGuestData(conn, host_cpu, guest_cpu_config, &data) - decode raw data into virCPUDefPtr with a possible restriction on allowed model names: cpuDecode(conn, guest, data, n_allowed_models, allowed_models) - pass guest->model and guest->features to the hypervisor * src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h * configure.in: check for CPUID instruction * src/Makefile.am: glue the new files in * src/libvirt_private.syms: add new private symbols * po/POTFILES.in: add new cpu files containing translatable strings
-
由 Jiri Denemark 提交于
* src/remote/remote_driver.c: add the new entry point
-
由 Jiri Denemark 提交于
* src/remote/remote_protocol.x: update with new entry point * daemon/remote.c: add the new server dispatcher * daemon/remote_dispatch_args.h daemon/remote_dispatch_prototypes.h daemon/remote_dispatch_ret.h daemon/remote_dispatch_table.h src/remote/remote_protocol.c src/remote/remote_protocol.h: regenerated
-
由 Jiri Denemark 提交于
* src/libvirt.c: adds the public entry point virConnectCompareCPU()
-
由 Jiri Denemark 提交于
* src/driver.h: add an extra entry point in the structure * src/esx/esx_driver.c src/lxc/lxc_driver.c src/opennebula/one_driver.c src/openvz/openvz_driver.c src/phyp/phyp_driver.c src/qemu/qemu_driver.c src/remote/remote_driver.c src/test/test_driver.c src/uml/uml_driver.c src/vbox/vbox_tmpl.c src/xen/xen_driver.c: add NULL entry points for all drivers
-
由 Jiri Denemark 提交于
* include/libvirt/libvirt.h.in: add it in the public API as well as the new flags * src/libvirt_public.syms: export it
-
由 Daniel Veillard 提交于
* po/POTFILES.in: adds src/conf/cpu_conf.c in teh set of files with translatable content * src/conf/cpu_conf.c: remove an unused include
-
由 Jiri Denemark 提交于
* include/libvirt/virterror.h src/util/virterror.c: add new domain VIR_FROM_CPU for errors * src/conf/cpu_conf.c src/conf/cpu_conf.h: new parsing module * src/Makefile.am proxy/Makefile.am: include new files * src/conf/capabilities.[ch] src/conf/domain_conf.[ch]: reference new code * src/libvirt_private.syms: private export of new entry points
-
由 Jiri Denemark 提交于
XML schema for CPU flags Firstly, CPU topology and model with optional features have to be advertised in host capabilities: <host> <cpu> <arch>ARCHITECTURE</arch> <features> <!-- old-style features are here --> </features> <model>NAME</model> <topology sockets="S" cores="C" threads="T"/> <feature name="NAME"/> </cpu> ... </host> Secondly, drivers which support detailed CPU specification have to advertise it in guest capabilities: <guest> ... <features> <cpuselection/> </features> </guest> And finally, CPU may be configured in domain XML configuration: <domain> ... <cpu match="MATCH"> <model>NAME</model> <topology sockets="S" cores="C" threads="T"/> <feature policy="POLICY" name="NAME"/> </cpu> </domain> Where MATCH can be one of: - 'minimum' specified CPU is the minimum requested CPU - 'exact' disable all additional features provided by host CPU - 'strict' fail if host CPU doesn't exactly match POLICY can be one of: - 'force' turn on the feature, even if host doesn't have it - 'require' fail if host doesn't have the feature - 'optional' match host - 'disable' turn off the feature, even if host has it - 'forbid' fail if host has the feature 'force' and 'disable' policies turn on/off the feature regardless of its availability on host. 'force' is unlikely to be used but its there for completeness since Xen and VMWare allow it. 'require' and 'forbid' policies prevent a guest from being started on a host which doesn't/does have the feature. 'forbid' is for cases where you disable the feature but a guest may still try to access it anyway and you don't want it to succeed. 'optional' policy sets the feature according to its availability on host. When a guest is booted on a host that has the feature and then migrated to another host, the policy changes to 'require' as we can't take the feature away from a running guest. Default policy for features provided by host CPU but not specified in domain configuration is set using match attribute of cpu tag. If 'minimum' match is requested, additional features will be treated as if they were specified with 'optional' policy. 'exact' match implies 'disable' policy and 'strict' match stands for 'forbid' policy. * docs/schemas/capability.rng docs/schemas/domain.rng: extend the RelaxNG schemas to add CPU flags support
-
由 Daniel P. Berrange 提交于
GNUTLS uses gcrypt for its crypto functions. gcrypt requires that the app/library initializes threading before using it. We don't want to force apps using libvirt to know about gcrypt, so we make virInitialize init threading on their behalf. This location also ensures libvirtd has initialized it correctly. This initialization is required even if libvirt itself were only using one thread, since another non-libvirt library (eg GTK-VNC) could also be using gcrypt from another thread * src/libvirt.c: Register thread functions for gcrypt * configure.in: Add -lgcrypt to linker flags
-
由 Daniel P. Berrange 提交于
* src/storage/storage_driver.c: Fix IsPersistent() and IsActivE() methods on storage pools to use 'storagePrivateData' instead of 'privateData'. Also fix naming convention of objects
-
- 16 12月, 2009 10 次提交
-
-
由 Jim Meyering 提交于
* src/esx/esx_vi.c (esxVI_List_CastFromAnyType): For invalid inputs, fail right away. Do not "goto failure" where a NULL input pointer would be dereferenced.
-
由 Jim Meyering 提交于
* src/esx/esx_util.c (esxUtil_ParseDatastoreRelatedPath): Return right away for invalid inputs, rather than using them (which would dereference NULL pointers) in clean-up code.
-
由 Matthias Bolte 提交于
This also fixes a NULL-deref of virtualDev in esxVMX_ParseSCSIController found by Jim Meyering.
-
由 Matthias Bolte 提交于
-
由 Jim Meyering 提交于
This appeases a new gnulib-provided "syntax-check". * daemon/libvirtd.c (main): Use EXIT_FAILURE, not 1. * proxy/libvirt_proxy.c (main): Likewise, and EXIT_SUCCESS, not 0. * tests/conftest.c (main): Likewise. * tests/reconnect.c (main): Likewise. * tests/testutils.h (EXIT_AM_SKIP): Define. * tests/nodeinfotest.c (mymain): Use EXIT_AM_SKIP, not 77. * tests/qemuargv2xmltest.c: Likewise. * tests/qemuxml2xmltest.c: Likewise. * tests/virshtest.c (mymain): Likewise.
-
由 Jim Meyering 提交于
* build-aux/link-warning.h: Remove file from version control. * build-aux/mktempd: Likewise. * build-aux/.gitignore: Adjust.
-
由 Jim Meyering 提交于
The virFileResolveLink utility function relied on the POSIX guarantee that stat.st_size of a symlink is the length of the value. However, on some types of file systems, it is invalid, so do not rely on it. Use gnulib's areadlink module instead. * bootstrap (modules): Add areadlink. * src/util/util.c: Include "areadlink.h". Let areadlink perform the readlink and malloc. * configure.in (AC_CHECK_FUNCS): Remove readlink. No need, since it's presence is guaranteed by gnulib.
-
由 Jim Meyering 提交于
-
由 Jim Meyering 提交于
* src/xen/xm_internal.c (xenXMConfigGetULong): Remove useless and misleading test (always false) for val->str == NULL before code that always dereferences val->str. "val" comes from virConfGetValue, and at that point, val->str is guaranteed to be non-NULL. (xenXMConfigGetBool): Likewise. * src/util/conf.c (virConfSetValue): Ensure that vir->str is never NULL, not even if someone tries to set such a value via virConfSetValue.
-
由 Jim Meyering 提交于
* src/libvirt.c (virDomainGetVcpus): Describe new, stronger requirement on "maplen"s relationship to "cpumaps".
-
- 15 12月, 2009 7 次提交
-
-
由 Jim Meyering 提交于
* src/qemu/qemu_driver.c (doNonTunnelMigrate): Don't let a NULL "uri_out" provoke a NULL-dereference in doNativeMigrate: supply omitted goto-after-qemudReportError.
-
由 Jim Meyering 提交于
* src/qemu/qemu_driver.c (qemudDomainMigratePrepareTunnel): Upon an out of memory error, we would end up with unixfile==NULL and attempt to unlink(NULL). Skip the unlink when it's NULL.
-
由 Jim Meyering 提交于
* src/remote/remote_driver.c (remoteIOReadMessage): ...rather than zeroing out priv->saslDecodedLength twice.
-
由 Jim Meyering 提交于
* src/qemu/qemu_driver.c (qemudDomainMigrateFinish2): Set "event" to NULL after qemuDomainEventQueue frees it, so a subsequent free (after endjob label) upon qemuMonitorStartCPUs failure does not cause a double free.
-
由 Jim Meyering 提交于
* daemon/libvirtd.c (qemudDispatchServer): Since "client" may be NULL in the "cleanup:" block, free client->rx only when it's not.
-
由 Matthias Bolte 提交于
The description mismatched the actual structure since the video element was introduced. The nvram attribute is actually called vram. Specify the unit of the vram attribute.
-
由 Matthias Bolte 提交于
Commit 66137344 changed the Python detection mechanism in configure to use AM_PATH_PYTHON. This results in a changed install location for the Python bindings, at least on Fedora 12 64bit systems. Before this commit libvirt.py and libvirtmod.so were installed to /usr/lib64/python2.6/site-packages After this commit they are installed to /usr/lib/python2.6/site-packages Mixed Python packages (containing *.py and *.so files) should be installed to the pyexecdir directory detected by AM_PATH_PYTHON. This restores the install location from before the AM_PATH_PYTHON commit. * configure.in: remove unnecessary pythondir export * python/Makefile.am: switch from pythondir to pyexecdir
-
- 14 12月, 2009 10 次提交
-
-
由 Daniel Veillard 提交于
* docs/schemas/domain.rng: don't try to validate based on a list, open up the machine type to a regexp allowing a-z A-Z 0-9 _ - and .
-
由 Jim Meyering 提交于
* tools/virsh.c (vshCommandParse): Avoid double-free of "tkdata". Set it to NULL immediately after free in the (cmd == NULL) case, just as in the other case, in case the final free(tkdata) is triggered by a syntax error.
-
由 Jim Meyering 提交于
* src/node_device/node_device_driver.c (update_driver_name): The previous code would write one byte beyond the end of the 4KiB stack buffer when presented with a symlink value of exactly that length (very unlikely). Remove the automatic buffer and use virFileResolveLink in place of readlink. Suggested by Daniel Veillard.
-
由 Matthew Booth 提交于
The owner and group in the documentation examples were confusingly given as '0744'. They should be numeric uid and gid. Changed the examples to use the default uid and gid assigned to qemu in F12. * docs/formatstorage.html.in: Change example owner and group in volume XML
-
由 Daniel Veillard 提交于
-
由 Laine Stump 提交于
* src/storage/storage_backend_fs.c: virStorageBackendFileSystemDelete was incorrectly calling unlink() in an attempt to remove a directory. It should be calling rmdir() instead.
-
由 Jiri Denemark 提交于
src/node_device/node_device_udev.c was using a function available only on the daemon code, fix this and use the function available globally * src/node_device/node_device_udev.c: replace use of virEventAddHandleImpl by virEventAddHandle
-
由 Matthew Booth 提交于
* src/qemu/qemu_driver.c: #undef LOOKUP_PTYS after use in qemudFindCharDevicePTYsMonitor()
-
由 Dave Allan 提交于
This patch fixes the problem reported in: https://bugzilla.redhat.com/show_bug.cgi?id=509306 The bug reporter says that vol-delete does not support the --pool option, but that's not the case in the current head. This patch makes vol-path behave the same way as vol-delete * tools/virsh.c: Modified vol-path to use the same logic as vol-delete, allowing the syntax: virsh vol-path --pool testdirpool testvol0
-
由 Cole Robinson 提交于
Provides the CDROM label for current media. Only implemented for the udev backend.
-