Commit Graph

238 Commits

Author SHA1 Message Date
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
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
yamt
1c625a0e79 remove unused files. 2006-04-21 13:45:42 +00:00
blymn
10df330c85 Prefix iostat structure elements with io_ 2006-04-20 12:13:51 +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
nonaka
0827467dac Don't forget original allocated memory address. 2005-10-22 15:32:48 +00:00
chs
9c47d944e4 optimize pool_caches similarly to how I optimized pools before:
split the single list of pool cache groups into three lists:
completely full, partially full, and completely empty.
use LIST instead of TAILQ where appropriate.
2005-10-02 17:29:31 +00:00
blymn
9e306bafdf Remove message when no tape drives found 2005-09-10 11:10:21 +00:00
blymn
64e76e4ea0 Don't error when tape drives are not configured on a system. 2005-08-08 11:31:48 +00:00
blymn
71c77b437a Add support for tape statistics. 2005-08-07 12:23:20 +00:00
blymn
681d2bb37b Add support for gathering tape statistics. 2005-08-07 12:21:46 +00:00
lukem
829384f829 appease gcc -Wuninitialized 2005-06-02 04:34:57 +00:00
chs
3f15e64c3c rename "kbucket" to "kmembuckets", for greater clarity.
don't forget to update vmstat this time.
2005-05-30 23:04:53 +00:00
chs
d5b80101e7 do not rely on the pre-evcnt interrupt counter kernel symbols being present.
if they do not exist, then interrupt stats are all in evcnts.
2005-05-22 14:00:59 +00:00