workhorsy / py-cpuinfo Goto Github PK
View Code? Open in Web Editor NEWA module for getting CPU info with pure Python
License: MIT License
A module for getting CPU info with pure Python
License: MIT License
Change this:
p1 = subprocess.Popen(command, stdout=subprocess.PIPE)
to this:
p1 = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
Instead of having to run the test suite for each version of python manually. Make it run itself on all versions of python.
Right now our version numbers are 0.API_change.features. It should be changed to API_change.features.bug_fixes. So the current version of 0.2.7 would become 2.7.0
On line 867 of cpuinfo.py processor_hz
is set to '01612.0'
which overwrites the actual processor frequency. Why did you do that?
Looks like Android has /proc/cpuinfo. See if we can make it work on ARM and X86 versions.
Hi,
I'd like to package py-cpuinfo for Debian. It would be very convenient if you could provide release tarballs.
Additionally, you might consider signing your releases. You can find more informations about it here.
Cheers,
Hugo (hle)
Update the Makefile so it can work with python3 too.
While building tables package I noticed that py-cpuinfo does not work on AArch64 systems.
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 96
On-line CPU(s) list: 0-95
Thread(s) per core: 1
Core(s) per socket: 48
Socket(s): 2
NUMA node(s): 2
L1d cache: 32K
L1i cache: 78K
L2 cache: 16384K
NUMA node0 CPU(s): 0-47
NUMA node1 CPU(s): 48-95
processor : 90
BogoMIPS : 200.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
CPU implementer : 0x43
CPU architecture: 8
CPU variant : 0x1
CPU part : 0x0a1
CPU revision : 0
processor : 91
BogoMIPS : 200.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
CPU implementer : 0x43
CPU architecture: 8
CPU variant : 0x1
CPU part : 0x0a1
CPU revision : 0
processor : 92
BogoMIPS : 200.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
CPU implementer : 0x43
CPU architecture: 8
CPU variant : 0x1
CPU part : 0x0a1
CPU revision : 0
processor : 93
BogoMIPS : 200.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
CPU implementer : 0x43
CPU architecture: 8
CPU variant : 0x1
CPU part : 0x0a1
CPU revision : 0
processor : 94
BogoMIPS : 200.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
CPU implementer : 0x43
CPU architecture: 8
CPU variant : 0x1
CPU part : 0x0a1
CPU revision : 0
processor : 95
BogoMIPS : 200.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
CPU implementer : 0x43
CPU architecture: 8
CPU variant : 0x1
CPU part : 0x0a1
CPU revision : 0
% uname -a
Linux techlab-arm64-thunderx-02 4.5.0-19.el7.aarch64 #1 SMP Thu Dec 15 19:25:46 CST 2016 aarch64 aarch64 aarch64 GNU/Linux
% arch
aarch64
Looks like cpuinfo method to gather information about systems fails because it cannot figure out what's the actual speed of the system. Basically it gets default None
and then helper functions are throwing exception and it backs out. If you cannot find the frequency maybe you should set it to 0 or -1.
You also need to add arch regexp for aarch64, there is no armv8-a in arch strings in any distribution as I know.
Instead of having both a has_blah() and blah() method. Just check if blah() exists. This will prevent errors where we forget to have both setup.
We are missing the "Features2", "AMD Features", and "AMD Features2" CPU flags.
dmesg:
===============================================================================
CPU: Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz (2993.39-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x306c3 Family = 0x6 Model = 0x3c Stepping = 3
Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
Features2=0x209<SSE3,MON,SSSE3>
AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
AMD Features2=0x1<LAHF>
TSC: P-state invariant
Right now it picks data from the first source that returns something. The problem with this, is that each source only provides a few fields. If we get data from all the sources, we can combine all the fields. This should also remove coupling between data sources.
We were assuming that all brand strings ended on one NULL terminator. But some have more:
"Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz "
This causes a crash on such systems.
I have installed it by command "pip install py-cpuinfo" . However, while running the bazel tests in tenosrflow I am getting the following error
Exception: py-cpuinfo currently only works on X86 and some ARM CPUs.
After that I installed it from source . And for TF tests getting some different kind of error i.e. "KeyError: 'l2_cache_size"
. PFA for more details.
Hi,
I have the following exception on arm (raspberry pi):
root@raspberrypi:~# python
Python 2.7.3 (default, Mar 18 2014, 05:13:23)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from cpuinfo import cpuinfo
>>> info = cpuinfo.get_cpu_info()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/cpuinfo/cpuinfo.py", line 1194, in get_cpu_info
info = get_cpu_info_from_proc_cpuinfo()
File "/usr/local/lib/python2.7/dist-packages/cpuinfo/cpuinfo.py", line 789, in get_cpu_info_from_proc_cpuinfo
stepping = int(_get_field(output, 'stepping'))
TypeError: int() argument must be a string or a number, not 'NoneType'
root@raspberrypi:~# cat /proc/cpuinfo
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
Features : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : BCM2708
Revision : 0010
Serial : 00000000be6d9ba0
Version: py-cpuinfo-0.1.2 (pip)
If something goes wrong when running the CPUID byte code, it crashes Python. We need to try running it is a subprocess to fix the problem.
Querying the CPUID register is broken in Python3
Downstream developers love to test during their packaging efforts. PLease include the tests in your pypi tarball.
Check if some return codes need to be converted:
import os
rc = process.returncode
if hasattr(os, 'WIFEXITED') and os.WIFEXITED(rc):
rc = os.WEXITSTATUS(rc)
We were doing this before. This may not be needed anymore. Make sure. Check this:
http://stackoverflow.com/questions/1535672/how-to-interpret-status-code-in-python-commands-getstatusoutput
Hi,
As described at the README, I'm openning this issue with my system_info.txt.
The hardware is an Samsung Exynos5422 Cortex™-A15 2Ghz and Cortex™-A7 Octa core CPUs
root@odroidHTPC:~/py-cpuinfo# python cpuinfo/cpuinfo.py
Traceback (most recent call last):
File "cpuinfo/cpuinfo.py", line 1563, in
main()
File "cpuinfo/cpuinfo.py", line 1531, in main
info = get_cpu_info()
File "cpuinfo/cpuinfo.py", line 1514, in get_cpu_info
info = get_cpu_info_from_cpuid()
File "cpuinfo/cpuinfo.py", line 935, in get_cpu_info_from_cpuid
info = b64_to_obj(output)
File "cpuinfo/cpuinfo.py", line 177, in b64_to_obj
b = pickle.loads(a)
File "/usr/lib/python2.7/pickle.py", line 1382, in loads
return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 858, in load
dispatchkey
KeyError: '6'
Hi,
I received this bug https://bugzilla.redhat.com/show_bug.cgi?id=1190549 and when tested more, I found that on physical machine "cpuinfo" works fine but if run in virtual machine it fails. Here is sample output of /proc/cpuinfo from my virtual machine
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel Xeon E312xx (Sandy Bridge)
stepping : 1
microcode : 0x1
cpu MHz : 2893.436
cache size : 4096 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm xsaveopt
bugs :
bogomips : 5786.87
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel Xeon E312xx (Sandy Bridge)
stepping : 1
microcode : 0x1
cpu MHz : 2893.436
cache size : 4096 KB
physical id : 1
siblings : 1
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm xsaveopt
bugs :
bogomips : 5786.87
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
Apologies for the naive question, but will this package detect support for AVX2 instructions?
Since py-cpuinfo is a pure Python package, installation is of course not a big issue. However, some packages that have compiled C-extensions (like one of ours) might depend on it and those now often tend to provide conda packages to make installation easier. Only conda packages can be dependencies of conda packages, so that's why we created a conda package for py-cpuinfo on anaconda.org (https://anaconda.org/brian-team/py-cpuinfo) -- judging from the number of downloads, it's quite popular!
What do you think of having a package on conda-forge (http://conda-forge.github.io/) instead? I'd be happy to create the package recipe (again, for a pure Python package this is rather trivial) and I could list you and me as maintainers (or only you or only me if you prefer).
Add this to the readme:
Possible values for Arch field:
X86_32
X86_64
ARM_7
ARM_8
PPC_32
PPC_64
SPARC_32
SPARC_64
The readme.md page has a lot of duplicate info, and is missing a lot:
python -m cpuinfo
to list of ways to use itHi everyone,I met a problem about py-cpuinfo to my OPENPOWER8 cpu.
When I try to use ESRALLY to stress my ES,ESRALLY say py-cpyinfo only support x86 or ARM.
Could you give me some adivce ?thanks
[root@bogon rally]# pwd
/home/test/rally
[root@bogon rally]# esrally
Traceback (most recent call last):
File "/usr/local/bin/esrally", line 11, in
load_entry_point('esrally==0.5.3.dev0', 'console_scripts', 'esrally')()
File "/usr/local/lib/python3.6/site-packages/pkg_resources/init.py", line 565, in l
return get_distribution(dist).load_entry_point(group, name)
File "/usr/local/lib/python3.6/site-packages/pkg_resources/init.py", line 2631, in
return ep.load()
File "/usr/local/lib/python3.6/site-packages/pkg_resources/init.py", line 2291, in
return self.resolve()
File "/usr/local/lib/python3.6/site-packages/pkg_resources/init.py", line 2297, in
module = import(self.module_name, fromlist=['name'], level=0)
File "/usr/local/lib/python3.6/site-packages/esrally-0.5.3.dev0-py3.6.egg/esrally/rally
from esrally import version, actor, config, paths, racecontrol, reporter, metrics, tr
File "/usr/local/lib/python3.6/site-packages/esrally-0.5.3.dev0-py3.6.egg/esrally/racec
from esrally.mechanic import mechanic
File "/usr/local/lib/python3.6/site-packages/esrally-0.5.3.dev0-py3.6.egg/esrally/mecha
from esrally.mechanic import supplier, provisioner, launcher
File "/usr/local/lib/python3.6/site-packages/esrally-0.5.3.dev0-py3.6.egg/esrally/mecha
from esrally.mechanic import car
File "/usr/local/lib/python3.6/site-packages/esrally-0.5.3.dev0-py3.6.egg/esrally/mecha
from esrally.utils import sysstats, console
File "/usr/local/lib/python3.6/site-packages/esrally-0.5.3.dev0-py3.6.egg/esrally/utils
import cpuinfo
File "", line 961, in _find_and_load
File "", line 950, in _find_and_load_unlocked
File "", line 646, in _load_unlocked
File "", line 616, in _load_backward_compatible
File "/usr/local/lib/python3.6/site-packages/py_cpuinfo-0.2.3-py3.6.egg/cpuinfo/_init
File "", line 961, in _find_and_load
File "", line 950, in _find_and_load_unlocked
File "", line 646, in _load_unlocked
File "", line 616, in _load_backward_compatible
File "/usr/local/lib/python3.6/site-packages/py_cpuinfo-0.2.3-py3.6.egg/cpuinfo/cpuinfo
File "/usr/local/lib/python3.6/site-packages/py_cpuinfo-0.2.3-py3.6.egg/cpuinfo/cpuinfo
Exception: py-cpuinfo currently only works on X86 and some ARM CPUs.
Make two field:
cores_physical: 4
cores_virtual: 8
It would be awesome if this script worked with the ARMv5TEJ KuroBox Pro.
Here is the information that is gathered from your script and I'm available for other information as well:
Please, consider supporting this. People running some of the original Raspberry Pi's (which are ARMv6 CPUs, IIRC) would also love to get this working.
Thanks,
Rogério.
The Windows registry is missing newer flags like sse3, et cetera. See if we can use Python ctypes to call the win32 cpuid function instead.
Hi,
i use py-cpuinfo in the Glances project (https://github.com/nicolargo/glances). On Raspberry Pi, if the CPU is not supported, Py-Cpuinfo call an (ugly) sys.exit(0) (https://github.com/workhorsy/py-cpuinfo/blob/master/cpuinfo/cpuinfo.py#L1478). It should be more "Pythonific" to raise an error.
Thanks in advance for the enhancement.
Extract all the things that get cpu info into a DataSource object. Like:
DataSource.has_kstat
DataSource.kstat_m_cpu_info
DataSource.has_proc_cpuinfo
DataSource.proc_cpuinfo
That way we can override the methods to return hard coded strings. This will make it easier to test on different platforms.
Output of tools/get_system_info.py for Debian 8 PPC running in Qemu:
sys.version_info:
===============================================================================
sys.version_info(major=2, minor=7, micro=9, releaselevel='final', serial=0)
multiprocessing.cpu_count:
===============================================================================
1
platform.uname:
===============================================================================
('Linux', 'debian', '3.16.0-4-powerpc64', '#1 SMP Debian 3.16.7-ckt11-1 (2015-05-24)', 'ppc64', '')
platform.architecture:
===============================================================================
('32bit', 'ELF')
platform.system:
===============================================================================
Linux
platform.machine:
===============================================================================
ppc64
cat /proc/cpuinfo:
===============================================================================
processor : 0
cpu : POWER7 (raw), altivec supported
clock : 1000.000000MHz
revision : 2.3 (pvr 003f 0203)
timebase : 512000000
platform : pSeries
model : IBM pSeries (emulated by qemu)
machine : CHRP IBM pSeries (emulated by qemu)
lscpu:
===============================================================================
Architecture: ppc64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Big Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Model: IBM pSeries (emulated by qemu)
L1d cache: 32K
L1i cache: 32K
NUMA node0 CPU(s): 0
dmesg:
===============================================================================
[ 0.000000] Allocated 131072 bytes for 32 pacas at c00000000ffe0000
[ 0.000000] Using pSeries machine description
[ 0.000000] Page sizes from device-tree:
[ 0.000000] base_shift=12: shift=12, sllp=0x0000, avpnm=0x00000000, tlbiel=1, penc=0
[ 0.000000] base_shift=24: shift=24, sllp=0x0100, avpnm=0x00000001, tlbiel=0, penc=0
[ 0.000000] Page orders: linear mapping = 24, virtual = 12, io = 12, vmemmap = 24
[ 0.000000] Using 1TB segments
[ 0.000000] kvm_cma: CMA: reserved 128 MiB
[ 0.000000] Found initrd at 0xc000000001a00000:0xc0000000029ee000
[ 0.000000] CPU maps initialized for 1 thread per core
[ 0.000000] (thread shift is 0)
[ 0.000000] Freed 65536 bytes for unused pacas
[ 0.000000] Starting Linux PPC64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24)
[ 0.000000] -----------------------------------------------------
[ 0.000000] ppc64_pft_size = 0x18
[ 0.000000] physicalMemorySize = 0x80000000
[ 0.000000] htab_hash_mask = 0x1ffff
[ 0.000000] -----------------------------------------------------
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.16.0-4-powerpc64 ([email protected]) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24)
[ 0.000000] [boot]0012 Setup Arch
[ 0.000000] Node 0 Memory: 0x0-0x80000000
[ 0.000000] PCI host bridge /pci@800000020000000 ranges:
[ 0.000000] IO 0x0000010080000000..0x000001008000ffff -> 0x0000000000000000
[ 0.000000] MEM 0x00000100a0000000..0x00000100bfffffff -> 0x0000000080000000
[ 0.000000] PPC64 nvram contains 65536 bytes
[ 0.000000] Unable to enable relocation on exceptions: -55
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x00000000-0x7fffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x7fffffff]
[ 0.000000] On node 0 totalpages: 32768
[ 0.000000] DMA zone: 28 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 32768 pages, LIFO batch:1
[ 0.000000] [boot]0015 Setup Done
[ 0.000000] PERCPU: Embedded 2 pages/cpu @c000000002c00000 s101120 r0 d29952 u1048576
[ 0.000000] pcpu-alloc: s101120 r0 d29952 u1048576 alloc=1*1048576
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Node order, mobility grouping on. Total pages: 32740
[ 0.000000] Policy zone: DMA
[ 0.000000] Kernel command line: root=UUID=84ad8b3c-ac17-4eca-874b-d7855046b757 ro
[ 0.000000] PID hash table entries: 4096 (order: -1, 32768 bytes)
[ 0.000000] Sorting __ex_table...
[ 0.000000] Memory: 1917888K/2097152K available (7360K kernel code, 1792K rwdata, 1840K rodata, 960K init, 2071K bss, 179264K reserved)
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] CONFIG_RCU_FANOUT set to non-default value of 32
[ 0.000000] RCU dyntick-idle grace-period acceleration is enabled.
[ 0.000000] RCU restricting CPUs from NR_CPUS=32 to nr_cpu_ids=1.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0.000000] NR_IRQS:512 nr_irqs:512 16
[ 0.000000] pic: no ISA interrupt controller
[ 0.000000] time_init: decrementer frequency = 512.000000 MHz
[ 0.000000] time_init: processor frequency = 1000.000000 MHz
[ 0.000338] clocksource: timebase mult[1f40000] shift[24] registered
[ 0.000750] clockevent: decrementer mult[83126e98] shift[32] cpu[0]
[ 0.013218] Console: colour dummy device 80x25
[ 0.015593] console [tty0] enabled
[ 0.017420] mempolicy: Disabling automatic NUMA balancing. Configure with numa_balancing= or the kernel.numa_balancing sysctl
[ 0.017729] pid_max: default: 32768 minimum: 301
[ 0.019187] Security Framework initialized
[ 0.023142] AppArmor: AppArmor disabled by boot time parameter
[ 0.023224] Yama: disabled by default; enable with sysctl kernel.yama.*
[ 0.029627] Dentry cache hash table entries: 262144 (order: 5, 2097152 bytes)
[ 0.043535] Inode-cache hash table entries: 131072 (order: 4, 1048576 bytes)
[ 0.050477] Mount-cache hash table entries: 8192 (order: 0, 65536 bytes)
[ 0.050614] Mountpoint-cache hash table entries: 8192 (order: 0, 65536 bytes)
[ 0.073705] Initializing cgroup subsys memory
[ 0.075024] Initializing cgroup subsys devices
[ 0.075235] Initializing cgroup subsys freezer
[ 0.075374] Initializing cgroup subsys net_cls
[ 0.075510] Initializing cgroup subsys blkio
[ 0.075624] Initializing cgroup subsys perf_event
[ 0.075726] Initializing cgroup subsys net_prio
[ 0.076624] ftrace: allocating 20397 entries in 8 pages
[ 0.180925] EEH: pSeries platform initialized
[ 0.182432] POWER7 performance monitor hardware support registered
[ 0.216199] Brought up 1 CPUs
[ 0.216565] Node 0 CPUs: 0
[ 0.217809] Enabling Asymmetric SMT scheduling
[ 0.238355] devtmpfs: initialized
[ 0.475164] EEH: devices created
[ 0.490432] NET: Registered protocol family 16
[ 0.492082] pseries_eeh_init: RTAS service <ibm,set-eeh-option> invalid
[ 0.492164] eeh_init: Failed to call platform init function (-22)
[ 0.492906] IBM eBus Device Driver
[ 0.500355] cpuidle: using governor ladder
[ 0.500577] cpuidle: using governor menu
[ 0.514124] PCI: Probing PCI hardware
[ 0.516020] no ibm,pcie-link-speed-stats property
[ 0.517060] PCI host bridge to bus 0000:00
[ 0.517530] pci_bus 0000:00: root bus resource [io 0x10000-0x1ffff] (bus address [0x0000-0xffff])
[ 0.517720] pci_bus 0000:00: root bus resource [mem 0x100a0000000-0x100bfffffff] (bus address [0x80000000-0x9fffffff])
[ 0.517998] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 0.529972] IOMMU table initialized, virtual merging enabled
[ 0.535544] PCI: Probing PCI hardware done
[ 0.535796] opal: Node not found
[ 0.535906] opal_async_comp_init: Opal node not found
[ 0.568544] vgaarb: setting as boot device: PCI:0000:00:05.0
[ 0.568732] vgaarb: device added: PCI:0000:00:05.0,decodes=io+mem,owns=io+mem,locks=none
[ 0.568806] vgaarb: loaded
[ 0.568890] vgaarb: bridge control possible 0000:00:05.0
[ 0.571371] SCSI subsystem initialized
[ 0.574171] libata version 3.00 loaded.
[ 0.584615] Switched to clocksource timebase
[ 0.682958] NET: Registered protocol family 2
[ 0.691143] TCP established hash table entries: 16384 (order: 1, 131072 bytes)
[ 0.693487] TCP bind hash table entries: 16384 (order: 2, 262144 bytes)
[ 0.695364] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.696479] TCP: reno registered
[ 0.696677] UDP hash table entries: 2048 (order: 0, 65536 bytes)
[ 0.697367] UDP-Lite hash table entries: 2048 (order: 0, 65536 bytes)
[ 0.699732] NET: Registered protocol family 1
[ 0.759620] PCI: CLS 0 bytes, default 128
[ 0.771028] Unpacking initramfs...
[ 2.818760] Freeing initrd memory: 16256K (c000000001a00000 - c0000000029e0000)
[ 2.821404] rtasd: No event-scan on system
[ 2.826593] Hypercall H_BEST_ENERGY not supported
[ 2.831685] futex hash table entries: 256 (order: -1, 32768 bytes)
[ 2.833086] audit: initializing netlink subsys (disabled)
[ 2.834153] audit: type=2000 audit(1434845386.768:1): initialized
[ 2.847896] HugeTLB registered 16 MB page size, pre-allocated 0 pages
[ 2.848975] zbud: loaded
[ 2.852820] VFS: Disk quotas dquot_6.5.2
[ 2.853282] Dquot-cache hash table entries: 8192 (order 0, 65536 bytes)
[ 2.855917] msgmni has been set to 4032
[ 2.874595] alg: No test for stdrng (krng)
[ 2.875106] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[ 2.882461] io scheduler noop registered
[ 2.882590] io scheduler deadline registered
[ 2.883273] io scheduler cfq registered (default)
[ 2.885314] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 2.885501] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[ 2.888998] Using unsupported 800x600 vga at 100a0000000, depth=32, pitch=3200
[ 2.929217] Console: switching to colour frame buffer device 100x37
[ 2.958001] fb0: Open Firmware frame buffer device on /pci@800000020000000/vga@5
[ 2.972934] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[ 2.982778] pmac_zilog: 0.6 (Benjamin Herrenschmidt <[email protected]>)
[ 2.983220] Linux agpgart interface v0.103
[ 2.990064] mousedev: PS/2 mouse device common for all mice
[ 2.999249] rtc-generic rtc-generic: rtc core: registered rtc-generic as rtc0
[ 3.002253] pseries_idle_driver registered
[ 3.002512] ledtrig-cpu: registered to indicate activity on CPUs
[ 3.006670] TCP: cubic registered
[ 3.007437] NET: Registered protocol family 10
[ 3.015231] mip6: Mobile IPv6
[ 3.015572] NET: Registered protocol family 17
[ 3.016076] mpls_gso: MPLS GSO support
[ 3.058871] registered taskstats version 1
[ 3.132072] rtc-generic rtc-generic: setting system clock to 2015-06-21 00:09:47 UTC (1434845387)
[ 3.152822] PM: Hibernation image not present or could not be loaded.
[ 3.201971] Freeing unused kernel memory: 960K (c000000000910000 - c000000000a00000)
[ 3.857868] systemd-udevd[54]: starting version 215
[ 3.976523] random: systemd-udevd urandom read with 0 bits of entropy available
[ 4.485673] virtio-pci 0000:00:03.0: enabling device (0100 -> 0103)
[ 4.577771] 8139cp: 8139cp: 10/100 PCI Ethernet driver v1.3 (Mar 22, 2004)
[ 4.674459] virtio-pci 0000:00:04.0: enabling device (0100 -> 0101)
[ 4.808995] 8139cp 0000:00:01.0: enabling device (0100 -> 0103)
[ 4.894915] 8139cp 0000:00:01.0 eth0: RTL-8139C+ at 0xd000080080020000, 52:54:00:9c:51:be, IRQ 17
[ 5.034371] usbcore: registered new interface driver usbfs
[ 5.137852] usbcore: registered new interface driver hub
[ 5.162930] usbcore: registered new device driver usb
[ 5.358128] 8139too: 8139too Fast Ethernet driver 0.9.28
[ 5.526195] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 5.675013] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 5.793057] ehci-pci: EHCI PCI platform driver
[ 5.954774] ohci-pci: OHCI PCI platform driver
[ 5.999513] ohci-pci 0000:00:02.0: OHCI PCI host controller
[ 6.160999] ohci-pci 0000:00:02.0: new USB bus registered, assigned bus number 1
[ 6.198668] ohci-pci 0000:00:02.0: irq 18, io mem 0x100b0080000
[ 6.334102] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[ 6.344445] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 6.370182] usb usb1: Product: OHCI PCI host controller
[ 6.422685] usb usb1: Manufacturer: Linux 3.16.0-4-powerpc64 ohci_hcd
[ 6.443604] usb usb1: SerialNumber: 0000:00:02.0
[ 6.481621] hub 1-0:1.0: USB hub found
[ 6.503912] hub 1-0:1.0: 3 ports detected
[ 6.887747] ibmvscsi 2000: SRP_VERSION: 16.a
[ 6.935841] scsi0 : IBM POWER Virtual SCSI Adapter 1.5.9
[ 7.045662] ibmvscsi 2000: partner initialization complete
[ 7.052689] ibmvscsi 2000: host srp version: 16.a, host partition qemu (0), OS 2, max io 2097152
[ 7.059445] ibmvscsi 2000: sent SRP login
[ 7.072480] ibmvscsi 2000: SRP_LOGIN succeeded
[ 7.137106] usb 1-1: new full-speed USB device number 2 using ohci-pci
[ 7.229950] scsi 0:0:0:0: Direct-Access QEMU QEMU HARDDISK 2.1. PQ: 0 ANSI: 5
[ 7.273151] scsi 0:0:0:1: CD-ROM QEMU QEMU CD-ROM 2.1. PQ: 0 ANSI: 5
[ 7.382183] usb 1-1: New USB device found, idVendor=0627, idProduct=0001
[ 7.389307] usb 1-1: New USB device strings: Mfr=1, Product=4, SerialNumber=5
[ 7.398348] usb 1-1: Product: QEMU USB Keyboard
[ 7.405680] usb 1-1: Manufacturer: QEMU
[ 7.412039] usb 1-1: SerialNumber: 42
[ 7.656746] usb 1-2: new full-speed USB device number 3 using ohci-pci
[ 7.889962] usb 1-2: New USB device found, idVendor=0627, idProduct=0001
[ 7.896408] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[ 7.902478] usb 1-2: Product: QEMU USB Mouse
[ 7.908508] usb 1-2: Manufacturer: QEMU
[ 7.916774] usb 1-2: SerialNumber: 42
[ 8.129574] usb 1-3: new full-speed USB device number 4 using ohci-pci
[ 8.357746] usb 1-3: New USB device found, idVendor=0409, idProduct=55aa
[ 8.366230] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 8.372658] usb 1-3: Product: QEMU USB Hub
[ 8.378536] usb 1-3: Manufacturer: QEMU
[ 8.384303] usb 1-3: SerialNumber: 314159-pci@800000020000000:02.0-3
[ 8.402720] hub 1-3:1.0: USB hub found
[ 8.429339] hub 1-3:1.0: 8 ports detected
[ 8.658809] hidraw: raw HID events driver (C) Jiri Kosina
[ 8.784980] usbcore: registered new interface driver usbhid
[ 8.790942] usbhid: USB HID core driver
[ 8.950803] input: QEMU QEMU USB Keyboard as /devices/pci0000:00/0000:00:02.0/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input0
[ 8.994951] hid-generic 0003:0627:0001.0001: input,hidraw0: USB HID v1.11 Keyboard [QEMU QEMU USB Keyboard] on usb-0000:00:02.0-1/input0
[ 9.033828] input: QEMU QEMU USB Mouse as /devices/pci0000:00/0000:00:02.0/usb1/1-2/1-2:1.0/0003:0627:0001.0002/input/input1
[ 9.068020] hid-generic 0003:0627:0001.0002: input,hidraw1: USB HID v0.01 Mouse [QEMU QEMU USB Mouse] on usb-0000:00:02.0-2/input0
[ 9.381865] sr0: scsi3-mmc drive: 16x/50x cd/rw xa/form2 cdda tray
[ 9.389259] cdrom: Uniform CD-ROM driver Revision: 3.20
[ 9.435680] sr 0:0:0:1: Attached scsi CD-ROM sr0
[ 9.486014] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 9.535375] sd 0:0:0:0: [sda] 41943040 512-byte logical blocks: (21.4 GB/20.0 GiB)
[ 9.604207] sr 0:0:0:1: Attached scsi generic sg1 type 5
[ 9.653865] sd 0:0:0:0: [sda] Write Protect is off
[ 9.682220] sd 0:0:0:0: [sda] Mode Sense: 63 00 00 08
[ 9.749941] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 9.920104] sda: sda1 sda2 sda3 < sda5 >
[ 10.050321] sd 0:0:0:0: [sda] Attached SCSI disk
[ 11.175024] PM: Starting manual resume from disk
[ 11.190676] PM: Hibernation image partition 8:5 present
[ 11.190746] PM: Looking for hibernation image.
[ 11.198262] PM: Image not found (code -22)
[ 11.198324] PM: Hibernation image not present or could not be loaded.
[ 12.494780] random: nonblocking pool is initialized
[ 12.750809] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
[ 15.120892] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR)
[ 15.142440] systemd[1]: Detected architecture 'ppc64'.
[ 15.814452] systemd[1]: Inserted module 'autofs4'
[ 15.898747] systemd[1]: Set hostname to <debian>.
[ 18.422145] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory.
[ 18.515978] systemd[1]: Starting Forward Password Requests to Wall Directory Watch.
[ 18.532444] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ 18.558689] systemd[1]: Expecting device dev-hvc0.device...
[ 18.640782] systemd[1]: Starting Remote File Systems (Pre).
[ 18.717491] systemd[1]: Reached target Remote File Systems (Pre).
[ 18.754095] systemd[1]: Starting Dispatch Password Requests to Console Directory Watch.
[ 18.776799] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[ 18.801412] systemd[1]: Starting Paths.
[ 18.863431] systemd[1]: Reached target Paths.
[ 18.923173] systemd[1]: Starting Arbitrary Executable File Formats File System Automount Point.
[ 18.978686] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[ 19.101439] systemd[1]: Starting Encrypted Volumes.
[ 19.125756] systemd[1]: Reached target Encrypted Volumes.
[ 19.134240] systemd[1]: Expecting device dev-disk-by\x2duuid-a4777552\x2df0b8\x2d4142\x2da317\x2d006f17dab95a.device...
[ 19.161656] systemd[1]: Starting Root Slice.
[ 19.248627] systemd[1]: Created slice Root Slice.
[ 19.291804] systemd[1]: Starting User and Session Slice.
[ 19.322701] systemd[1]: Created slice User and Session Slice.
[ 19.330439] systemd[1]: Starting Delayed Shutdown Socket.
[ 19.413472] systemd[1]: Listening on Delayed Shutdown Socket.
[ 19.445803] systemd[1]: Starting /dev/initctl Compatibility Named Pipe.
[ 19.585431] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[ 19.596454] systemd[1]: Starting Journal Socket (/dev/log).
[ 19.631236] systemd[1]: Listening on Journal Socket (/dev/log).
[ 19.682394] systemd[1]: Starting udev Control Socket.
[ 19.750469] systemd[1]: Listening on udev Control Socket.
[ 19.812504] systemd[1]: Starting udev Kernel Socket.
[ 19.877174] systemd[1]: Listening on udev Kernel Socket.
[ 19.903520] systemd[1]: Starting Journal Socket.
[ 20.002695] systemd[1]: Listening on Journal Socket.
[ 20.050923] systemd[1]: Starting System Slice.
[ 20.099507] systemd[1]: Created slice System Slice.
[ 20.107974] systemd[1]: Started File System Check on Root Device.
[ 20.117367] systemd[1]: Starting system-getty.slice.
[ 20.139229] systemd[1]: Created slice system-getty.slice.
[ 20.148527] systemd[1]: Starting system-serial\x2dgetty.slice.
[ 20.171004] systemd[1]: Created slice system-serial\x2dgetty.slice.
[ 20.186239] systemd[1]: Starting Increase datagram queue length...
[ 20.286511] systemd[1]: Mounting Debug File System...
[ 20.374204] systemd[1]: Mounting Huge Pages File System...
[ 20.546084] systemd[1]: Starting udev Coldplug all Devices...
[ 20.746615] systemd[1]: Mounting POSIX Message Queue File System...
[ 21.060772] systemd[1]: Starting Create list of required static device nodes for the current kernel...
[ 21.323414] systemd[1]: Starting Load Kernel Modules...
[ 21.638407] systemd[1]: Started Set Up Additional Binary Formats.
[ 21.709523] systemd[1]: Starting Slices.
[ 21.819351] systemd[1]: Reached target Slices.
[ 22.101414] systemd[1]: Mounted POSIX Message Queue File System.
[ 22.331827] systemd[1]: Mounted Huge Pages File System.
[ 22.556322] systemd[1]: Mounted Debug File System.
[ 22.779283] systemd[1]: Started Increase datagram queue length.
[ 23.046896] systemd[1]: Started Create list of required static device nodes for the current kernel.
[ 23.181896] systemd[1]: systemd-modules-load.service: main process exited, code=exited, status=1/FAILURE
[ 23.499792] systemd[1]: Failed to start Load Kernel Modules.
[ 23.612063] systemd[1]: Unit systemd-modules-load.service entered failed state.
[ 24.213869] systemd[1]: Started udev Coldplug all Devices.
[ 24.452517] systemd[1]: Mounted FUSE Control File System.
[ 24.481206] systemd[1]: Mounted Configuration File System.
[ 24.514689] systemd[1]: Starting Apply Kernel Variables...
[ 24.642428] systemd[1]: Starting Create Static Device Nodes in /dev...
[ 24.877158] systemd[1]: Starting Syslog Socket.
[ 25.057667] systemd[1]: Listening on Syslog Socket.
[ 25.141763] systemd[1]: Starting Journal Service...
[ 25.420621] systemd[1]: Started Journal Service.
[ 27.011217] systemd-udevd[144]: starting version 215
[ 29.812994] [drm] Initialized drm 1.1.0 20060810
[ 30.630630] checking generic (100a0000000 1d4c00) vs hw (100a0000000 1000000)
[ 30.630695] fb: switching to bochsdrmfb from OFfb vga
[ 30.733738] Console: switching to colour dummy device 80x25
[ 30.782441] [drm] Found bochs VGA, ID 0xb0c5.
[ 30.782544] [drm] Framebuffer size 16384 kB @ 0x100a0000000, mmio @ 0x100b0082000.
[ 30.803721] [TTM] Zone kernel: Available graphics memory: 1033568 kiB
[ 30.803859] [TTM] Initializing pool allocator
[ 31.027553] Console: switching to colour frame buffer device 128x48
[ 31.120041] bochs-drm 0000:00:05.0: fb0: bochsdrmfb frame buffer device
[ 31.120589] bochs-drm 0000:00:05.0: registered panic notifier
[ 31.134008] [drm] Initialized bochs-drm 1.0.0 20130925 for 0000:00:05.0 on minor 0
[ 34.761729] Adding 916416k swap on /dev/sda5. Priority:-1 extents:1 across:916416k FS
[ 36.685694] EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro
[ 37.515664] systemd-journald[141]: Received request to flush runtime journal from PID 1
[ 42.954002] 8139cp 0000:00:01.0 eth
It would be very useful to include the py-cpuinfo version number in the output:
$ python cpuinfo/cpuinfo.py
cpuinfo version: (3, 1, 0)
Vendor ID: GenuineIntel
Brand: Intel(R) Pentium(R) CPU G640 @ 2.80GHz
...
Different tools (/proc/cpuinfo, lscpu, et cetera) have different names for CPU flags. Make a list of all of them, and make the output uniform.
See the commands to get the Hz:
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
We have a problem where the test suite will work correctly with the mock objects. But fail with the real objects. So lets test the real thing too.
I tried to build new update 0.2.6 on fedora 25 and here is what I get the output
https://kojipkgs.fedoraproject.org//work/tasks/3355/18353355/build.log which is
======================================================================
FAIL: test_all (test_actual.TestActual)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/builddir/build/BUILD/py-cpuinfo-0.2.6/tests/test_actual.py", line 66, in test_all
self.assertHasResult(cpuinfo.get_cpu_info_from_cpuid())
File "/builddir/build/BUILD/py-cpuinfo-0.2.6/tests/test_actual.py", line 14, in assertHasResult
raise AssertionError('Expected result, but there was none.')
AssertionError: Expected result, but there was none.
----------------------------------------------------------------------
I am using 64bit machine.
Traceback (most recent call last):
...
info = get_cpu_info()
File "cpuinfo.py", line 1195, in get_cpu_info
info = get_cpu_info_from_proc_cpuinfo()
File "cpuinfo.py", line 804, in get_cpu_info_from_proc_cpuinfo
scale, hz_advertised = _get_hz_string_from_brand(processor_brand)
File "cpuinfo.py", line 82, in _get_hz_string_from_brand
hz_brand = hz_brand.split('@')[1]
IndexError: list index out of range
processor_brand string is Intel(R) Pentium(R) D CPU 3.20GHz
We can get the Hz from the cpufreq-info command.
If you install with pip or setup.py you have to do:
from cpuinfo import cpuinfo
to get the cpuinfo module. This is because the module cpuinfo is in a package called cpuinfo.
If you import directly from the cpuinfo.py file (as in you copied the file directly into your project). You can import like this:
import cpuinfo
This is super confusing. How do we make this consistent? I would prefer to do "import cpuinfo"
In Virtual Box some operating systems will segfault when CPUID calls ctypes.pythonapi.memmove. These include BSD, Cygwin, OSX, and Solaris. But Windows, Linux, and BeOS work.
In Fedora, I tried to build latest 0.2.7 release and it is failing to build on architectures like s390(x), ppc(le64), arm(aarch64). I think previous versions were also failed to build.
May I know if this py-cpuinfo project should work on those architectures as well? The traceback I get while test suite execution is
running test
running egg_info
writing py_cpuinfo.egg-info/PKG-INFO
writing top-level names to py_cpuinfo.egg-info/top_level.txt
writing dependency_links to py_cpuinfo.egg-info/dependency_links.txt
writing entry points to py_cpuinfo.egg-info/entry_points.txt
reading manifest file 'py_cpuinfo.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'py_cpuinfo.egg-info/SOURCES.txt'
running build_ext
Traceback (most recent call last):
File "setup.py", line 32, in <module>
"Programming Language :: Python :: 3"
File "/usr/lib64/python2.7/distutils/core.py", line 151, in setup
dist.run_commands()
File "/usr/lib64/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/usr/lib/python2.7/site-packages/setuptools/command/test.py", line 172, in run
self.run_tests()
File "/usr/lib/python2.7/site-packages/setuptools/command/test.py", line 193, in run_tests
testRunner=self._resolve_as_ep(self.test_runner),
File "/usr/lib64/python2.7/unittest/main.py", line 94, in __init__
self.parseArgs(argv)
File "/usr/lib64/python2.7/unittest/main.py", line 149, in parseArgs
self.createTests()
File "/usr/lib64/python2.7/unittest/main.py", line 158, in createTests
self.module)
File "/usr/lib64/python2.7/unittest/loader.py", line 130, in loadTestsFromNames
suites = [self.loadTestsFromName(name, module) for name in names]
File "/usr/lib64/python2.7/unittest/loader.py", line 91, in loadTestsFromName
module = __import__('.'.join(parts_copy))
File "/builddir/build/BUILD/py-cpuinfo-0.2.7/test_suite.py", line 12, in <module>
from test_example import TestExample
File "/builddir/build/BUILD/py-cpuinfo-0.2.7/tests/test_example.py", line 4, in <module>
from cpuinfo import *
File "/builddir/build/BUILD/py-cpuinfo-0.2.7/cpuinfo/__init__.py", line 5, in <module>
from cpuinfo import *
File "/builddir/build/BUILD/py-cpuinfo-0.2.7/cpuinfo/cpuinfo.py", line 1583, in <module>
_check_arch()
File "/builddir/build/BUILD/py-cpuinfo-0.2.7/cpuinfo/cpuinfo.py", line 1540, in _check_arch
raise Exception("py-cpuinfo currently only works on X86 and some ARM CPUs.")
Exception: py-cpuinfo currently only works on X86 and some ARM CPUs.
Can this project be updated to support these other architectures?
Thanks.
Not sure what may be causing this, and I didn't find any options for verbose output.
Calling cpuinfo.get_cpu_info()
returns None
on my machine, 2011 MBA running OS X 10.12.3. Getting the info with sysctl
seems to work fine on the command line.
Happy to provide any additional info that may help debug this.
When I tried to locally build 0.2.6 version on fedora 26, I get this
======================================================================
ERROR: test_all (test_actual.TestActual)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/parag/gitvcs/python-cpuinfo/master/py-cpuinfo-0.2.6/tests/test_actual.py", line 66, in test_all
self.assertHasResult(cpuinfo.get_cpu_info_from_cpuid())
File "/home/parag/gitvcs/python-cpuinfo/master/py-cpuinfo-0.2.6/cpuinfo/cpuinfo.py", line 935, in get_cpu_info_from_cpuid
info = b64_to_obj(output)
File "/home/parag/gitvcs/python-cpuinfo/master/py-cpuinfo-0.2.6/cpuinfo/cpuinfo.py", line 177, in b64_to_obj
b = pickle.loads(a)
File "/usr/lib64/python2.7/pickle.py", line 1388, in loads
return Unpickler(file).load()
File "/usr/lib64/python2.7/pickle.py", line 864, in load
dispatch[key](self)
KeyError: '6'
----------------------------------------------------------------------
Ran 13 tests in 0.063s
I am using 64bit machine.
get_cpu_info() always returned None. Some debugging showed that the line
hz_brand = output.split('current CPU frequency is')[1].split('.')[0].lower()
in _get_hz_string_from_beagle_bone
throws an error. In get_cpu_info_from_proc_cpuinfo
I commented the following block out
# Try getting the Hz for a BeagleBone
if hz_advertised == '0.0':
scale, hz_advertised = _get_hz_string_from_beagle_bone()
hz_actual = hz_advertised
After that it worked.
I have written my own def for FreeBSD support as the standard dmesg -a | grep Features
results in a segfault.
Please incorporate this and add info = get_cpu_info_from_freebsd()
just after the Windows block to fix the issue. Thanks.
It looks like there are 2 versions of dmesg, one that takes an "-a" argument, and one that does not. Plus they are formatted a little differently on Linux and BSD.
Not currently supported on aarch64.
I know it's duplicated here (#49), but the other guy has not provided the system_info.
No much info is is available on this particular board, so I think it is just fixing cpufreq-info output parsing.
We should have a tuple for the current Hz, and the advertised Hz:
hz_actual: 800 MHz
hz_advertised: 1.6000 GHz
hz_current_raw: (8000000, 0)
hz_actual_raw: (1600000000, 0)
This way we can use the numbers in comparisons.
The script should gather:
From Python:
sys.version_info
multiprocessing.cpu_count()
platform.uname()
platform.architecture()
platform.system()
platform.machine()
output of commands:
cpufreq-info
sestatus -b
dmesg -a
cat /proc/cpuinfo
sysctl machdep.cpu
isainfo -vb
kstat -m cpu_info
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.