Initial commit
[com/gs-lite.git] / bin / parse_cpuinfo.pl
diff --git a/bin/parse_cpuinfo.pl b/bin/parse_cpuinfo.pl
new file mode 100755 (executable)
index 0000000..61c1bcc
--- /dev/null
@@ -0,0 +1,45 @@
+#! /usr/bin/perl
+
+# ------------------------------------------------
+#   Copyright 2014 AT&T Intellectual Property
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+# -------------------------------------------
+
+$infl = "/proc/cpuinfo";
+open I,$infl or die "Can't open $infl, exiting.\n";
+
+$curr_proc = -1;
+$curr_socket = -1;
+$curr_coreid = -1;
+
+while($line=<I>){
+       chomp($line);
+       @flds = split /:/,$line;
+       if(scalar(@flds)==2){
+               if($flds[0] =~ /processor/){
+                       if($curr_proc != -1){
+                               print "$curr_proc,$curr_socket,$curr_coreid\n";
+                       }
+                       $curr_proc = int($flds[1]);
+               }
+               if($flds[0] =~ /physical id/){
+                       $curr_socket = int($flds[1]);
+               }
+               if($flds[0] =~ /core id/){
+                       $curr_coreid = int($flds[1]);
+               }
+       }
+}
+if($curr_proc != -1){
+       print "$curr_proc,$curr_socket,$curr_coreid\n";
+}