Commit Graph

184 Commits

Author SHA1 Message Date
Huan Wang 6a572952f0 fix slow cpuinfo on multisocket config
updated win32_Processor struct to exclude loadpercentage field.
The loadpercentage takes linearly more time as the # of sockets
increases. By default vSphere maps 1 vCPU to 1 socket, resulting in very
poor performance when getting CPU info against, saying, 40 vCPU VM
(basically 40 sockets as seen by the VM).
2021-06-14 22:00:22 -06:00
Ville Skyttä 47f2f0eee5 [cpu][linux] add more ARM hw implementers 2021-05-30 15:39:19 +03:00
Ville Skyttä b8ac60acc1 [cpu][linux] more info for ARM processors
https://developer.arm.com/documentation/ddi0337/h/system-control/register-descriptions/cpuid-base-register--cpuid
2021-05-20 19:35:01 +03:00
Ville Skyttä 2278747969 [v2][cpu][solaris] psrinfo parsing fixes 2021-05-08 16:41:03 +03:00
Lomanic d447f9f7ed
Merge pull request #1039 from Lomanic/issue1037
[cpu][linux] Fix #1037 only count logical cores where 2nd field is a number
2021-04-14 00:58:15 +02:00
Ivan Babrou 19ac85b504 Add missing TargetConditionals.h include, closes #976 2021-03-01 09:41:31 -08:00
Lomanic 6589c5c274 [cpu][linux] Fix #1037 only count logical cores where 2nd field is a number 2021-02-22 00:28:56 +01:00
Tobias Klauser ee12f66e4d cpu, v3/cpu: use sysconf package instead of exec'ing getconf
Currently, ClocksPerSec is determined by exec'ing getconf in func init,
i.e. on startup of every program importing the package. getconf might
not be present on some systems or is not executable by the current user.
To avoid this hard to control dependency, use the
github.com/tklauser/go-sysconf package which implements sysconf(3)
entirely in Go without cgo. The package is supported on all platforms
currently supported by the cpu and v3/cpu package of gopsutil.
2021-02-19 12:20:10 +01:00
Lomanic 976679ee00 [cpu][linux] Get logical cores in Counts() with non-deprecated kernel API first
Implementing https://github.com/giampaolo/psutil/pull/1727#issuecomment-707624964
and bfae1fc4a3
2020-11-07 00:48:53 +01:00
shirou f377a07e5a fix test and openbsd errors. 2020-10-25 19:06:59 +09:00
Lomanic bb6f6e4968 [cpu][linux] Test Counts against lscpu results 2020-09-15 21:39:25 +02:00
Lomanic 7700262175 [cpu][linux] Fix #849 implement giampaolo/psutil#1727 in Counts() for physical cores 2020-09-15 21:38:47 +02:00
Lomanic 4cfc60d68b
Merge pull request #928 from Lomanic/skip-tests-when-not-implemented 2020-09-06 13:33:31 +02:00
ninedraft 34df4904f6 use cancelable sleep in cpu.PercentWithContext and process.Process.PercentWithContext 2020-09-03 23:01:53 +03:00
Tobias Klauser 548c500117 Use unix.SysctlUin32("hw.ncpuonline") on OpenBSD
Use SysctlUvmexp from golang.org/x/sys/unix to avoid having to simplify
the implementation of cpu.InfoWithContext

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2020-09-01 11:22:28 +02:00
Lomanic 38f6ed0e0c [cpu] Skip tests on non-implemented platforms #446 2020-08-29 18:29:04 +02:00
Guillaume Ballet baec973ff6 Fix stepping extraction 2020-06-22 13:03:18 +02:00
Guillaume Ballet 877e0a6603 more typo fixes 2020-06-22 11:59:22 +02:00
Guillaume Ballet 8968457048 fix typo 2020-06-22 11:56:02 +02:00
Guillaume Ballet 771601b292 use sysctl instead of parsing dmesg output 2020-06-22 11:54:44 +02:00
Guillaume Ballet 9390667f0f
Update cpu/cpu_dragonfly.go
Co-authored-by: shirou <shirou.faw@gmail.com>
2020-06-21 12:21:18 +02:00
Guillaume Ballet 56d9e0b7be cpu: support for DragonflyBSD 2020-06-18 10:17:23 +02:00
Lomanic 663af789c0
Merge pull request #872 from renaynay/update-docs-cputimes
Update docs for TimesStat with correct time unit
2020-05-31 17:11:28 +02:00
Lomanic a901d160ca
Merge pull request #870 from renaynay/naming-consistency
Renamed variables storing `CLK_TCK` value for consistency across OSs
2020-05-31 17:01:13 +02:00
renaynay 5e1b882e37
updated docs for TimesStat with correct time unit 2020-05-13 11:21:01 +02:00
renaynay 0e9462eed2
renamed CLK_TCK variables for consistency across OSs 2020-05-12 15:36:18 +02:00
renaynay d4985c9690
added check for CLK_TCK 2020-05-12 13:59:26 +02:00
Dmitri Goutnik 270f6afc22
Add support for freebsd/arm64 2019-12-17 03:12:29 -05:00
shirou b0025409e9 [cpu][linux]: add cpuinfo parse check. 2019-11-14 21:47:42 +09:00
alialaee b8f51de8f6 Fix #777 cpu.Total should not add Guest and GuestNice 2019-10-15 19:19:12 +03:30
shirou e4d2c2f87a
Merge pull request #749 from Lomanic/issue628windows
[cpu][windows] Add support for logical arg in Counts #640 #628
2019-08-16 09:34:56 +09:00
Lomanic 71adb75383 [cpu][windows] Add support for logical arg in Counts #640 #628 2019-08-14 23:52:41 +02:00
Lomanic e6aa38bec2 [cpu][windows] WIP Add support for logical arg in Counts #640 #628 2019-08-14 23:35:31 +02:00
shirou 86fdae99e1 [cpu]: return 100 instead 1 if t1 are bigger than t2 2019-07-06 11:24:35 +09:00
Lomanic 946c9ce6ea [cpu] Fix #599 cap percent values returned by Percent() between 0 and 100
See https://github.com/shirou/gopsutil/issues/599#issuecomment-491942842 for a repoduction case
2019-06-23 16:14:27 +02:00
Lomanic 35f21af98a
Merge pull request #699 from harpchad/solaris_cpu
Add support fo Solaris cpu times (idle, sys, user, iowait) in cpu_solaris
2019-06-08 19:53:38 +02:00
Chad Harp 8c6072d111 Cast bytes to string 2019-06-07 07:39:57 -05:00
Chad Harp 16b37cc9c2 Modify cpu_solaris to support Sorlais 10 2019-06-02 09:58:35 -05:00
Chad Harp 354718bdd8 Add support for Solaris CPU times 2019-06-01 15:05:46 -05:00
shirou 4b629897d2
Merge pull request #647 from omar-polo/master
[OpenBSD][CPU] fix per-cpu
2019-06-01 10:24:59 +09:00
shirou e146c2e08a
Merge pull request #677 from shirou/feature/remove_stolen_from_cpu
[cpu]: remove unused field Stolen
2019-05-12 18:43:21 +09:00
Segflow 86c7289ccc Fix: use filename in exec.LookPath instead of full path
exec.LookPath searches for the file in the $PATH, which mean giving it an absolute path is against it's own purposes.
2019-05-05 20:45:07 +01:00
Omar Polo 3cbb0873de
int32 is enough -- don't waste space 2019-05-02 12:24:16 +02:00
shirou cae8efcffa [cpu]: remove unused field Stolen
see #676
2019-04-27 13:45:12 +09:00
Minje Park caebe5dbe4 returning 0 and error if SysctlUint32 raises an error 2019-03-21 23:52:34 +09:00
Omar Polo 53ce014b14
handle EOPNOTSUPP when checking for hw.smt
if hw.smt is not applicable for the current platform (e.g. i386),
pretend it's enabled
2019-03-19 20:06:12 +01:00
Omar Polo c28fe78291
forget to take addr 2019-03-18 19:58:50 +01:00
Minje Park ca1fcad2aa retrieve a cpu count depends on an boolean argument 2019-03-17 23:18:29 +09:00
Omar Polo 932f2f6049
Fix cpu stats when hw.smt is enabled
When hw.smt is enabled, and it's enabled by default from 6.4, the
number of cpus given by `runtime.NumCPU()` is half of the total: only
the cpuN with N = 0,2,4,... are used by the system. We need to detect
that and ask for the correct stats.
2019-03-16 12:26:03 +01:00
Omar Polo 12d92847cf
Get hw.ncpuonline without unix.SysctlUint32
unix.Sysctl always return an error when asking for hw.ncpuonline, so
revert to a direct unix.Syscall6 to get the cpu count.
2019-03-13 11:03:17 +01:00