[libvirt] [PATCH 29/40] Simplify the Xen domain stats/peek / node memory driver methods
Jim Fehlig
jfehlig at suse.com
Wed May 8 23:33:13 UTC 2013
Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
>
> Make the Xen domain stats / peek and node memory driver
> methods unconditionally call the sub-drivers which are
> guaranteed to be open.
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
> src/xen/xen_driver.c | 59 +++++++++----------------------------------------
> src/xen/xend_internal.c | 3 ---
> 2 files changed, 11 insertions(+), 51 deletions(-)
>
> diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
> index 1941dbe..d6817eb 100644
> --- a/src/xen/xen_driver.c
> +++ b/src/xen/xen_driver.c
> @@ -1566,26 +1566,14 @@ static int
> xenUnifiedDomainBlockStats(virDomainPtr dom, const char *path,
> struct _virDomainBlockStats *stats)
> {
> - xenUnifiedPrivatePtr priv = dom->conn->privateData;
> -
> - if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET])
> - return xenHypervisorDomainBlockStats(dom, path, stats);
> -
> - virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
> - return -1;
> + return xenHypervisorDomainBlockStats(dom, path, stats);
> }
>
> static int
> xenUnifiedDomainInterfaceStats(virDomainPtr dom, const char *path,
> struct _virDomainInterfaceStats *stats)
> {
> - xenUnifiedPrivatePtr priv = dom->conn->privateData;
> -
> - if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET])
> - return xenHypervisorDomainInterfaceStats(dom, path, stats);
> -
> - virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
> - return -1;
> + return xenHypervisorDomainInterfaceStats(dom, path, stats);
> }
>
> static int
> @@ -1593,57 +1581,32 @@ xenUnifiedDomainBlockPeek(virDomainPtr dom, const char *path,
> unsigned long long offset, size_t size,
> void *buffer, unsigned int flags)
> {
> - int r;
> xenUnifiedPrivatePtr priv = dom->conn->privateData;
>
> virCheckFlags(0, -1);
>
> - if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) {
> - r = xenDaemonDomainBlockPeek(dom, path, offset, size, buffer);
> - if (r != -2) return r;
> - /* r == -2 means declined, so fall through to XM driver ... */
> - }
>
Heh, hack to make the unified driver keep trying. We won't miss this
code. BTW, it would be good to remove the "-2 if declined" comment in
the function description. I didn't look for these now outdated comments
in your previous patches where similar changes were made.
ACK.
Regards,
Jim
> -
> - if (priv->opened[XEN_UNIFIED_XM_OFFSET]) {
> - if (xenXMDomainBlockPeek(dom, path, offset, size, buffer) == 0)
> - return 0;
> - }
> -
> - virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
> - return -1;
> + if (dom->id < 0 && priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
> + return xenXMDomainBlockPeek(dom, path, offset, size, buffer);
> + else
> + return xenDaemonDomainBlockPeek(dom, path, offset, size, buffer);
> }
>
> static int
> xenUnifiedNodeGetCellsFreeMemory(virConnectPtr conn, unsigned long long *freeMems,
> int startCell, int maxCells)
> {
> - xenUnifiedPrivatePtr priv = conn->privateData;
> -
> - if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET])
> - return xenHypervisorNodeGetCellsFreeMemory(conn, freeMems,
> - startCell, maxCells);
> -
> - virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
> - return -1;
> + return xenHypervisorNodeGetCellsFreeMemory(conn, freeMems,
> + startCell, maxCells);
> }
>
> static unsigned long long
> xenUnifiedNodeGetFreeMemory(virConnectPtr conn)
> {
> unsigned long long freeMem = 0;
> - int ret;
> - xenUnifiedPrivatePtr priv = conn->privateData;
>
> - if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET]) {
> - ret = xenHypervisorNodeGetCellsFreeMemory(conn, &freeMem,
> - -1, 1);
> - if (ret != 1)
> - return 0;
> - return freeMem;
> - }
> -
> - virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
> - return 0;
> + if (xenHypervisorNodeGetCellsFreeMemory(conn, &freeMem, -1, 1) < 0)
> + return 0;
> + return freeMem;
> }
>
>
> diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
> index ad69b47..ba4a018 100644
> --- a/src/xen/xend_internal.c
> +++ b/src/xen/xend_internal.c
> @@ -3249,9 +3249,6 @@ xenDaemonDomainBlockPeek(virDomainPtr domain,
> int vncport;
> const char *actual;
>
> - if (domain->id < 0 && priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
> - return -2; /* Decline, allow XM to handle it. */
> -
> /* Security check: The path must correspond to a block device. */
> if (domain->id > 0)
> root = sexpr_get(domain->conn, "/xend/domain/%d?detail=1",
>
More information about the libvir-list
mailing list