summaryrefslogtreecommitdiff
path: root/scripts/vyatta-cpu-summary.pl
blob: 1839a5d053f67b6ec8acdd224b0a132eac68b4be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#! /usr/bin/perl
# implement "show cpu-info"

open my $cpuinfo, '<', '/proc/cpuinfo'
  or die "Can't open /proc/cpuinfo : $!";

my %models;
my %packages;
my %cores;

my %map = (
    'model name'  => \%models,
    'physical id' => \%packages,
    'core id'     => \%cores
);

my $cpu = 0;
while (<$cpuinfo>) {
    chomp;
    my ( $tag, $val ) = split /:/;
    if ( !$tag ) {
        ++$cpu;
        next;
    }

    $tag =~ s/\s+$//;
    $val =~ s/^\s+//;

    my $ref = $map{$tag};
    $ref->{$val} = $cpu  if ($ref);
}
close $cpuinfo;

print "CPU       ", join( "       \n", keys %models ), "\n";
print "Packages  ", scalar keys %packages, "\n";
print "Cores     ", scalar keys %cores,    "\n";
print "Threads   ", $cpu, "\n";