On 12/18/2013 08:42 AM, Thorsten Behrens wrote: > Attempt to query domain memory stats via virDomainMemoryStats. > Fallback to old, possibly static virDomainGetInfo when that fails. > --- > virtManager/domain.py | 25 +++++++++++++++++++++++-- > 1 file changed, 23 insertions(+), 2 deletions(-) > > diff --git a/virtManager/domain.py b/virtManager/domain.py > index c94ac57..11488f9 100644 > --- a/virtManager/domain.py > +++ b/virtManager/domain.py > @@ -245,6 +245,8 @@ class vmmDomain(vmmLibvirtObject): > self.remote_console_supported = False > self.title_supported = False > > + self._mem_stats_supported = True > + > self._enable_net_poll = False > self._stats_net_supported = True > self._stats_net_skip = [] > @@ -1360,11 +1362,30 @@ class vmmDomain(vmmLibvirtObject): > ################### > > def _sample_mem_stats(self, info): > + # fallback - if the below fails, have at least the old > + # virDomainGetInfo data at hand > curmem = info[2] > - if not self.is_active(): > + totalmem = self.maximum_memory() > + if (not self._mem_stats_supported or > + not self.is_active()): > curmem = 0 There's a few issues here. curmem should only be 0 if self.is_active(), independent of the support check. So the GetInfo fallback doesn't work. That said, I don't want the memory graph to mean different things if memoryStats isn't supported, since that's just going to confuse people. So I removed the GetInfo fallback. We should find a way to make this case more clear in the UI, but that can come later. Pushed now, thanks. - Cole > + else: > + # retrieve dynamic mem stats, if supported > + 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 util.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 > _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list