[libvirt] [PATCH V2] Expose all CPU features in host definition
by Don Dugger
[V2 - Improve the error handling]
I've opened BZ 697141 on this as I would consider it more
a bug than a feature request. Anyway, to re-iterate my
rationale from the BZ:
The virConnectGetCapabilities API describes the host capabilities
by returning an XML description that includes the CPU model name
and a set of CPU features. The problem is that any features that
are part of the CPU model are not explicitly listed, they are
assumed to be part of the definition of that CPU model. This
makes it extremely difficult for the caller of this API to check
for the presence of a specific CPU feature, the caller would have
to know what features are part of which CPU models, a very
daunting task.
This patch solves this problem by having the API return a model
name, as it currently does, but it will also explicitly list all
of the CPU features that are present. This would make it much
easier for a caller of this API to check for specific features.
Signed-off-by: Don Dugger <donald.d.dugger(a)intel.com>
--
src/cpu/cpu_x86.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
index 5d479c2..098ab05 100644
--- a/src/cpu/cpu_x86.c
+++ b/src/cpu/cpu_x86.c
@@ -1296,6 +1296,35 @@ x86GuestData(virCPUDefPtr host,
return x86Compute(host, guest, data, message);
}
+static int
+x86AddFeatures(virCPUDefPtr cpu,
+ struct x86_map *map)
+{
+ int ret;
+ const struct x86_model *candidate;
+ const struct x86_feature *feature = map->features;
+
+ candidate = map->models;
+ while (candidate != NULL) {
+ if (STREQ(cpu->model, candidate->name))
+ break;
+ candidate = candidate->next;
+ }
+ if (!candidate) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ "Odd, %s not a known CPU model\n", cpu->model);
+ return -1;
+ }
+ while (feature != NULL) {
+ if (x86DataIsSubset(candidate->data, feature->data)) {
+ if ((ret = virCPUDefAddFeature(cpu, feature->name, VIR_CPU_FEATURE_DISABLE)) < 0)
+ return ret;
+ }
+ feature = feature->next;
+ }
+ return 0;
+}
+
static int
x86Decode(virCPUDefPtr cpu,
@@ -1383,6 +1412,8 @@ x86Decode(virCPUDefPtr cpu,
goto out;
}
+ if (x86AddFeatures(cpuModel, map) < 0)
+ goto out;
cpu->model = cpuModel->model;
cpu->vendor = cpuModel->vendor;
cpu->nfeatures = cpuModel->nfeatures;
--
1.7.10.4
11 years, 4 months
[libvirt] libvirt: xen error
by varun bhatnagar
Hi,
I am trying to install xen and provide libvrit support to it but while
installing at some point of time it tries to connect to GIT repository and
creates a clone but I am behind firewall and it is getting timed out.... :(
I am pasting a screenshot below. Can anyone of you please help me out with
this one.
//
Varun
11 years, 4 months
[libvirt] Load Test leads to Libvirt crash
by SHREE DUTH AWASTHI
Hi All,
Can you please help us in solving this issue.
Version used : libvirt-0.10.2
Note: We could reproduce the same crash using the latest libvirt version
1.0.5
Your inputs would be of great help to us.
Please find the backtrace below
(gdb) bt
#0 0x00007f91aac6551b in remoteClientCloseFunc (client=<value optimized
out>, reason=1, opaque=0x1cd0170) at remote/remote_driver.c:340
#1 0x00007f91aac86f32 in virNetClientCloseLocked (client=0x1cd0990) at
rpc/virnetclient.c:688
#2 0x00007f91aac89881 in virNetClientIncomingEvent (sock=0x1cd0b50,
events=9, opaque=0x1cd0990) at rpc/virnetclient.c:1859
#3 0x00007f91aab8fab5 in virEventPollDispatchHandles () at
util/event_poll.c:485
#4 virEventPollRunOnce () at util/event_poll.c:632
#5 0x00007f91aab8e6e5 in virEventRunDefaultImpl () at util/event.c:247
#6 0x000000000040dd72 in ?? ()
#7 0x00007f91aaba1f36 in virThreadHelper (data=<value optimized out>) at
util/threads-pthread.c:161
#8 0x00007f91a8d3b6ea in start_thread () from /lib64/libpthread.so.0
#9 0x00007f91a80fcabd in clone () from /lib64/libc.so.6
(gdb)
Thanking you in anticipation.
Thanks and Regards,
Shree Duth Awasthi.
11 years, 4 months
[libvirt] [sandbox][PATCH] Fix nits in virt-sandbox-service when raise ValueError
by Wayne Sun
Put error msg in list when raise ValueError.
This fix is for bug:
[virt-sandbox-service] execute command with unsupported URI error msg is not right
https://bugzilla.redhat.com/show_bug.cgi?id=967705
Signed-off-by: Wayne Sun <gsun(a)redhat.com>
---
bin/virt-sandbox-service | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/bin/virt-sandbox-service b/bin/virt-sandbox-service
index 4496b29..1db3c09 100755
--- a/bin/virt-sandbox-service
+++ b/bin/virt-sandbox-service
@@ -878,7 +878,7 @@ def sandbox_list(args):
def sandbox_reload(args):
config = read_config(args.name)
if isinstance(config, gi.repository.LibvirtSandbox.ConfigServiceGeneric):
- raise ValueError(_("Generic Containers do not support reload"))
+ raise ValueError([_("Generic Containers do not support reload")])
container = SystemdContainer(uri = args.uri, config = config)
container.reload(args.unitfiles)
@@ -931,7 +931,7 @@ def fullpath(cmd):
def execute(args):
if args.uri != "lxc:///":
- raise ValueError(_("Can only execute commands inside of linux containers."))
+ raise ValueError([_("Can only execute commands inside of linux containers.")])
myexec = [ "virsh", "-c", args.uri, "lxc-enter-namespace" ]
# myexec = [ "virt-sandbox-service-util", "execute" ]
--
1.7.1
11 years, 4 months
[libvirt] [PATCH] lxc: Create /dev/tty within a container
by Richard Weinberger
Many applications use /dev/tty to read from stdin.
E.g. zypper on openSUSE.
Let's create this device node to unbreak those applications.
As /dev/tty is a synonym for the current controlling terminal
it cannot harm the host or any other containers.
Signed-off-by: Richard Weinberger <richard(a)nod.at>
---
src/lxc/lxc_container.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index 181f6c8..9ab64a1 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -837,6 +837,7 @@ static int lxcContainerPopulateDevices(char **ttyPaths, size_t nttyPaths)
{ LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_FULL, 0666, "/dev/full" },
{ LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_RANDOM, 0666, "/dev/random" },
{ LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_URANDOM, 0666, "/dev/urandom" },
+ { LXC_DEV_MAJ_TTY, LXC_DEV_MIN_TTY, 0666, "/tty" },
};
const struct {
const char *src;
--
1.8.3
11 years, 4 months
[libvirt] RFC: Introduce API to query IP addresses for given domain
by Nehal J. Wani
Hello, fellow developers!
I am a GSoC candidate this year working for libvirt.org. My
project is "Introduce API to query IP addresses for given domain".
The discussion regarding this feature had started here:
http://www.mail-archive.com/libvir-list@redhat.com/msg51857.html and
then Michal had sent a patch too (refer:
http://www.mail-archive.com/libvir-list@redhat.com/msg57141.html). But
it was not pushed upstream due to lack of extensibility.
So far I've come up with an API and I want to get your opinion before
I start writing the rest so I don't follow the wrong direction.
Following are the valid commands:
domifaddr <domain-name>
domifaddr <domain-name> <interface-name>
domifaddr <domain-name> <interface-name> <method>
domifaddr <domain-name> <method>
methods:
(i) Querying qemu-guest-agent
(ii) Getting info from dnsmasq.leases file
(iii) Using the nwfilter to snoop the traffic
If no method is mentioned, qemu-guest-agent will be used.
Previous attempts by Michal had used structs and xml. Structs bring in
restrictions and xml has to be parsed. Hence I am not planning to
continue with either of these.
As a start, I would like to know your comments about my API which
queries the qemu-guest-agent and returns the results in
virTypedParameter **params.
Format(JSON) in which the qemu guest agent returns info:
[{"name":"lo",
"ip-addresses":
[{"ip-address-type":"ipv4","ip-address":"127.0.0.1","prefix":8},
{"ip-address-type":"ipv6","ip-address":"::1","prefix":128}],
"hardware-address":"00:00:00:00:00:00"},
{"name":"eth0",
"ip-addresses":
[{"ip-address-type":"ipv4","ip-address":"192.168.122.42","prefix":24},
{"ip-address-type":"ipv6","ip-address":"fe80::5054:ff:fe09:d240","prefix":64}],
"hardware-address":"52:54:00:09:d2:40"}]
//Possible 1-D Structure (A little hassle to maintain)
params[0] = {"iface-count",int,2}
params[1] = {"iface-name",string,"lo"}
params[2] = {"iface-hwaddr",string,"00:00:00:00:00:00"}
params[3] = {"iface-addr-count",int,2}
params[4] = {"iface-addr-type",string,"ipv4"}
params[5] = {"iface-addr",string,"127.0.0.1"}
params[6] = {"iface-addr-prefix",int,8}
params[7] = {"iface-addr-type",string,"ipv6"}
params[8] = {"iface-addr",string,"::1"}
params[9] = {"iface-addr-prefix",int,128}
....
....
....
//2D Structure: (Not very hasslefree, but easier to maintain as one
interface per row)
params[0] = {"iface-name",string,"lo"}{"iface-hwaddr",string,"00:00:00:00:00:00"}{"iface-addr-type",string,"ipv4"}{"iface-addr",string,"127.0.0.1"}{"iface-addr-prefix",int,8}{"iface-addr-type",string,"ipv6"}{"iface-addr",string,"::1"}{"iface-addr-prefix",int,128}
params[1] = {"iface-name",string,"eth0"}{"iface-hwaddr",string,"52:54:00:09:d2:40"}{"iface-addr-type",string,"ipv4"}{"iface-addr",string,"192.168.122.42"}{"iface-addr-prefix",int,8}{"iface-addr-type",string,"ipv6"}{"iface-addr",string,"fe80::5054:ff:fe09:d240"}{"iface-addr-prefix",int,64}
Function definitions that I intend to use are:
static int
remoteDispatchDomainInterfacesAddresses(
virNetServerPtr server ATTRIBUTE_UNUSED,
virNetServerClientPtr client,
virNetMessagePtr msg ATTRIBUTE_UNUSED,
virNetMessageErrorPtr rerr,
remote_domain_interfaces_addresses_args *args,
remote_domain_interfaces_addresses_ret *ret)
int virDomainInterfacesAddresses (virDomainPtr dom,
virTypedParameterPtr *params,
int *nparams,
unsigned int flags);
typedef int
(*virDrvDomainInterfacesAddresses) (virDomainPtr dom,
virTypedParameterPtr *params,
int *nparams,
unsigned int flags);
int
virDomainInterfacesAddresses (virDomainPtr dom,
virTypedParameterPtr *params,
int *nparams,
unsigned int flags)
int
qemuAgentGetInterfaces(qemuAgentPtr mon,
virTypedParameterPtr *params,
int *nparams)
int qemuAgentGetInterfaces(qemuAgentPtr mon,
virTypedParameterPtr *params,
int *nparams);
static int
qemuDomainInterfacesAddresses(virDomainPtr dom,
virTypedParameterPtr *params,
int *nparams,
unsigned int flags)
static int
remoteDomainInterfacesAddresses(virDomainPtr dom,
virTypedParameterPtr *params,
int *nparams,
unsigned int flags)
static bool
cmdDomIfAddr(vshControl *ctl, const vshCmd *cmd)
Also, It will be helpful to know whether we want the client to first
query for the number of parameters and then send the request or have
the server side allocate appropriate memory and return the result once
in for all. In the latter case, I'll be using something of the kind
virTypedParameterPtr ***params.
Thanking You,
Nehal J. Wani
UG2, BTech CS+MS(CL)
IIIT-Hyderabad
http://commanlinewani.blogspot.com
11 years, 4 months
[libvirt] [PATCH 0/3] qemu: Make setting memory limits consistent
by Jiri Denemark
We need to set memory limits in several cases:
- when setting hard_limit in memory cgroup
- when starting a domain with a VFIO PCI device attached
- when hotplugging a VFIO PCI device
- when memoryBacking/locked is used
This series makes use of a shared code to compute the limits in all of
those cases.
Jiri Denemark (3):
qemu: Move memory limit computation to a reusable function
qemu: Use qemuDomainMemoryLimit when computing memory for VFIO
qemu: Set RLIMIT_MEMLOCK when memoryBacking/locked is used
src/qemu/qemu_cgroup.c | 21 ++-------------------
src/qemu/qemu_command.c | 18 ++++++++----------
src/qemu/qemu_domain.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_domain.h | 2 ++
src/qemu/qemu_hotplug.c | 18 ++++++++----------
5 files changed, 65 insertions(+), 39 deletions(-)
--
1.8.2.1
11 years, 4 months
[libvirt] [PATCH glib] Fix name of gvir_config_domain_chardev_source_pty_set_path
by Daniel P. Berrange
From: "Daniel P. Berrange" <berrange(a)redhat.com>
The method gvir_config_domain_chardev_source_pty_set_path was
accidentally called gvir_config_domain_source_pty_set_path.
This naming flaw in turn caused the introspection data to
be incorrectly generated, putting a 'source_pty_set_path'
method on the GVirConfigDomain object.
---
libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.c | 4 ++--
libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.h | 4 ++--
libvirt-gconfig/libvirt-gconfig.sym | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.c b/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.c
index 278515c..d24385e 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.c
+++ b/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.c
@@ -82,8 +82,8 @@ GVirConfigDomainChardevSourcePty *gvir_config_domain_chardev_source_pty_new_from
return GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_PTY(object);
}
-void gvir_config_domain_source_pty_set_path(GVirConfigDomainChardevSourcePty *pty,
- const char *path)
+void gvir_config_domain_chardev_source_pty_set_path(GVirConfigDomainChardevSourcePty *pty,
+ const char *path)
{
g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_CHARDEV_SOURCE_PTY(pty));
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.h b/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.h
index 4e350e0..96e05bc 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.h
+++ b/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.h
@@ -62,8 +62,8 @@ GType gvir_config_domain_chardev_source_pty_get_type(void);
GVirConfigDomainChardevSourcePty *gvir_config_domain_chardev_source_pty_new(void);
GVirConfigDomainChardevSourcePty *gvir_config_domain_chardev_source_pty_new_from_xml(const gchar *xml,
GError **error);
-void gvir_config_domain_source_pty_set_path(GVirConfigDomainChardevSourcePty *pty,
- const char *path);
+void gvir_config_domain_chardev_source_pty_set_path(GVirConfigDomainChardevSourcePty *pty,
+ const char *path);
G_END_DECLS
diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-gconfig.sym
index ccddd88..f8c7cdd 100644
--- a/libvirt-gconfig/libvirt-gconfig.sym
+++ b/libvirt-gconfig/libvirt-gconfig.sym
@@ -66,7 +66,7 @@ LIBVIRT_GCONFIG_0.0.8 {
gvir_config_domain_chardev_source_pty_get_type;
gvir_config_domain_chardev_source_pty_new;
gvir_config_domain_chardev_source_pty_new_from_xml;
- gvir_config_domain_source_pty_set_path;
+ gvir_config_domain_chardev_source_pty_set_path;
gvir_config_domain_chardev_source_spicevmc_get_type;
gvir_config_domain_chardev_source_spicevmc_new;
--
1.8.2.1
11 years, 4 months
[libvirt] virsh live migration w/o shared storage fails with error as vm is not running
by chandrashekar shastri
Hi All,
We are testing the upstream KVM with :
Kernel, Qemu, Libvirt, Virt-Manager is built from the source (git).
kernel version : 3.9.0+
qemu version : QEMU emulator version 1.5.0
libvirt version : 1.0.5
virt-install : 0.600.3
I have followed the below steps to test the "Live migration w/o shared
storage" feature :
1. Created the qemu-img create -f qcow2 vm.qcow2 12G on the destination
host which is same as the source.
2. Started the guest on the source
3. Started the vncdisplay to monitor the guest
4. Initiated the migration "virsh migrate --live rhel64-64
qemu+ssh://9.126.89.202/system --verbose --copy-storage-all"
5. It started the copying the storage from souce to destination
(conitinously monitored it was growing)
6. Guest on the destination was paused and was running on the source
7. At some point the VM on the source shutdown and got an error on the
vnc display as " Viewport: write: Broken pipe (32)" and the VM on the
destination was undefined.
Below is the libvirt debug log, please let me with your comments.
Debug log:
--------------
When the copy operation started:
2013-06-12 14:49:43.640+0000: 1696: info : libvirt version: 1.0.5
2013-06-12 14:49:43.640+0000: 1696: debug : virGlobalInit:439 : register drivers
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:769 : driver=0x7f2a6a5cd6a0 name=Test
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:781 : registering Test as driver 0
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterNetworkDriver:616 : registering Test as network driver 0
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterInterfaceDriver:643 : registering Test as interface driver 0
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterStorageDriver:670 : registering Test as storage driver 0
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterNodeDeviceDriver:697 : registering Test as device driver 0
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterSecretDriver:724 : registering Test as secret driver 0
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterNWFilterDriver:751 : registering Test as network filter driver 0
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:769 : driver=0x7f2a6a5ced60 name=OPENVZ
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:781 : registering OPENVZ as driver 1
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:769 : driver=0x7f2a6a5cf340 name=VMWARE
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:781 : registering VMWARE as driver 2
2013-06-12 14:49:43.640+0000: 1696: debug : vboxRegister:131 : VBoxCGlueInit failed, using dummy driver
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:769 : driver=0x7f2a6a5cf920 name=VBOX
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:781 : registering VBOX as driver 3
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterNetworkDriver:616 : registering VBOX as network driver 1
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterStorageDriver:670 : registering VBOX as storage driver 1
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:769 : driver=0x7f2a6a5d3080 name=ESX
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:781 : registering ESX as driver 4
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterInterfaceDriver:643 : registering ESX as interface driver 1
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterNetworkDriver:616 : registering ESX as network driver 2
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterStorageDriver:670 : registering ESX as storage driver 2
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterNodeDeviceDriver:697 : registering ESX as device driver 1
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterSecretDriver:724 : registering ESX as secret driver 1
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterNWFilterDriver:751 : registering ESX as network filter driver 1
2013-06-12 14:49:43.640+0000: 1696: debug : parallelsRegister:2448 : Can't find prlctl command in the PATH env
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:769 : driver=0x7f2a6a5ce0a0 name=remote
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterDriver:781 : registering remote as driver 5
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterNetworkDriver:616 : registering remote as network driver 3
2013-06-12 14:49:43.640+0000: 1696: debug : virRegisterInterfaceDriver:643 : registering remote as interface driver 2
2013-06-12 14:49:43.641+0000: 1696: debug : virRegisterStorageDriver:670 : registering remote as storage driver 3
2013-06-12 14:49:43.641+0000: 1696: debug : virRegisterNodeDeviceDriver:697 : registering remote as device driver 2
2013-06-12 14:49:43.641+0000: 1696: debug : virRegisterSecretDriver:724 : registering remote as secret driver 2
2013-06-12 14:49:43.641+0000: 1696: debug : virRegisterNWFilterDriver:751 : registering remote as network filter driver 2
2013-06-12 14:49:43.641+0000: 1696: debug : virEventRegisterDefaultImpl:230 : registering default event implementation
2013-06-12 14:49:43.641+0000: 1696: debug : virEventPollAddHandle:111 : Used 0 handle slots, adding at least 10 more
2013-06-12 14:49:43.641+0000: 1696: debug : virEventPollInterruptLocked:712 : Skip interrupt, 0 0
2013-06-12 14:49:43.641+0000: 1696: debug : virEventPollAddHandle:136 : EVENT_POLL_ADD_HANDLE: watch=1 fd=5 events=1 cb=0x7f2a6a0c3070 opaque=(nil) ff=(nil)
2013-06-12 14:49:43.641+0000: 1696: debug : virEventRegisterImpl:203 : addHandle=0x7f2a6a0c3e50 updateHandle=0x7f2a6a0c3cd0 removeHandle=0x7f2a6a0c3550 addTimeout=0x7f2a6a0c36e0 updateTimeout=0x7f2a6a0c38f0 removeTimeout=0x7f2a6a0c3ac0
2013-06-12 14:49:43.641+0000: 1696: debug : virConnectOpenAuth:1452 : name=(null), auth=0x7f2a6a5cd600, flags=0
2013-06-12 14:49:43.641+0000: 1696: debug : virObjectNew:201 : OBJECT_NEW: obj=0x7f2a6b625450 classname=virConnect
2013-06-12 14:49:43.641+0000: 1696: debug : virObjectNew:201 : OBJECT_NEW: obj=0x7f2a6b625130 classname=virConnectCloseCallbackData
2013-06-12 14:49:43.641+0000: 1697: debug : virEventRunDefaultImpl:270 : running default event implementation
2013-06-12 14:49:43.641+0000: 1697: debug : virEventPollCleanupTimeouts:516 : Cleanup 0
2013-06-12 14:49:43.641+0000: 1696: debug : virConnectGetConfigFile:993 : Loading config file '/usr/local/etc/libvirt/libvirt.conf'
2013-06-12 14:49:43.641+0000: 1697: debug : virEventPollCleanupTimeouts:552 : Found 0 out of 0 timeout slots used, releasing 0
2013-06-12 14:49:43.641+0000: 1696: debug : virConfReadFile:767 : filename=/usr/local/etc/libvirt/libvirt.conf
2013-06-12 14:49:43.641+0000: 1697: debug : virEventPollCleanupHandles:564 : Cleanup 1
2013-06-12 14:49:43.641+0000: 1697: debug : virEventPollMakePollFDs:393 : Prepare n=0 w=1, f=5 e=1 d=0
2013-06-12 14:49:43.641+0000: 1696: debug : virFileClose:73 : Closed fd 7
2013-06-12 14:49:43.641+0000: 1697: debug : virEventPollCalculateTimeout:332 : Calculate expiry of 0 timers
2013-06-12 14:49:43.641+0000: 1697: debug : virEventPollCalculateTimeout:361 : Timeout at 0 due in -1 ms
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1171 : no name, allowing driver auto-select
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1213 : trying driver 0 (Test) ...
2013-06-12 14:49:43.641+0000: 1697: debug : virEventPollRunOnce:629 : EVENT_POLL_RUN: nhandles=1 timeout=-1
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1219 : driver 0 Test returned DECLINED
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1213 : trying driver 1 (OPENVZ) ...
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1219 : driver 1 OPENVZ returned DECLINED
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1213 : trying driver 2 (VMWARE) ...
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1219 : driver 2 VMWARE returned DECLINED
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1213 : trying driver 3 (VBOX) ...
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1219 : driver 3 VBOX returned DECLINED
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1213 : trying driver 4 (ESX) ...
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1219 : driver 4 ESX returned DECLINED
2013-06-12 14:49:43.641+0000: 1696: debug : do_open:1213 : trying driver 5 (remote) ...
2013-06-12 14:49:43.641+0000: 1696: debug : remoteConnectOpen:985 : Auto-probe remote URI
2013-06-12 14:49:43.641+0000: 1696: debug : doRemoteOpen:594 : proceeding with name =
2013-06-12 14:49:43.641+0000: 1696: debug : doRemoteOpen:603 : Connecting with transport 1
2013-06-12 14:49:43.641+0000: 1696: debug : doRemoteOpen:688 : Proceeding with sockname /usr/local/var/run/libvirt/libvirt-sock
2013-06-12 14:49:43.642+0000: 1696: debug : virNetSocketNew:155 : localAddr=0x7fffcba10510 remoteAddr=0x7fffcba105a0 fd=7 errfd=-1 pid=0
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectNew:201 : OBJECT_NEW: obj=0x7f2a6b6282e0 classname=virNetSocket
2013-06-12 14:49:43.642+0000: 1696: debug : virNetSocketNew:205 : RPC_SOCKET_NEW: sock=0x7f2a6b6282e0 fd=7 errfd=-1 pid=0 localAddr=127.0.0.1;0, remoteAddr=127.0.0.1;0
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectNew:201 : OBJECT_NEW: obj=0x7f2a6b628590 classname=virNetClient
2013-06-12 14:49:43.642+0000: 1696: debug : virNetClientNew:326 : RPC_CLIENT_NEW: client=0x7f2a6b628590 sock=0x7f2a6b6282e0
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectRef:295 : OBJECT_REF: obj=0x7f2a6b628590
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectRef:295 : OBJECT_REF: obj=0x7f2a6b6282e0
2013-06-12 14:49:43.642+0000: 1696: debug : virEventPollInterruptLocked:716 : Interrupting
2013-06-12 14:49:43.642+0000: 1696: debug : virEventPollAddHandle:136 : EVENT_POLL_ADD_HANDLE: watch=2 fd=7 events=1 cb=0x7f2a6a1db2e0 opaque=0x7f2a6b6282e0 ff=0x7f2a6a1db3a0
2013-06-12 14:49:43.642+0000: 1696: debug : virKeepAliveNew:196 : client=0x7f2a6b628590, interval=-1, count=0
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectNew:201 : OBJECT_NEW: obj=0x7f2a6b628880 classname=virKeepAlive
2013-06-12 14:49:43.642+0000: 1696: debug : virKeepAliveNew:215 : RPC_KEEPALIVE_NEW: ka=0x7f2a6b628880 client=0x7f2a6b628590
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectRef:295 : OBJECT_REF: obj=0x7f2a6b628590
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectRef:295 : OBJECT_REF: obj=0x7f2a6b625130
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectNew:201 : OBJECT_NEW: obj=0x7f2a6b6287a0 classname=virNetClientProgram
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectNew:201 : OBJECT_NEW: obj=0x7f2a6b6284b0 classname=virNetClientProgram
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectNew:201 : OBJECT_NEW: obj=0x7f2a6b6280b0 classname=virNetClientProgram
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectRef:295 : OBJECT_REF: obj=0x7f2a6b6287a0
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectRef:295 : OBJECT_REF: obj=0x7f2a6b6284b0
2013-06-12 14:49:43.642+0000: 1696: debug : virObjectRef:295 : OBJECT_REF: obj=0x7f2a6b6280b0
2013-06-12 14:49:43.642+0000: 1696: debug : doRemoteOpen:798 : Trying authentication
2013-06-12 14:49:43.642+0000: 1696: debug : virNetMessageNew:45 : msg=0x7f2a6b628db0 tracked=0
2013-06-12 14:49:43.642+0000: 1696: debug : virNetMessageEncodePayload:382 : Encode length as 28
2013-06-12 14:49:43.642+0000: 1696: debug : virNetClientSendInternal:1961 : RPC_CLIENT_MSG_TX_QUEUE: client=0x7f2a6b628590 len=28 prog=536903814 vers=1 proc=66 type=0 status=0 serial=0
2013-06-12 14:49:43.642+0000: 1696: debug : virNetClientCallNew:1914 : New call 0x7f2a6b624f30: msg=0x7f2a6b628db0, expectReply=1, nonBlock=0
2013-06-12 14:49:43.642+0000: 1696: debug : virNetClientIO:1721 : Outgoing message prog=536903814 version=1 serial=0 proc=66 type=0 length=28 dispatch=(nil)
2013-06-12 14:49:43.642+0000: 1696: debug : virNetClientIO:1780 : We have the buck head=0x7f2a6b624f30 call=0x7f2a6b624f30
2013-06-12 14:49:43.642+0000: 1696: debug : virEventPollUpdateHandle:147 : EVENT_POLL_UPDATE_HANDLE: watch=2 events=0
2013-06-12 14:49:43.642+0000: 1696: debug : virEventPollInterruptLocked:716 : Interrupting
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollRunOnce:640 : Poll got 1 event(s)
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollDispatchTimeouts:425 : Dispatch 0
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollDispatchHandles:470 : Dispatch 1
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollDispatchHandles:484 : i=0 w=1
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollDispatchHandles:498 : EVENT_POLL_DISPATCH_HANDLE: watch=1 events=1
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCleanupTimeouts:516 : Cleanup 0
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCleanupTimeouts:552 : Found 0 out of 0 timeout slots used, releasing 0
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCleanupHandles:564 : Cleanup 2
2013-06-12 14:49:43.642+0000: 1697: debug : virEventRunDefaultImpl:270 : running default event implementation
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCleanupTimeouts:516 : Cleanup 0
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCleanupTimeouts:552 : Found 0 out of 0 timeout slots used, releasing 0
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCleanupHandles:564 : Cleanup 2
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollMakePollFDs:393 : Prepare n=0 w=1, f=5 e=1 d=0
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollMakePollFDs:393 : Prepare n=1 w=2, f=7 e=0 d=0
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCalculateTimeout:332 : Calculate expiry of 0 timers
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCalculateTimeout:361 : Timeout at 0 due in -1 ms
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollRunOnce:629 : EVENT_POLL_RUN: nhandles=1 timeout=-1
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollRunOnce:640 : Poll got 1 event(s)
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollDispatchTimeouts:425 : Dispatch 0
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollDispatchHandles:470 : Dispatch 1
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollDispatchHandles:484 : i=0 w=1
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollDispatchHandles:498 : EVENT_POLL_DISPATCH_HANDLE: watch=1 events=1
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCleanupTimeouts:516 : Cleanup 0
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCleanupTimeouts:552 : Found 0 out of 0 timeout slots used, releasing 0
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCleanupHandles:564 : Cleanup 2
2013-06-12 14:49:43.642+0000: 1697: debug : virEventRunDefaultImpl:270 : running default event implementation
2013-06-12 14:49:43.642+0000: 1697: debug : virEventPollCleanupTimeouts:516 : Cleanup 0
When the copy operation was stopped:
2013-06-12 14:59:33.443+0000: 1696: debug : virNetClientMarkClose:634 : client=0x7f2a6b628590, reason=3
2013-06-12 14:59:33.443+0000: 1696: debug : virEventPollRemoveHandle:180 : EVENT_POLL_REMOVE_HANDLE: watch=2
2013-06-12 14:59:33.443+0000: 1696: debug : virEventPollRemoveHandle:193 : mark delete 1 7
2013-06-12 14:59:33.443+0000: 1696: debug : virEventPollInterruptLocked:716 : Interrupting
2013-06-12 14:59:33.443+0000: 1696: debug : virNetClientIOEventLoopPassTheBuck:1427 : Giving up the buck (nil)
2013-06-12 14:59:33.443+0000: 1696: debug : virNetClientIOEventLoopPassTheBuck:1441 : No thread to pass the buck to
2013-06-12 14:59:33.443+0000: 1696: debug : virNetClientCloseLocked:647 : client=0x7f2a6b628590, sock=0x7f2a6b6282e0, reason=3
2013-06-12 14:59:33.443+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b6282e0
2013-06-12 14:59:33.443+0000: 1696: debug : virObjectRef:295 : OBJECT_REF: obj=0x7f2a6b628590
2013-06-12 14:59:33.443+0000: 1696: debug : virKeepAliveStop:307 : RPC_KEEPALIVE_STOP: ka=0x7f2a6b628880 client=0x7f2a6b628590
2013-06-12 14:59:33.443+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b628880
2013-06-12 14:59:33.443+0000: 1696: debug : virObjectUnref:260 : OBJECT_DISPOSE: obj=0x7f2a6b628880
2013-06-12 14:59:33.443+0000: 1697: debug : virEventPollRunOnce:640 : Poll got 1 event(s)
2013-06-12 14:59:33.443+0000: 1697: debug : virEventPollDispatchTimeouts:425 : Dispatch 0
2013-06-12 14:59:33.443+0000: 1697: debug : virEventPollDispatchHandles:470 : Dispatch 1
2013-06-12 14:59:33.443+0000: 1697: debug : virEventPollDispatchHandles:484 : i=0 w=1
2013-06-12 14:59:33.443+0000: 1697: debug : virEventPollDispatchHandles:498 : EVENT_POLL_DISPATCH_HANDLE: watch=1 events=1
2013-06-12 14:59:33.443+0000: 1697: debug : virEventPollCleanupTimeouts:516 : Cleanup 0
2013-06-12 14:59:33.443+0000: 1697: debug : virEventPollCleanupTimeouts:552 : Found 0 out of 0 timeout slots used, releasing 0
2013-06-12 14:59:33.443+0000: 1697: debug : virEventPollCleanupHandles:564 : Cleanup 2
2013-06-12 14:59:33.443+0000: 1697: debug : virEventPollCleanupHandles:577 : EVENT_POLL_PURGE_HANDLE: watch=2
2013-06-12 14:59:33.443+0000: 1697: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b628590
2013-06-12 14:59:33.443+0000: 1697: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b6282e0
2013-06-12 14:59:33.443+0000: 1697: debug : virObjectUnref:260 : OBJECT_DISPOSE: obj=0x7f2a6b6282e0
2013-06-12 14:59:33.443+0000: 1697: debug : virNetSocketDispose:1004 : RPC_SOCKET_DISPOSE: sock=0x7f2a6b6282e0
2013-06-12 14:59:33.443+0000: 1697: debug : virEventPollRemoveHandle:180 : EVENT_POLL_REMOVE_HANDLE: watch=2
2013-06-12 14:59:33.443+0000: 1697: debug : virFileClose:73 : Closed fd 7
2013-06-12 14:59:33.459+0000: 1696: debug : virKeepAliveDispose:227 : RPC_KEEPALIVE_DISPOSE: ka=0x7f2a6b628880
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b628590
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b628590
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b628590
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:260 : OBJECT_DISPOSE: obj=0x7f2a6b628590
2013-06-12 14:59:33.459+0000: 1696: debug : virNetClientDispose:600 : RPC_CLIENT_DISPOSE: client=0x7f2a6b628590
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b625130
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b6287a0
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b6284b0
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b6280b0
2013-06-12 14:59:33.459+0000: 1696: debug : virFileClose:73 : Closed fd 9
2013-06-12 14:59:33.459+0000: 1697: debug : virEventRunDefaultImpl:270 : running default event implementation
2013-06-12 14:59:33.459+0000: 1696: debug : virFileClose:73 : Closed fd 8
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollCleanupTimeouts:516 : Cleanup 0
2013-06-12 14:59:33.459+0000: 1696: debug : virNetMessageClear:56 : msg=0x7f2a6b6285f8 nfds=0
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollCleanupTimeouts:552 : Found 0 out of 0 timeout slots used, releasing 0
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b6287a0
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollCleanupHandles:564 : Cleanup 1
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:260 : OBJECT_DISPOSE: obj=0x7f2a6b6287a0
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollMakePollFDs:393 : Prepare n=0 w=1, f=5 e=1 d=0
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b6284b0
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollCalculateTimeout:332 : Calculate expiry of 0 timers
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:260 : OBJECT_DISPOSE: obj=0x7f2a6b6284b0
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollCalculateTimeout:361 : Timeout at 0 due in -1 ms
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b6280b0
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollRunOnce:629 : EVENT_POLL_RUN: nhandles=1 timeout=-1
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:260 : OBJECT_DISPOSE: obj=0x7f2a6b6280b0
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollRunOnce:640 : Poll got 1 event(s)
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollDispatchTimeouts:425 : Dispatch 0
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:258 : OBJECT_UNREF: obj=0x7f2a6b625130
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollDispatchHandles:470 : Dispatch 1
2013-06-12 14:59:33.459+0000: 1696: debug : virObjectUnref:260 : OBJECT_DISPOSE: obj=0x7f2a6b625130
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollDispatchHandles:484 : i=0 w=1
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollDispatchHandles:498 : EVENT_POLL_DISPATCH_HANDLE: watch=1 events=1
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollCleanupTimeouts:516 : Cleanup 0
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollCleanupTimeouts:552 : Found 0 out of 0 timeout slots used, releasing 0
2013-06-12 14:59:33.459+0000: 1697: debug : virEventPollCleanupHandles:564 : Cleanup 1
2013-06-12 14:59:33.459+0000: 1696: debug : virEventPollAddTimeout:225 : Used 0 timeout slots, adding at least 10 more
2013-06-12 14:59:33.563+0000: 1696: debug : virEventPollInterruptLocked:712 : Skip interrupt, 0 139819907258112
2013-06-12 14:59:33.563+0000: 1696: debug : virEventPollAddTimeout:248 : EVENT_POLL_ADD_TIMEOUT: timer=1 frequency=0 cb=0x7f2a6a8198f0 opaque=(nil) ff=(nil)
2013-06-12 14:59:33.563+0000: 1696: debug : virEventPollRemoveTimeout:300 : EVENT_POLL_REMOVE_TIMEOUT: timer=1
2013-06-12 14:59:33.563+0000: 1696: debug : virEventPollInterruptLocked:712 : Skip interrupt, 0 139819907258112
Thanks,
Chandrashekar
`
11 years, 4 months
[libvirt] [PATCH 0/4] libxl: implement some chuncks of the NUMA interface
by Dario Faggioli
Hi Jim, Everyone,
First patch series, so maybe a small introduction is required: I'm Dario and I
work for Citrix on improving the NUMA support of Xen.
This patch series implements some of the missing bits and pieces, in the libxl
driver, regarding obtaining per-host and per-domain NUMA related information.
It's not the full libvirt NUMA interface, since we don't have all we would need
for that in Xen yet (we will in the next version, 4.4), but it's certainly
better than having nothing! :-)
Basically, I'm enhancing capability reporting, to cover NUMA topology (patch
01), and I'm implementing nodeGetCellsFreeMemory (patch 02) and
virDomainGetNumaParameters (patch 04) for the libxl driver. This last one
requires at least Xen 4.3, so I put the implementation within the proper
#ifdef-ery.
What I'm really not sure about is patch 03, which is something I need if I want
patch 04 to function properly. Basically it is about advertising that the libxl
driver supports VIR_TYPED_PARAM_STRING. I looked at how that is done in the
qemu driver, but I'm not entirely sure I completely understood the logic behind
it, so, please, tell me if I missed or misinterpreted anything! In particular,
should I have added more of those "flags &= ~VIR_TYPED_PARAM_STRING_OKAY;"
statements, as it happens in the qemu driver? If yes, in which functions?
Finally, allow me to say that it was a while that I wanted start hacking a bit
on libvirt. I'm really glad I've eventually been able to do so, and I
definitely plan to continue (with particular focus on NUMA related stuff).
Comments are of course more than welcome. :-)
Thanks and Regards,
Dario
---
Dario Faggioli (4):
libxl: implement NUMA capabilities reporting
libxl: implement per NUMA node free memory reporting
libxl: advertise the support for VIR_TYPED_PARAM_STRING
libxl: implement virDomainGetNumaParameters
src/libxl/libxl_conf.c | 128 +++++++++++++++++++++++++++++-
src/libxl/libxl_driver.c | 199 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 326 insertions(+), 1 deletion(-)
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
11 years, 4 months