Commit Graph

253 Commits

Author SHA1 Message Date
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
christos 103ef387e2 document that we are using non-literal string formats. 2011-08-17 13:54:31 +00:00
yamt b0bc17c5a1 dopoolcache: don't print unused caches unless verbose 2011-07-26 13:24:38 +00:00
joerg a216da57a6 Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.
2011-05-26 12:56:24 +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
wiz 467a0fa1ae Bump date for uarea swap-out removal. 2009-10-21 22:18:37 +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 c1ceae17f0 Enable WARNS=4 by default for usr.bin, except for:
awk  bdes  checknr  compile_et  error  gss  hxtool  kgetcred  kinit
	klist  ldd  less  lex  locale  login  m4  man  menuc  mk_cmds
	mklocale  msgc  openssl  rpcgen  rpcinfo  sdiff  spell  ssh
	string2key  telnet  tn3270  verify_krb5_conf  xlint
2009-04-14 22:15:16 +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 637bc2e71d Move TNF licenses to 2 clause form 2008-05-04 19:43:05 +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
tls 4147a3c54a Add new Makefile knob, USE_FORT, which extends USE_SSP by turning on the
FORTIFY_SOURCE feature of libssp, thus checking the size of arguments to
various string and memory copy and set functions (as well as a few system
calls and other miscellany) where known at function entry.  RedHat has
evidently built all "core system packages" with this option for some time.

This option should be used at the top of Makefiles (or Makefile.inc where
this is used for subdirectories) but after any setting of LIB.

This is only useful for userland code, and cannot be used in libc or in
any code which includes the libc internals, because it overrides certain
libc functions with macros.  Some effort has been made to make USE_FORT=yes
work correctly for a full-system build by having the bsd.sys.mk logic
disable the feature where it should not be used (libc, libssp iteself,
the kernel) but no attempt has been made to build the entire system with
USE_FORT and doing so will doubtless expose numerous bugs and misfeatures.

Adjust the system build so that all programs and libraries that are setuid,
directly handle network data (including serial comm data), perform
authentication, or appear likely to have (or have a history of having)
data-driven bugs (e.g. file(1)) are built with USE_FORT=yes by default,
with the exception of libc, which cannot use USE_FORT and thus uses
only USE_SSP by default.  Tested on i386 with no ill results; USE_FORT=no
per-directory or in a system build will disable if desired.
2007-05-28 12:06:17 +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