be using support.is_error_nosupport (0.10.0) added Base-mem-statistics-on-virDomainMemoryStats-if-avail.patch - Add Requires on virt-manager for virt-install OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=140
67 lines
2.5 KiB
Diff
67 lines
2.5 KiB
Diff
From 229c3b692e6b340951af371e0f68484bc6a8868a Mon Sep 17 00:00:00 2001
|
|
From: Thorsten Behrens <tbehrens@suse.com>
|
|
Date: Wed, 18 Dec 2013 14:42:43 +0100
|
|
Subject: [PATCH 2/3] Base mem statistics on virDomainMemoryStats if available.
|
|
|
|
Attempt to query domain memory stats via virDomainMemoryStats.
|
|
|
|
(crobinso: remove the broken fallback, since it's confusing)
|
|
---
|
|
virtManager/domain.py | 28 ++++++++++++++++++++++------
|
|
1 file changed, 22 insertions(+), 6 deletions(-)
|
|
|
|
Index: virt-manager-0.10.0/virtManager/domain.py
|
|
===================================================================
|
|
--- virt-manager-0.10.0.orig/virtManager/domain.py
|
|
+++ virt-manager-0.10.0/virtManager/domain.py
|
|
@@ -187,6 +187,8 @@ class vmmDomain(vmmLibvirtObject):
|
|
self._guest = None
|
|
self._guest_to_define = None
|
|
|
|
+ self._mem_stats_supported = True
|
|
+
|
|
self._enable_net_poll = False
|
|
self._stats_net_supported = True
|
|
self._stats_net_skip = []
|
|
@@ -1303,12 +1305,26 @@ class vmmDomain(vmmLibvirtObject):
|
|
# Stats helpers ###
|
|
###################
|
|
|
|
- def _sample_mem_stats(self, info):
|
|
- curmem = info[2]
|
|
- if not self.is_active():
|
|
- curmem = 0
|
|
+ def _sample_mem_stats(self):
|
|
+ curmem = 0
|
|
+ totalmem = 1
|
|
+
|
|
+ if self._mem_stats_supported and self.is_active():
|
|
+ try:
|
|
+ stats = self._backend.memoryStats()
|
|
+ # did we get both required stat items back?
|
|
+ if set(['actual', 'rss']).issubset(
|
|
+ set(stats.keys())):
|
|
+ curmem = stats['rss']
|
|
+ totalmem = stats['actual']
|
|
+ except libvirt.libvirtError, err:
|
|
+ if support.is_error_nosupport(err):
|
|
+ logging.debug("Mem stats not supported: %s", err)
|
|
+ self._mem_stats_supported = False
|
|
+ else:
|
|
+ logging.error("Error reading mem stats: %s", err)
|
|
|
|
- pcentCurrMem = curmem * 100.0 / self.maximum_memory()
|
|
+ pcentCurrMem = curmem * 100.0 / totalmem
|
|
pcentCurrMem = max(0.0, min(pcentCurrMem, 100.0))
|
|
|
|
return pcentCurrMem, curmem
|
|
@@ -1751,7 +1767,7 @@ class vmmDomain(vmmLibvirtObject):
|
|
|
|
(cpuTime, cpuTimeAbs,
|
|
pcentHostCpu, pcentGuestCpu) = self._sample_cpu_stats(info, now)
|
|
- pcentCurrMem, curmem = self._sample_mem_stats(info)
|
|
+ pcentCurrMem, curmem = self._sample_mem_stats()
|
|
rdBytes, wrBytes = self._sample_disk_io()
|
|
rxBytes, txBytes = self._sample_network_traffic()
|
|
|