Karel Zak
cc94324ebd
lscpu: improve bogomips use
...
* keep global (cputype) bogomips
* add per-CPU bogomips
* use bogomips from the first CPU as global (for cputype) if /proc/cpuinfo does not provide global bogomips
* add BOGOMIPS column for to -e/-p output
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
6321d34f0f
lscpu: add note about cache IDs
...
We read the ID from /sys/devices/system/cpu/cpu*/cache/index*/id.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
6d880d3d46
lscpu: add MHZ column
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
7155a57d34
lscpu: don't use section for extra caches
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
d4228e9de2
lscpu: fix for sparc64
...
We do not read CPUs from cpuinfo on sparc.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
19ddc05e11
lscpu: improve topology calculation
...
Let's make it more robust and readable. The sysinfo file on s390 may
contain zeros, so we need to check the values and fallback to data
from shared maps if necessary.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
6648a70eb2
lscpu: assume gaps in list of CPUs
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
e07cca6b85
lscpu: fix last caches separator in -e and -p output
...
Note that cxt->ncaches is number of all instances, but we split
output according to split output according to caches names.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
ada1a387b1
lscpu: generate cache ID if not available
...
The file /sys/devices/system/cpu/cpu*/cache/index*/id is not available
in old kernels. This patch add code to generate IDs according to cache
type and level.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
0710bb133f
lscpu: cleanup --parse
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
63c5e7f801
lscpu: cleanup -e
...
* keep one sharedmap per cache instance
* initialize topology IDs to -1
* rewrite -e code to use a new data structs
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
9d480e578a
lscpu: add extra caches to --cache output
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
1766641a1b
lscpu: cleanup --cache
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
91eef60ca3
lscpu: split output to sections
...
Let's make it more readable for humans.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
e3f213184a
lscpu: add sections
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
01bea871dd
lscpu: add rest of summary
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
778254d9a2
lscpu: keep static/dynamic MHz in cputype struct
...
The Dynamic and Static MHz are /proc/cpuinfo s390 per-CPU fields, but
we display it as a single value according the first parsed CPU. For
this purpose we store the values from the first CPU in lscpu_cputype.
For -p and -e outputs we will print per CPU values.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
93a1bb1009
lscpu: add another part of summary output
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
6d5699e6b5
lscpu: add functions to get CPU freq
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
406b088cb4
lscpu: fix NUMAs reading code
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
2f5e2730fe
lscpu: add per type summary function
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
db919abc13
lscpu: use size_t for counters
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
d8813bb378
lscpu: print generic part of the summary
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
eaf32c65be
lscpu: add setsize to lscpu context
...
Don't recalculate again and again setsize from maxcpus.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
05abf5944e
lscpu: add function to count caches size
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
6fbb53286d
lscpu: use cache ID, keep caches independent on CPU type
...
The cache is identified by Type, Level and ID, the ID is unique cache
instance identifier (of the type).
This changes forces lscpu allocate more lscpu_cache instances (than
old version), but now we're ready for arbitrary scenario where
different CPU types share caches and the same cache type uses
different size in different instances, etc.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
4b9cbc38a4
lscpu: use new code to read CPUs info
...
and remove test program from lscpu-cputype.c.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
b73d38b1d1
lscpu: convert getopt block to new API
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
30b912d335
lscpu: add LSCPU_OUTPUT_ enum
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
27c349f9d1
lscpu: move to main function to init context
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
43715b4ea8
lscpu: move debug initialization to main
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
095be2c20e
lscpu: merge new API to lscpu.h
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
7454b598e4
lscpu: use constants from new API
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
f9ac021032
lscpu: remove obsolete code
...
This is the first step in conversion from old lscpu to the new code.
The patch removes obsolete code from lscpu.c and lscpu.h. The old
output code in lscpu.c is temporary disabled by #ifdef due to
incompatibility between old and new internal APIs -- this will be
changed later by small steps to make all all the changes review-able.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
3d590f8ea1
lscpu: (virt) add macros for VMWARE
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
eadaf6d758
lscpu: (topology) read caches from /sys
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
e36e01f980
lscpu: sort extra caches
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
ff7449d2ea
lscpu: improve debug message
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
ffb7fcfbba
lscpu: remove unused function
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
25c2a72cd6
lscpu; (cpuinfo) parse caches
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
9d08a19d54
lscpu: (topology) add read_mhz()
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
8c587fad9f
lscpu: (topology) add read_configure()
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
6d1a2705f7
lscpu: (topology) add read_address()
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
2075eb60b5
lscpu: hide all to lscpu_read_topology()
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
9aa82cd7e6
lscpu: (virt) simplify hypervisor parsing
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
5d68f974b4
lib/strutils: add normalize_whitespace()
...
This function removes extra whitespace.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
ee0fabda30
lscpu: (cpuinfo) rewrite parser
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
f495abb799
lscpu: (cpuinfo) fill empty cputype
...
Don't introduce a new CPU-type if the current is empty.
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
f5d1353246
lscpu: new cpuinfo parser
...
* extendable by new patterns
* simple semantic
* the same code for all pattern types
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00
Karel Zak
021d0b3d1d
lscpu: keep hypervisor name in allocated memory
...
Signed-off-by: Karel Zak <kzak@redhat.com>
2020-11-13 09:19:02 +01:00