tools: fix alignment of cpu layout output
authorShannon Zhao <zhaoshenglong@huawei.com>
Wed, 18 Jun 2014 04:18:15 +0000 (12:18 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 18 Jun 2014 22:57:50 +0000 (00:57 +0200)
Bug: when "core id" is greater than 9, the cpu_layout.py output doesn't align.

        Socket 0        Socket 1
        ---------       ---------
Core 9  [4, 16]         [10, 22]

Core 10         [5, 17]         [11, 23]

Solution: adjust output format to align based on the maximum length of the "core id" and "processor"

        Socket 0        Socket 1
        --------        --------
Core 9  [4, 16]         [10, 22]

Core 10 [5, 17]         [11, 23]

Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
tools/cpu_layout.py

index 623fad9..20a409d 100755 (executable)
@@ -75,15 +75,21 @@ print "cores = ",cores
 print "sockets = ", sockets
 print ""
 
+max_processor_len = len(str(len(cores) * len(sockets) * 2 - 1))
+max_core_map_len = max_processor_len * 2 + len('[, ]') + len('Socket ')
+max_core_id_len = len(str(max(cores)))
+
+print " ".ljust(max_core_id_len + len('Core ')),
 for s in sockets:
-       print "\tSocket %s" % s,
+        print "Socket %s" % str(s).ljust(max_core_map_len - len('Socket ')),
 print ""
+print " ".ljust(max_core_id_len + len('Core ')),
 for s in sockets:
-       print "\t---------",
+        print "--------".ljust(max_core_map_len),
 print ""
 
 for c in cores:
-       print "Core %s" % c,
-       for s in sockets:
-               print "\t", core_map[(s,c)],
-       print "\n"
+        print "Core %s" % str(c).ljust(max_core_id_len),
+        for s in sockets:
+                print str(core_map[(s,c)]).ljust(max_core_map_len),
+        print "\n"