[libvirt] [PATCH v2 8/9] Implement cpuBaseline in remote and qemu drivers

Daniel Veillard veillard at redhat.com
Thu Feb 11 17:00:02 UTC 2010


On Thu, Feb 11, 2010 at 04:43:58PM +0100, Jiri Denemark wrote:
> Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> ---
>  src/qemu/qemu_driver.c     |   15 ++++++++++++++-
>  src/remote/remote_driver.c |   33 ++++++++++++++++++++++++++++++++-
>  2 files changed, 46 insertions(+), 2 deletions(-)
> 
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index e053be8..2a07a30 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -8499,6 +8499,19 @@ qemuCPUCompare(virConnectPtr conn,
>      return ret;
>  }
>  
> +static char *
> +qemuCPUBaseline(virConnectPtr conn ATTRIBUTE_UNUSED,
> +                const char **xmlCPUs,
> +                unsigned int ncpus,
> +                unsigned int flags ATTRIBUTE_UNUSED)
> +{
> +    char *cpu;
> +
> +    cpu = cpuBaselineXML(xmlCPUs, ncpus, NULL, 0);
> +
> +    return cpu;
> +}
> +
>  static virDriver qemuDriver = {
>      VIR_DRV_QEMU,
>      "QEMU",
> @@ -8577,7 +8590,7 @@ static virDriver qemuDriver = {
>      qemuDomainIsActive,
>      qemuDomainIsPersistent,
>      qemuCPUCompare, /* cpuCompare */
> -    NULL, /* cpuBaseline */
> +    qemuCPUBaseline, /* cpuBaseline */
>  };
>  
>  
> diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
> index 05dea04..5dda414 100644
> --- a/src/remote/remote_driver.c
> +++ b/src/remote/remote_driver.c
> @@ -7587,6 +7587,37 @@ done:
>      return rv;
>  }
>  
> +
> +static char *
> +remoteCPUBaseline(virConnectPtr conn,
> +                  const char **xmlCPUs,
> +                  unsigned int ncpus,
> +                  unsigned int flags)
> +{
> +    struct private_data *priv = conn->privateData;
> +    remote_cpu_baseline_args args;
> +    remote_cpu_baseline_ret ret;
> +    char *cpu = NULL;
> +
> +    remoteDriverLock(priv);
> +
> +    args.xmlCPUs.xmlCPUs_len = ncpus;
> +    args.xmlCPUs.xmlCPUs_val = (char **) xmlCPUs;
> +    args.flags = flags;
> +
> +    memset(&ret, 0, sizeof (ret));
> +    if (call(conn, priv, 0, REMOTE_PROC_CPU_BASELINE,
> +             (xdrproc_t) xdr_remote_cpu_baseline_args, (char *) &args,
> +             (xdrproc_t) xdr_remote_cpu_baseline_ret, (char *) &ret) == -1)
> +        goto done;
> +
> +    cpu = ret.cpu;
> +
> +done:
> +    remoteDriverUnlock(priv);
> +    return cpu;
> +}
> +
>  /*----------------------------------------------------------------------*/
>  
>  
> @@ -8977,7 +9008,7 @@ static virDriver remote_driver = {
>      remoteDomainIsActive, /* domainIsActive */
>      remoteDomainIsPersistent, /* domainIsPersistent */
>      remoteCPUCompare, /* cpuCompare */
> -    NULL, /* cpuBaseline */
> +    remoteCPUBaseline, /* cpuBaseline */
>  };
>  
>  static virNetworkDriver network_driver = {

 ACK,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list