Re: [PATCH 1/3] vz: implement connectGetType and connectGetMaxVcpus API calls

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





14.10.2015 18:28, Dmitry Guryanov пишет:
On 10/14/2015 12:50 PM, Maxim Nestratov wrote:
From: Maxim Nestratov <mnestratov@xxxxxxxxxxxxx>

As a connection type we report 'vz'.
And because we have no limitation for maximal number of vcpus in containers
we report as maximum 1028 just for the sake of common sence.

Signed-off-by: Maxim Nestratov <mnestratov@xxxxxxxxxxxxx>
---
  src/vz/vz_driver.c |   19 +++++++++++++++++++
  1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c
index 15dc70f..3cd6096 100644
--- a/src/vz/vz_driver.c
+++ b/src/vz/vz_driver.c
@@ -1337,12 +1337,31 @@ vzDomainMemoryStats(virDomainPtr domain,
      return ret;
  }
  +static int vzConnectGetMaxVcpus(virConnectPtr conn ATTRIBUTE_UNUSED,
+                                const char *type)
+{
+    /* As far as we have no limitation for containers
+     * we report maximum */
What about VMs?
+    if (type == NULL || STRCASEEQ(type, "vz"))
What about parallels virt type?

+        return 1028;
+
Why not 1024?

The only reason is that this number is used in openVZ driver. I failed to find out why it was chosen back then. I guess it was NR_CPUS configured for openVZ kernel.


+    virReportError(VIR_ERR_INVALID_ARG,
+                   _("unknown type '%s'"), type);
+    return -1;
+}
+
+static const char *vzConnectGetType(virConnectPtr conn ATTRIBUTE_UNUSED) {
+    return "vz";
+}
+

Is this function really needed? virConnectGetType returns driver name if it's not
implemented in the driver, exactly what are you doing.

const char *
virConnectGetType(virConnectPtr conn)
{
    const char *ret;
    VIR_DEBUG("conn=%p", conn);

    virResetLastError();

    virCheckConnectReturn(conn, NULL);

    if (conn->driver->connectGetType) {
        ret = conn->driver->connectGetType(conn);
        if (ret) return ret;
    }
    return conn->driver->name;
}

  static virHypervisorDriver vzDriver = {
      .name = "vz",
      .connectOpen = vzConnectOpen,            /* 0.10.0 */
      .connectClose = vzConnectClose,          /* 0.10.0 */
      .connectGetVersion = vzConnectGetVersion,   /* 0.10.0 */
      .connectGetHostname = vzConnectGetHostname,      /* 0.10.0 */
+    .connectGetType = vzConnectGetType,        /* 1.2.21 */
+    .connectGetMaxVcpus = vzConnectGetMaxVcpus, /* 1.2.21 */
      .nodeGetInfo = vzNodeGetInfo,      /* 0.10.0 */
      .connectGetCapabilities = vzConnectGetCapabilities, /* 0.10.0 */
      .connectBaselineCPU = vzConnectBaselineCPU, /* 1.2.6 */


--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]