]> granicus.if.org Git - procps-ng/commit
top: tolerate loss of smp cpus, improve CPU_t management
authorJim Warner <james.warner@comcast.net>
Wed, 1 Feb 2012 06:00:00 +0000 (00:00 -0600)
committerCraig Small <csmall@enc.com.au>
Wed, 8 Feb 2012 09:57:51 +0000 (20:57 +1100)
commitf348575edc915db9df89acfb3f292920726ffe9a
tree5799f8bdc48aed096daeb768970134f2489d92fa
parentd7c986cd3031db263b34fca4d4772abaa3a14c9f
top: tolerate loss of smp cpus, improve CPU_t management

Prior to this patch, top was able to handle any hotplugged
cpus *added* to the system in two distinct ways.

 1) Newly added cpus would be detected by sysinfo_refresh
    calling the library's cpuinfo function, which occurs
    at most every 5 minutes.

 2) The user could force a refresh using either the
    <Enter> or <Space> keys.

Unfortunately, the *loss* of a cpu would produce an early
exit due to a /proc/stat read failure.  Such a failure
can be produced in the following way:
  sudo echo 0 > /sys/devices/system/cpu/cpu??/online

This commit allows top to tolerate the loss of cpus.
It also provides for more efficient CPU_t management,
especially for massively parallel cpu environments.

Note: Changes to the cpu compliment can produce a single
cycle distortion of cpu percentages.  Such distortion is
most visible when each cpu is being displayed.  It can
be eliminated with a forced refresh via <Enter>/<Space>.
top/top.c
top/top.h