NetBSD/sys
xtraeme 5ee4eba88d Introduce per-device locking/synchronization and maintain only a
global mutex for the linked list of devices and the global proplib
dictionary.

This has improved locking contention a lot when multiple devices with
multiple monitoring events are running:

New:

 0.30      35      0.33 sme_global_mtx         sysmonioctl_envsys+28b
 0.10      10      0.11 00000000cd97feac       sysmon_envsys_acquire+4c
 0.08       6      0.09 00000000cd97feac       sme_update_dictionary+24f
 0.01       4      0.01 00000000cd97feac       sme_events_worker+2f
 0.01      10      0.01 00000000cd97fe2c       sysmon_envsys_acquire+4c
 0.00       1      0.00 00000000cd97fe2c       sysmon_envsys_release+3b
28.38      94      9.16 sme_global_mtx         sysmonioctl_envsys+28b
 4.54      74      1.47 00000000cd97fe2c       sysmon_envsys_acquire+4c
 0.06       3      0.02 00000000cd97fe2c       sysmon_envsys_release+3b
 0.03       1      0.01 00000000cd97fe2c       sme_events_worker+2f
 1.40      19      0.45 00000000cd97bee4       sysmon_envsys_acquire+4c

Old:

 4.25     313      4.74 sme_mtx                <all>
 3.12     185      3.49 sme_mtx                sme_events_worker+21
 1.12     128      1.25 sme_mtx                sysmonioctl_envsys+29b
34.75    1423     59.52 sme_mtx                <all>
22.08     477     37.82 sme_mtx                sysmonioctl_envsys+29b
12.67     946     21.70 sme_mtx                sme_events_worker+21
2008-04-01 12:25:30 +00:00
..
altq
arch Add timeout to busy loops waiting for ADB command completition. 2008-04-01 12:02:52 +00:00
coda when queueing a message back to Venus, prioritise signals by inserting 2008-03-21 18:02:39 +00:00
compat print size_t with %zu. 2008-03-30 20:58:08 +00:00
conf Add support for NCR 53C720 found on various machines/attachments. 2008-03-30 12:32:13 +00:00
contrib/dev/ath
crypto
ddb Fix CS_MACH definition. 0x10 is spelled 0x10, not 0x16. 2008-03-27 01:15:15 +00:00
dev Introduce per-device locking/synchronization and maintain only a 2008-04-01 12:25:30 +00:00
dist Welcome to 4.99.55: 2008-03-01 14:16:49 +00:00
fs Catch up with descriptor handling changes. See kern_descrip.c revision 2008-03-21 21:54:58 +00:00
gdbscripts +cpus 2008-02-20 21:01:23 +00:00
ipkdb
kern Use multiple kthreads to process config_interrupts tasks. Proposed on 2008-04-01 10:37:42 +00:00
lib fix again 2008-03-25 23:24:38 +00:00
lkm MKMAN does not belong in source makefiles. Use NOMAN. 2008-03-10 01:22:05 +00:00
miscfs Catch up with descriptor handling changes. See kern_descrip.c revision 2008-03-21 21:54:58 +00:00
modules Add an example on how to handle the incoming properties during module load. 2008-03-02 11:19:30 +00:00
net route_intr: fill a correct member of sockproto. (sp_family -> sp_protocol) 2008-03-29 13:00:43 +00:00
net80211 s/MUTEX_DRIVER/MUTEX_DEFAULT/ 2008-02-13 16:04:03 +00:00
netatalk
netbt move the updating of num_cmd_pkts to its own function, mostly so that 2008-03-17 09:16:17 +00:00
netinet - Make sure we send a reasonable fragment size when IPSEC is configured. 2008-03-27 00:18:56 +00:00
netinet6 Use ip6_clearpktopts() to destroy the IPv6 PCB's in6p_outputopts, 2008-03-20 20:32:00 +00:00
netipsec Fix build of FAST_IPSEC after the change of ip_newid prototype 2008-02-10 21:42:20 +00:00
netisdn Add missing ';' to fix a compile error, which was introduced in the 2008-03-01 18:59:45 +00:00
netiso Don't lock the socket to set/clear FNONBLOCK. Just set it atomically. 2008-02-06 21:57:53 +00:00
netkey
netnatm
netsmb Commit the "per-CPU" select patch. This is the result of much work and 2008-03-22 18:04:42 +00:00
nfs ansify. from Christoph Egger. 2008-03-29 13:48:00 +00:00
opencrypto Catch up with descriptor handling changes. See kern_descrip.c revision 2008-03-21 21:54:58 +00:00
rump Regen. 2008-03-27 17:14:21 +00:00
secmodel Remove include of sys/pset.h in sys/lwp.h header. 2008-03-09 15:39:14 +00:00
stand
sys Enable blocking synchronization for callouts as discussed at length on 2008-03-28 20:44:38 +00:00
ufs Make rusage collection per-LWP and collate in the appropriate places. 2008-03-27 19:06:51 +00:00
uvm make this compile 2008-03-29 20:40:52 +00:00
Makefile