Commit Graph

188 Commits

Author SHA1 Message Date
para 308636e770 remove malloc(9) output function from vmstat
it is not required and working any more
2012-04-29 16:23:56 +00:00
matt d34c2845b8 Use C89 function definitions 2012-03-20 20:34:57 +00:00
christos 81aad1d7e8 use warn instead of perror. 2011-10-15 21:59:48 +00:00
christos 76f57a76c2 unbreak -f -H -h, etc, part 1
- get nlist once in the beginning and fix the flags. Not each time! It is
not like the kernel will change it symbols in the middle of the run.
2011-10-15 21:06:05 +00:00
jym 37232010ea Use __arraycount(), as done above. 2011-09-21 12:08:02 +00:00
joerg a12e209ee8 Mark usage as static and __dead. 2011-09-06 18:44:46 +00:00
yamt b0bc17c5a1 dopoolcache: don't print unused caches unless verbose 2011-07-26 13:24:38 +00:00
mrg 8169e46991 move and rename the uvm history code out of uvm_stat to "kernhist".
rename "UVMHIST" option to enable the uvm histories.

TODO:
- make UVMHIST properly depend upon KERNHIST
- enable dynamic registration of histories.  this is mostly just
  allocating something in a bitmap, and is only for viewing multiple
  histories in a merged form.


tested on amd64 and sparc64.
2011-05-17 04:18:05 +00:00
nakayama 54b4b1358f Fix header, format and total count of system interrupt counters. 2011-02-16 12:58:38 +00:00
mlelstv 1d04f1ffaf dosum also needs getnlist 2011-02-05 13:12:07 +00:00
christos 50e452f9f7 deal with detecting the first and last cpu differently. 2011-01-31 19:41:19 +00:00
matt c1edd37ce1 Make sure to getnlist in dovmstat 2011-01-31 18:56:04 +00:00
matt 45362e3914 Defer nlist processing until we know we need to it. If everything can be
obtained via sysctl, we can skip it entirely.  This means we can run even
if not setgid.

getuptime will now use sysctl/clock_gettime if memf is NULL.
doevcnt now sues sysctl(kern.evcnt) is memf is NULL.  It falls back to
groveling if sysctl returns an error of ENOENT.
dointr will call doevcnt to evcnt based intr stats.
2011-01-29 18:10:08 +00:00
christos fdbe2a0785 can't play games with structure names since cpu_data refers to cpu_info, so
provide our own copy for everything.
2010-12-25 23:36:59 +00:00
christos 5ee7c6c8d5 use a local definition of cpu_info if we have __HAVE_CPU_DATA_FIRST 2010-12-25 20:50:36 +00:00
christos 8ac898131d Don't crash on old kernels that don't have the new per cpu counters. 2010-12-25 14:18:37 +00:00
enami d5a41b7133 We still need to update ouvmexp to output the differene from
previous iteration.
2010-12-24 23:39:19 +00:00
christos 301830e51c make this work with the per-cpu counters. 2010-12-20 04:25:03 +00:00
christos 710d230a43 simplify and modernize:
- make sysctl mibs static
- use warn/warnx for warnings
makes binary 4K smaller.
2010-10-18 19:39:32 +00:00
pooka 062d6d1f8d Make "i" unsigned to mirror change to struct uvm_history 2010-07-07 11:42:18 +00:00
he d399695a05 Follow christos' suggestions, and make ks_active a u_short, and
also only use 16 u_shorts instead of 32 ints.  Also add panic()
calls for under- and overflow of the ks_active members under
DIAGNOSTIC.  The MAXBUCKET constant ended up in sys/mallocvar.h
and not sys/param.h, as the latter caused build problems.

Ride the kernel revision bump of my previous change.
2010-04-05 08:03:41 +00:00
he bb89b7208d Extend struct malloc_type to count the number of active allocations
per size, and make vmstat report this information under the "Memory
statistics by type" display, which is only printed when the kernel
has been compiled with KMEMSTATS defined, like this:

Memory statistics by type                                Type  Kern
           Type InUse  MemUse HighUse   Limit   Requests Limit Limit Size(s)
          wapbl    15   4192K   4192K  78644K     376426     0     0 32:0,256:3,512:6,131072:1,262144:2,524288:3

Since struct malloc_type is user-visible and is changed, bump kernel
revision to 5.99.26.

While it is true that malloc(9) is in general on the path of slowly
being replaced by kmem(9) (kmem_alloc/kmem_free), there remains a
lot of points of usage of malloc/free, and this could aid in finding
any leaks.  (It helped finding the leak fixed in PR#42661.)

This was discussed with and somewhat hestitantly OKed by rmind@
2010-04-05 07:16:12 +00:00
rmind 40cf6f3659 Remove uarea swap-out functionality:
- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code.  Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.
2009-10-21 21:11:57 +00:00
lukem c493aef500 fix -Wsign-compare issues 2009-01-18 07:11:45 +00:00
dholland 76eef63f94 Add missing fflush() in one of three places that print stuff repeatedly
every so often. PR 32836 from Takuro KUBOTA.
2008-11-28 05:58:22 +00:00
matt 5331076d97 NFS hash tables no longer exist. 2008-10-22 11:36:58 +00:00
he cef17755f2 Restore the "pages actige" and "pages inactive" value printouts
in "vmstat -s" output when run on the active kernel.

The reason we can't easily provide these values out of a crash
dump, is that these fields are no longer proper members of
struct uvmexp, but rather are estimated by and dependent on
the currently active page replacement policy in the kernel.
2008-08-20 18:51:49 +00:00
lukem 98e5374ccb Remove the \n and tabs from the __COPYRIGHT() strings.
Tweak to use a consistent format.
2008-07-21 14:19:20 +00:00
he dfcadaa439 Fix alignment of fields for "vmstat -m" when KMEMSTATS are available:
o Make "prop dictionary" fit in the "Type" coloumn
 o Ensure that fields don't run into each other (adds a space between fields)
 o Ensure that a Limit of >100000K fits in the field width
2008-06-24 12:47:23 +00:00
ad e7fbdbbaf0 vmstat -s: report cpu pagealloc hits/misses. 2008-06-04 12:47:47 +00:00
martin ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
ad ea3f10f7e0 Merge more changes from vmlocking2, mainly:
- Locking improvements.
- Use pool_cache for more items.
2007-12-26 16:01:34 +00:00
ad 73157b0e11 - Support two different sizes of pool_cache group. The default has 14 or 15
items, and the new large groups (for busy caches) have 62 or 63 items.
- Add PR_LARGECACHE flag as a hint that a pool_cache should use large groups.
  This should be eventually be tuned at runtime.
- Report group size for vmstat -C.
2007-12-20 23:49:10 +00:00
yamt 3a246441d8 add -C to usage. 2007-12-05 09:20:56 +00:00
ad 9b336836df Add -C option to display pool_cache info, eg:
Pool cache statistics.
Name          Spin  Full Empty   PoolLayer  CacheLayer  Hit%    CpuLayer  Hit%
pipepl           0     1     3         385       42862  99.1      985780  95.7
fdescpl          0     0     2         310       31133  99.0     1029620  97.0
cwdipl           0     0     2         310       31227  99.0     1029714  97.0
filepl           0     1     4         680      141415  99.5    24011135  99.4
2007-11-07 00:24:18 +00:00
christos 3ceb6c1c20 warns=4, pass lint. 2006-10-17 15:13:08 +00:00
christos c384594e4f use howmany(), instead of open-coding the calculation. 2006-10-16 16:44:20 +00:00
yamt 243b5d4a07 increase a chance to fit within 80 char width consoles.
- use PRWORD for dovmstat as well.
- reduce number of drives shown by default from 3 to 2.
2006-09-27 12:35:08 +00:00
yamt 08c96f5c24 sync with kernel after yamt-pdpolicy merge. 2006-09-15 15:53:42 +00:00
kardel 0da8c70aed PR 34205: workaround struct timeval tv_sec not being SUS compliant issue (reported by Takeshi Nakayama) 2006-08-15 07:09:12 +00:00
simonb 01d9f1263a Dump some column widths. 2006-07-21 05:26:53 +00:00
kardel e386d70092 accept either "time_second" or "time" as kernel timevariable in
order to support common userland in enviroments where
timecounter kernels and non timecounter kernel co-exist
(e.g. xen & i386)
2006-07-09 06:43:16 +00:00
yamt aa1d51179e include evcnt.h rather than device.h. 2006-07-08 14:58:51 +00:00
kardel 75418af90c support timecounters (struct time gone, use time_second then) 2006-06-07 20:56:19 +00:00
christos e649ae6adc Coverity CID 884: Avoid NULL deref. 2006-05-02 22:19:12 +00:00
christos 10a7a5fd96 Coverity CID 885: Avoid NULL deref. 2006-05-02 22:13:29 +00:00
christos 9b0f17533c Coverity CID 886: Avoid NULL deref. 2006-05-02 21:40:06 +00:00
simonb 47890115bd Unwrap a not too long line. 2006-04-27 09:04:41 +00:00
blymn 7d866d268b Update statistics reporting to use new kernel framework, rename dkstats*
to a more generic name since it no longer just deals with disk.
2006-04-14 13:12:37 +00:00
dsl 228802f437 Split dkreadstats() into dkreadstats(), tkreadstats() and cpureadstats().
Similarly for dkswap().
Allows code to only call one of these.
Rename struct _disk to _vminfo to be nearer its contents.
Change 'systat vm' so that it always shows the 'current' cpu times, even
after ':run' or ':boot' commands. The code in vmstat.c doesn't support :run.
2006-02-05 09:54:50 +00:00