]> git.proxmox.com Git - pve-common.git/blobdiff - data/PVE/ProcFSTools.pm
return number of sockets in read_cpuinfo
[pve-common.git] / data / PVE / ProcFSTools.pm
index d20aa9fa982b1ad340fbfb447dc8a98fd87261ad..bdb6e52abe86a85e78a2e71c371117138b50cfcc 100644 (file)
@@ -20,6 +20,7 @@ sub read_cpuinfo {
        model => 'unknown',
        mhz => 0,
        cpus => 1,
+       sockets => 1,
     };
 
     my $fh = IO::File->new ($fn, "r");
@@ -35,7 +36,11 @@ sub read_cpuinfo {
            $res->{mhz} = $1 if !$res->{mhz};
        } elsif ($line =~ m/^flags\s*:.*(vmx|svm)/) {
            $res->{hvm} = 1; # Hardware Virtual Machine (Intel VT / AMD-V)
+       } elsif ($line =~ m/^physical id\s*:\s*(\d+)\s*$/i) {
+           my $sid = $1 + 1;
+           $res->{sockets} = $sid if $sid > $res->{sockets};
        }
+
     }
 
     $res->{cpus} = $count;
@@ -153,7 +158,7 @@ sub check_process_running {
  
     my $info = read_proc_pid_stat($pid);
  
-    return $info && ($info->{starttime} eq $pstart) && ($info->{status} ne 'Z') ? $info : undef;
+    return $info && (!$pstart || ($info->{starttime} eq $pstart)) && ($info->{status} ne 'Z') ? $info : undef;
 }
 
 sub read_proc_starttime {