After the fix for Issue #11, it became apparent that the String() output for ghw.MemoryCache was less than ideal for visualizing the interconnection between various caches on the CPU socket:
jaypipes@uberbox:~/src/github.com/jaypipes/ghw/ghwc$ go run example.go
topology SMP (1 nodes)
node #0 (1 cores)
processor core #0 (12 threads), logical processors [0 1 10 11 2 3 4 5 6 7 8 9]
L2 cache (256 KB) shared with logical processors: 10,4
L1i cache (32 KB) shared with logical processors: 2,8
L2 cache (256 KB) shared with logical processors: 2,8
L1d cache (32 KB) shared with logical processors: 3,9
L2 cache (256 KB) shared with logical processors: 3,9
L1i cache (32 KB) shared with logical processors: 1,7
L1i cache (32 KB) shared with logical processors: 10,4
L1d cache (32 KB) shared with logical processors: 10,4
L1i cache (32 KB) shared with logical processors: 3,9
L1i cache (32 KB) shared with logical processors: 0,6
L2 cache (256 KB) shared with logical processors: 0,6
L1d cache (32 KB) shared with logical processors: 2,8
L1d cache (32 KB) shared with logical processors: 0,6
L3 cache (12288 KB) shared with logical processors: 0,1,10,11,2,3,4,5,6,7,8,9
L1d cache (32 KB) shared with logical processors: 11,5
L1i cache (32 KB) shared with logical processors: 11,5
L2 cache (256 KB) shared with logical processors: 11,5
L1d cache (32 KB) shared with logical processors: 1,7
L2 cache (256 KB) shared with logical processors: 1,7
Let's support something a bit more visually useful. Something like this would work:
I wonder if a simpler output like the one in the tree utility (https://linux.die.net/man/1/tree) can be a good intermediate step - or even a valid alternative
After the fix for Issue #11, it became apparent that the String() output for
ghw.MemoryCache
was less than ideal for visualizing the interconnection between various caches on the CPU socket:Let's support something a bit more visually useful. Something like this would work: