20 Commits

Author SHA1 Message Date
bmilekic
95b1ae9f22 Change the "in use" percentage metric to actually display a real
"in use" percentage. In other words, show how much of mb_map is in use.
2000-10-15 06:29:22 +00:00
dwmalone
df0e25bf6c Replace the mbuf external reference counting code with something
that should be better.

The old code counted references to mbuf clusters by using the offset
of the cluster from the start of memory allocated for mbufs and
clusters as an index into an array of chars, which did the reference
counting. If the external storage was not a cluster then reference
counting had to be done by the code using that external storage.

NetBSD's system of linked lists of mbufs was cosidered, but Alfred
felt it would have locking issues when the kernel was made more
SMP friendly.

The system implimented uses a pool of unions to track external
storage. The union contains an int for counting the references and
a pointer for forming a free list. The reference counts are
incremented and decremented atomically and so should be SMP friendly.
This system can track reference counts for any sort of external
storage.

Access to the reference counting stuff is now through macros defined
in mbuf.h, so it should be easier to make changes to the system in
the future.

The possibility of storing the reference count in one of the
referencing mbufs was considered, but was rejected 'cos it would
often leave extra mbufs allocated. Storing the reference count in
the cluster was also considered, but because the external storage
may not be a cluster this isn't an option.

The size of the pool of reference counters is available in the
stats provided by "netstat -m".

PR:		19866
Submitted by:	Bosko Milekic <bmilekic@dsuper.net>
Reviewed by:	alfred (glanced at by others on -net)
2000-08-19 08:32:59 +00:00
alfred
19218742c7 Make mbstat.m_mtypes seperate and viewable via sysctl, also
expand the size from short to ulong

Submitted by: Ian Dowse <iedowse@maths.tcd.ie>
PR: kern/19809
2000-07-15 06:02:48 +00:00
msmith
d73a050489 Add display of maximum allowed mbuf count to match mbuf cluster count.
Submitted by:	Bosko Milekic <bmilekic@dsuper.net>
1999-12-28 06:38:37 +00:00
peter
3b842d34e8 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
roberto
8d7ddb164a Fix "make world" breakage because MT_RTABLE was still referenced here. 1999-01-18 12:40:44 +00:00
gpalmer
2a239d1d24 Quick hack to allow netstat to compile once more: ifdef out MT_SOOPTS 1998-08-23 15:23:11 +00:00
jb
563187e169 Change a variable from int to size_t. 1998-08-18 13:36:47 +00:00
bde
0609531ab6 Fixed printf format errors. 1998-07-06 21:01:54 +00:00
wollman
e37570d812 mbuf, inet, and unix modules no longer read kvm. 1998-05-15 20:19:21 +00:00
dg
abb0f6fda9 Output mbuf clusters as current/peak/max. Requires new kern.ipc.nmbclusters
sysctl variable (previously committed).
1998-04-24 04:30:27 +00:00
ache
69b3def964 Add (unsigned) cast to prevent overflow in %
Submitted by:  "Alex G. Bulushev" <bag@demos.su>
1997-11-10 08:03:36 +00:00
peter
b0303ecc1d Bandaid to make this compile.. These old mbuf types should probably be
ripped out.
1997-08-17 09:12:43 +00:00
charnier
e97a8f1bb5 Remove prog, unused variables.
Cosmetic in usage string.
1997-07-29 06:51:41 +00:00
wollman
dc73a48dfc Use the new sysctl(3) interface to mbuf statistics rather than
groveling about in kmem.
1997-02-24 20:40:40 +00:00
wollman
98eca9a3c5 When the mbuf code was changed to use a private allocator instead of
the kernel malloc, netstat was never updated to reflect the fact that
there are once again allocated-but-free mbufs, just as there are
clusters, and so the information presented about how much memory was
allocated to the network was bogus.  Fixed.
1997-02-12 19:33:22 +00:00
alex
5c1e86ebb4 Code cleanup: remove unused variables, use correct *printf format
specifiers (some unsigned values were printed as signed, some longs
were printed as ints), and place parentheses around assignments in
if statements.
1996-06-02 23:19:12 +00:00
dg
51f954fe2b Changed "mapped pages in use" to "mbuf clusters in use". 1995-02-23 19:08:11 +00:00
wollman
ba9388f7cc Don't print protocol-cloned routes by default (enabled by -a flag).
Print non-zero expiration timers.
Use err(3) for error reporting.
1995-01-23 20:19:16 +00:00
rgrimes
f9ab90d9d6 BSD 4.4 Lite Usr.bin Sources 1994-05-27 12:33:43 +00:00