From 29e389eb872ffa816be99aa66ff20bdec56d3187 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Mon, 10 Oct 2011 18:35:24 -0700 Subject: [PATCH] bug 11669: report host cpu freq from /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq. It's a bug in libvirt: http://comments.gmane.org/gmane.comp.emulators.libvirt/33277 status 11669: resolved fixed bug 11669: divide 1000, mgt server needs Mhz status 11669: resolved fixed --- .../computing/LibvirtComputingResource.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java index dddf5b3d02f..5073c9aed16 100644 --- a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java +++ b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java @@ -19,11 +19,15 @@ package com.cloud.agent.resource.computing; +import java.io.BufferedInputStream; import java.io.BufferedReader; +import java.io.DataInputStream; +import java.io.EOFException; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -2882,9 +2886,24 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv try { Connect conn = LibvirtConnection.getConnection(); final NodeInfo hosts = conn.nodeInfo(); - + boolean result = false; + try { + BufferedReader in = new BufferedReader(new FileReader("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq")); + speed = Long.parseLong(in.readLine())/1000; + result = true; + } catch (FileNotFoundException e) { + + } catch (IOException e) { + + } catch (NumberFormatException e) { + + } + + if (!result) { + speed = hosts.mhz; + } + cpus = hosts.cpus; - speed = hosts.mhz; ram = hosts.memory * 1024L; LibvirtCapXMLParser parser = new LibvirtCapXMLParser(); parser.parseCapabilitiesXML(conn.getCapabilities());