Signed-off-by: Alexandre Derumier <aderum...@odiso.com>
---
 PVE/QemuServer.pm | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index f401baf..52db3d3 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -2657,8 +2657,11 @@ sub vmstatus {
 
        my $pstat = PVE::ProcFSTools::read_proc_pid_stat($pid);
        next if !$pstat; # not running
+       my $cgroups = PVE::QemuServer::CGroup->new($vmid);
+       my $hostcpustat = $cgroups->get_cpu_stat();
 
        my $used = $pstat->{utime} + $pstat->{stime};
+       my $hostused = $hostcpustat->{utime} + $hostcpustat->{stime};
 
        $d->{uptime} = int(($uptime - $pstat->{starttime})/$cpuinfo->{user_hz});
 
@@ -2672,6 +2675,9 @@ sub vmstatus {
                time => $ctime,
                used => $used,
                cpu => 0,
+               hostused => $hostused,
+               hostcpu => 0,
+
            };
            next;
        }
@@ -2680,15 +2686,20 @@ sub vmstatus {
 
        if ($dtime > 1000) {
            my $dutime = $used -  $old->{used};
+           my $dhostutime = $hostused -  $old->{hostused};
 
            $d->{cpu} = (($dutime/$dtime)* $cpucount) / $d->{cpus};
+           $d->{hostcpu} = (($dhostutime/$dtime)* $cpucount) / $d->{cpus};
            $last_proc_pid_stat->{$pid} = {
                time => $ctime,
                used => $used,
                cpu => $d->{cpu},
+               hostused => $hostused,
+               hostcpu => $d->{hostcpu},
            };
        } else {
            $d->{cpu} = $old->{cpu};
+           $d->{hostcpu} = $old->{hostcpu};
        }
     }
 
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to