]> git.proxmox.com Git - pve-common.git/blobdiff - data/PVE/ProcFSTools.pm
correctly count sockets
[pve-common.git] / data / PVE / ProcFSTools.pm
index d501082f2efe07e0a5a325d01495ff17f6c8b53a..4c1591cd8049b01dc488d7d908133c92ac2fc84a 100644 (file)
@@ -26,6 +26,7 @@ sub read_cpuinfo {
     my $fh = IO::File->new ($fn, "r");
     return $res if !$fh;
 
+    my $idhash = {};
     my $count = 0;
     while (defined(my $line = <$fh>)) {
        if ($line =~ m/^processor\s*:\s*\d+\s*$/i) {
@@ -37,12 +38,12 @@ sub read_cpuinfo {
        } 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};
+           $idhash->{$1} = 1;
        }
-
     }
 
+    $res->{sockets} = scalar(keys %$idhash) || 1;
+
     $res->{cpus} = $count;
 
     $fh->close;