freebsd-dev/sys
Poul-Henning Kamp 224d5539a9 Make devstat fully Giant agnostic:
Add a mutex and protect the allocation and traversal of the list with it.

When we allocate a page for devstat use we drop the mutex and use
M_WAITOK this is not nice, but under the given circumstances the
best we can do.

In the sysctl handler for returning the devstat entries we do not want to
hold the mutex across copyout(9) calls, so we keep a very careful eye on
the devstat_generation count, and abandon with EBUSY if it changes under
our feet.

Specifically test for BIO_WRITE, rather than default non-read,non-deletes
as write.  Make the default be DEVSTAT_NO_DATA.

Add atomic increments of the sequence[01] fields so applications using the
mmap'ed view stand a chance of detecting updates in progress.

Reviewed by:    ken
2003-03-18 09:20:20 +00:00
..
alpha Tidy up the locking of the bounce pages structures. 2003-03-17 17:26:39 +00:00
amd64 Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
arm MB_LEN_MAX is not MD, move it to the MI limits.h. 2002-12-22 06:38:45 +00:00
boot FreeBSD 5.0 has stopped shipping /modules 2.5 years ago. Catch 2003-03-11 12:09:25 +00:00
cam Run a revision of the devstat interface: 2003-03-15 21:59:06 +00:00
coda Set f_fstypename in coda_nb_statfs(). 2003-03-07 09:18:15 +00:00
compat (This commit certainly increases the need for a wash&clean of vfs_cache.c, 2003-03-17 12:21:08 +00:00
conf o add crypto driver glue for using the new rndtest driver/module; this is 2003-03-11 22:47:06 +00:00
contrib Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
crypto Remove some unnecessary casts. 2003-01-25 22:41:22 +00:00
ddb Change the process flags P_KSES to be P_THREADED. 2003-02-27 02:05:19 +00:00
dev Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
fs Make udf_allocv() return an unlocked vnode instead of a locked one 2003-03-16 11:19:54 +00:00
geom Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
gnu - Lock the buf before clearing flags. 2003-03-13 07:07:16 +00:00
i4b Update netisr handling; Each SWI now registers its queue, and all queue 2003-03-04 23:19:55 +00:00
i386 Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
ia64 Made the prototypes for pmap_kenter and pmap_kremove MD. These functions 2003-03-16 04:16:03 +00:00
isa Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
isofs/cd9660 Rename vfs_stdsync function to vfs_stdnosync which matches more 2003-03-11 22:15:10 +00:00
kern Make devstat fully Giant agnostic: 2003-03-18 09:20:20 +00:00
libkern Further GC of M_STRING, missed previously. 2003-02-26 01:00:29 +00:00
modules Don't build if_iso88025subr.c into the oltr module. 2003-03-15 23:24:17 +00:00
net - Use IFP2AC(). 2003-03-16 00:17:44 +00:00
netatalk Update netisr handling; Each SWI now registers its queue, and all queue 2003-03-04 23:19:55 +00:00
netatm Update netisr handling; Each SWI now registers its queue, and all queue 2003-03-04 23:19:55 +00:00
netgraph Include correct opt_* headers for supported address families. Dike out 2003-03-08 16:25:27 +00:00
netinet Add a 'verrevpath' option that verifies the interface that a packet 2003-03-15 01:13:00 +00:00
netinet6 correct malloc flag argument 2003-03-12 06:08:48 +00:00
netipsec Update netisr handling; Each SWI now registers its queue, and all queue 2003-03-04 23:19:55 +00:00
netipx Remove unimplemented IP-in-IPX encapsulation support (options IPTUNNEL). 2003-03-08 06:58:22 +00:00
netkey Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
netnatm Update netisr handling; Each SWI now registers its queue, and all queue 2003-03-04 23:19:55 +00:00
netncp Note that MAJOR_AUTO is now the default if d_maj is not initialized. This 2003-03-09 11:03:45 +00:00
netsmb Remove fragments of support for the FreeBSD 3.x and 4.x branches. 2003-03-06 10:38:18 +00:00
nfs Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
nfsclient - Add a forgotten BUF_LOCK() 2003-03-14 05:13:19 +00:00
nfsserver - Lock bufs before inspecting their flags. 2003-03-13 07:05:22 +00:00
opencrypto Gigacommit to improve device-driver source compatibility between 2003-03-03 12:15:54 +00:00
pc98 Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
pccard Gigacommit to improve device-driver source compatibility between 2003-03-03 12:15:54 +00:00
pci Instead of relying on a compile time define to determine whether the xl 2003-03-18 06:29:51 +00:00
posix4 Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
powerpc Made the prototypes for pmap_kenter and pmap_kremove MD. These functions 2003-03-16 04:16:03 +00:00
rpc
security Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
sparc64 Remove unused fields. 2003-03-18 08:15:24 +00:00
sys Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
tools Remove miidevs.h and generate it from miidevs at compile time. 2003-01-19 02:59:34 +00:00
ufs Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
vm Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
Makefile