Re: [libvirt] [PATCH 17/40] Simplify the Xen domain get/set (max) memory driver methods

2013-05-06 Thread Jim Fehlig
Daniel P. Berrange wrote:
 From: Daniel P. Berrange berra...@redhat.com

 Simplify the Xen memory limit driver methods to directly call
 the most appropriate sub-driver

 Signed-off-by: Daniel P. Berrange berra...@redhat.com
 ---
  src/xen/xen_driver.c | 50 ++-
  src/xen/xen_driver.h |  3 --
  src/xen/xen_hypervisor.c | 35 ---
  src/xen/xen_hypervisor.h |  3 +-
  src/xen/xend_internal.c  | 15 
  src/xen/xm_internal.c| 16 +
  src/xen/xs_internal.c| 90 
 
  src/xen/xs_internal.h|  4 ---
  8 files changed, 36 insertions(+), 180 deletions(-)
   

Another nice cleanup. I've tested this one as well and didn't notice any
problems. ACK.

I'll have to continue with the reviews tomorrow.

Regards,
Jim

 diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
 index 8ee3c4c..7d09c6b 100644
 --- a/src/xen/xen_driver.c
 +++ b/src/xen/xen_driver.c
 @@ -801,53 +801,41 @@ static unsigned long long
  xenUnifiedDomainGetMaxMemory(virDomainPtr dom)
  {
  xenUnifiedPrivatePtr priv = dom-conn-privateData;
 -int i;
 -unsigned long long ret;
 -
 -for (i = 0; i  XEN_UNIFIED_NR_DRIVERS; ++i)
 -if (priv-opened[i]  drivers[i]-xenDomainGetMaxMemory) {
 -ret = drivers[i]-xenDomainGetMaxMemory(dom);
 -if (ret != 0) return ret;
 -}
  
 -return 0;
 +if (dom-id  0) {
 +if (priv-xendConfigVersion  XEND_CONFIG_VERSION_3_0_4)
 +return xenXMDomainGetMaxMemory(dom);
 +else
 +return xenDaemonDomainGetMaxMemory(dom);
 +} else {
 +return xenHypervisorGetMaxMemory(dom);
 +}
  }
  
  static int
  xenUnifiedDomainSetMaxMemory(virDomainPtr dom, unsigned long memory)
  {
  xenUnifiedPrivatePtr priv = dom-conn-privateData;
 -int i;
  
 -/* Prefer xend for setting max memory */
 -if (priv-opened[XEN_UNIFIED_XEND_OFFSET]) {
 -if (xenDaemonDomainSetMaxMemory(dom, memory) == 0)
 -return 0;
 +if (dom-id  0) {
 +if (priv-xendConfigVersion  XEND_CONFIG_VERSION_3_0_4)
 +return xenXMDomainSetMaxMemory(dom, memory);
 +else
 +return xenDaemonDomainSetMaxMemory(dom, memory);
 +} else {
 +return xenHypervisorSetMaxMemory(dom, memory);
  }
 -
 -for (i = 0; i  XEN_UNIFIED_NR_DRIVERS; ++i)
 -if (i != XEN_UNIFIED_XEND_OFFSET 
 -priv-opened[i] 
 -drivers[i]-xenDomainSetMaxMemory 
 -drivers[i]-xenDomainSetMaxMemory(dom, memory) == 0)
 -return 0;
 -
 -return -1;
  }
  
  static int
  xenUnifiedDomainSetMemory(virDomainPtr dom, unsigned long memory)
  {
  xenUnifiedPrivatePtr priv = dom-conn-privateData;
 -int i;
 -
 -for (i = 0; i  XEN_UNIFIED_NR_DRIVERS; ++i)
 -if (priv-opened[i] 
 -drivers[i]-xenDomainSetMemory 
 -drivers[i]-xenDomainSetMemory(dom, memory) == 0)
 -return 0;
  
 -return -1;
 +if (dom-id  0  priv-xendConfigVersion  XEND_CONFIG_VERSION_3_0_4)
 +return xenXMDomainSetMemory(dom, memory);
 +else
 +return xenDaemonDomainSetMemory(dom, memory);
  }
  
  static int
 diff --git a/src/xen/xen_driver.h b/src/xen/xen_driver.h
 index 16e9743..4509161 100644
 --- a/src/xen/xen_driver.h
 +++ b/src/xen/xen_driver.h
 @@ -93,9 +93,6 @@ extern int xenRegister (void);
   * structure with direct calls in xen_unified.c.
   */
  struct xenUnifiedDriver {
 -virDrvDomainGetMaxMemory xenDomainGetMaxMemory;
 -virDrvDomainSetMaxMemory xenDomainSetMaxMemory;
 -virDrvDomainSetMemory xenDomainSetMemory;
  virDrvDomainGetInfo xenDomainGetInfo;
  virDrvDomainPinVcpu xenDomainPinVcpu;
  virDrvDomainGetVcpus xenDomainGetVcpus;
 diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
 index 8636d52..7662843 100644
 --- a/src/xen/xen_hypervisor.c
 +++ b/src/xen/xen_hypervisor.c
 @@ -870,11 +870,7 @@ typedef struct xen_op_v2_dom xen_op_v2_dom;
  # error unsupported platform
  #endif
  
 -static unsigned long long xenHypervisorGetMaxMemory(virDomainPtr domain);
 -
  struct xenUnifiedDriver xenHypervisorDriver = {
 -.xenDomainGetMaxMemory = xenHypervisorGetMaxMemory,
 -.xenDomainSetMaxMemory = xenHypervisorSetMaxMemory,
  .xenDomainGetInfo = xenHypervisorGetDomainInfo,
  .xenDomainPinVcpu = xenHypervisorPinVcpu,
  .xenDomainGetVcpus = xenHypervisorGetVcpus,
 @@ -2763,9 +2759,8 @@ xenHypervisorGetMaxVcpus(virConnectPtr conn 
 ATTRIBUTE_UNUSED,
  }
  
  /**
 - * xenHypervisorGetDomMaxMemory:
 - * @conn: connection data
 - * @id: domain id
 + * xenHypervisorDomMaxMemory:
 + * @dom: domain
   *
   * Retrieve the maximum amount of physical memory allocated to a
   * domain.
 @@ -2773,9 +2768,9 @@ xenHypervisorGetMaxVcpus(virConnectPtr conn 
 ATTRIBUTE_UNUSED,
   * Returns the memory size in kilobytes or 0 in case of error.
   */
  unsigned long
 

[libvirt] [PATCH 17/40] Simplify the Xen domain get/set (max) memory driver methods

2013-05-02 Thread Daniel P. Berrange
From: Daniel P. Berrange berra...@redhat.com

Simplify the Xen memory limit driver methods to directly call
the most appropriate sub-driver

Signed-off-by: Daniel P. Berrange berra...@redhat.com
---
 src/xen/xen_driver.c | 50 ++-
 src/xen/xen_driver.h |  3 --
 src/xen/xen_hypervisor.c | 35 ---
 src/xen/xen_hypervisor.h |  3 +-
 src/xen/xend_internal.c  | 15 
 src/xen/xm_internal.c| 16 +
 src/xen/xs_internal.c| 90 
 src/xen/xs_internal.h|  4 ---
 8 files changed, 36 insertions(+), 180 deletions(-)

diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
index 8ee3c4c..7d09c6b 100644
--- a/src/xen/xen_driver.c
+++ b/src/xen/xen_driver.c
@@ -801,53 +801,41 @@ static unsigned long long
 xenUnifiedDomainGetMaxMemory(virDomainPtr dom)
 {
 xenUnifiedPrivatePtr priv = dom-conn-privateData;
-int i;
-unsigned long long ret;
-
-for (i = 0; i  XEN_UNIFIED_NR_DRIVERS; ++i)
-if (priv-opened[i]  drivers[i]-xenDomainGetMaxMemory) {
-ret = drivers[i]-xenDomainGetMaxMemory(dom);
-if (ret != 0) return ret;
-}
 
-return 0;
+if (dom-id  0) {
+if (priv-xendConfigVersion  XEND_CONFIG_VERSION_3_0_4)
+return xenXMDomainGetMaxMemory(dom);
+else
+return xenDaemonDomainGetMaxMemory(dom);
+} else {
+return xenHypervisorGetMaxMemory(dom);
+}
 }
 
 static int
 xenUnifiedDomainSetMaxMemory(virDomainPtr dom, unsigned long memory)
 {
 xenUnifiedPrivatePtr priv = dom-conn-privateData;
-int i;
 
-/* Prefer xend for setting max memory */
-if (priv-opened[XEN_UNIFIED_XEND_OFFSET]) {
-if (xenDaemonDomainSetMaxMemory(dom, memory) == 0)
-return 0;
+if (dom-id  0) {
+if (priv-xendConfigVersion  XEND_CONFIG_VERSION_3_0_4)
+return xenXMDomainSetMaxMemory(dom, memory);
+else
+return xenDaemonDomainSetMaxMemory(dom, memory);
+} else {
+return xenHypervisorSetMaxMemory(dom, memory);
 }
-
-for (i = 0; i  XEN_UNIFIED_NR_DRIVERS; ++i)
-if (i != XEN_UNIFIED_XEND_OFFSET 
-priv-opened[i] 
-drivers[i]-xenDomainSetMaxMemory 
-drivers[i]-xenDomainSetMaxMemory(dom, memory) == 0)
-return 0;
-
-return -1;
 }
 
 static int
 xenUnifiedDomainSetMemory(virDomainPtr dom, unsigned long memory)
 {
 xenUnifiedPrivatePtr priv = dom-conn-privateData;
-int i;
-
-for (i = 0; i  XEN_UNIFIED_NR_DRIVERS; ++i)
-if (priv-opened[i] 
-drivers[i]-xenDomainSetMemory 
-drivers[i]-xenDomainSetMemory(dom, memory) == 0)
-return 0;
 
-return -1;
+if (dom-id  0  priv-xendConfigVersion  XEND_CONFIG_VERSION_3_0_4)
+return xenXMDomainSetMemory(dom, memory);
+else
+return xenDaemonDomainSetMemory(dom, memory);
 }
 
 static int
diff --git a/src/xen/xen_driver.h b/src/xen/xen_driver.h
index 16e9743..4509161 100644
--- a/src/xen/xen_driver.h
+++ b/src/xen/xen_driver.h
@@ -93,9 +93,6 @@ extern int xenRegister (void);
  * structure with direct calls in xen_unified.c.
  */
 struct xenUnifiedDriver {
-virDrvDomainGetMaxMemory xenDomainGetMaxMemory;
-virDrvDomainSetMaxMemory xenDomainSetMaxMemory;
-virDrvDomainSetMemory xenDomainSetMemory;
 virDrvDomainGetInfo xenDomainGetInfo;
 virDrvDomainPinVcpu xenDomainPinVcpu;
 virDrvDomainGetVcpus xenDomainGetVcpus;
diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
index 8636d52..7662843 100644
--- a/src/xen/xen_hypervisor.c
+++ b/src/xen/xen_hypervisor.c
@@ -870,11 +870,7 @@ typedef struct xen_op_v2_dom xen_op_v2_dom;
 # error unsupported platform
 #endif
 
-static unsigned long long xenHypervisorGetMaxMemory(virDomainPtr domain);
-
 struct xenUnifiedDriver xenHypervisorDriver = {
-.xenDomainGetMaxMemory = xenHypervisorGetMaxMemory,
-.xenDomainSetMaxMemory = xenHypervisorSetMaxMemory,
 .xenDomainGetInfo = xenHypervisorGetDomainInfo,
 .xenDomainPinVcpu = xenHypervisorPinVcpu,
 .xenDomainGetVcpus = xenHypervisorGetVcpus,
@@ -2763,9 +2759,8 @@ xenHypervisorGetMaxVcpus(virConnectPtr conn 
ATTRIBUTE_UNUSED,
 }
 
 /**
- * xenHypervisorGetDomMaxMemory:
- * @conn: connection data
- * @id: domain id
+ * xenHypervisorDomMaxMemory:
+ * @dom: domain
  *
  * Retrieve the maximum amount of physical memory allocated to a
  * domain.
@@ -2773,9 +2768,9 @@ xenHypervisorGetMaxVcpus(virConnectPtr conn 
ATTRIBUTE_UNUSED,
  * Returns the memory size in kilobytes or 0 in case of error.
  */
 unsigned long
-xenHypervisorGetDomMaxMemory(virConnectPtr conn, int id)
+xenHypervisorGetMaxMemory(virDomainPtr dom)
 {
-xenUnifiedPrivatePtr priv = conn-privateData;
+xenUnifiedPrivatePtr priv = dom-conn-privateData;
 xen_getdomaininfo dominfo;
 int ret;
 
@@ -2787,32 +2782,14 @@ xenHypervisorGetDomMaxMemory(virConnectPtr conn, int id)