freebsd-dev/sys/dev
rwatson 16b5bdc4f8 Modify entropy harvesting locking strategy:
- Trade off granularity to reduce overhead, since the current model
  doesn't appear to reduce contention substantially: move to a single
  harvest mutex protecting harvesting queues, rather than one mutex
  per source plus a mutex for the free list.

- Reduce mutex operations in a harvesting event to 2 from 4, and
  maintain lockless read to avoid mutex operations if the queue is
  full.

- When reaping harvested entries from the queue, move all entries from
  the queue at once, and when done with them, insert them all into a
  thread-local queue for processing; then insert them all into the
  empty fifo at once.  This reduces O(4n) mutex operations to O(2)
  mutex operations per wakeup.

In the future, we may want to look at re-introducing granularity,
although perhaps at the granularity of the source rather than the
source class; both the new and old strategies would cause contention
between different instances of the same source (i.e., multiple
network interfaces).

Reviewed by:	markm
2004-10-09 22:04:13 +00:00
..
aac If the timeout handler runs and notices that commands are timed out, check 2004-09-16 02:37:40 +00:00
acpi_support Be sure to always unlock the sx lock when exiting the sysctl function. 2004-08-24 17:53:25 +00:00
acpica Update a quirk for the ASUS P5A to disable the timer. It appears to work fine 2004-10-08 17:56:47 +00:00
adlink Commit the new version of the adlink driver which can do non-cyclic 2004-09-19 21:52:15 +00:00
advansys Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
agp Add PCI ID for VIA K8T800Pro chipset. Tested with agptest and X with DRI 2004-10-05 04:40:32 +00:00
aha #include <isa/isavar.h> instead of <i386/isa/isa_dma.h> 2004-09-15 11:58:34 +00:00
ahb
aic
aic7xxx Correct a typo in a comment: alloated->allocated 2004-08-30 20:15:42 +00:00
amd Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
amr Set up the data flow flag correctly so that bounced buffers have a chance of 2004-09-14 16:36:12 +00:00
an Second part of ALTQ driver modifications, covering: 2004-08-01 23:58:04 +00:00
ar As the if_ar driver doesn't contain locking or run its interrupt 2004-08-13 22:52:11 +00:00
arl Since if_arl doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 22:54:19 +00:00
asr - Set the CAM status to CAM_SCSI_STATUS_ERROR rather than CAM_REQ_CMP 2004-08-02 23:32:23 +00:00
ata Add support for the ICH6 in legacy mode. 2004-10-09 16:27:13 +00:00
ath Add missing bit of last if_start workaround: mark scan callout 2004-08-08 17:10:54 +00:00
atkbdc Introduce a tunable to disable support for Synaptics touchpads. A number of 2004-09-29 23:49:57 +00:00
auxio Port NetBSD auxio driver. The driver was modified to use led(4) and can 2004-10-09 07:31:03 +00:00
awi Since if_awi doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 22:55:25 +00:00
bfe Fix sis, bfe and ndis in the same way dc was fixed: 2004-10-08 16:14:42 +00:00
bge Fix the statements for checking if we're dealing with a 5705/5750. 2004-09-25 05:07:20 +00:00
bktr Fix build if both of BKTR_USE_FREEBSD_SMBUS and BKTR_NEW_MSP34XX_DRIVER are 2004-09-11 04:32:55 +00:00
buslogic #include <isa/isavar.h> instead of <i386/isa/isa_dma.h> 2004-09-15 11:58:34 +00:00
cardbus MFp4: 2004-06-27 13:07:02 +00:00
ciss ciss's interrupt handler was missing the INTR_ENTROPY flag. 2004-08-16 23:13:16 +00:00
cm Since if_cm doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 22:57:44 +00:00
cnw
cp Remove bogus cdevsw frobbing code which tries to prevent double 2004-09-23 12:21:11 +00:00
cs Since if_cs doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:03:11 +00:00
ct Update for the KDB framework: 2004-07-10 20:57:43 +00:00
ctau Remove bogus cdevsw frobbing code which tries to prevent double 2004-09-23 12:21:11 +00:00
cx Remove bogus cdevsw frobbing code which tries to prevent double 2004-09-23 12:21:11 +00:00
cy Use generic tty code instead of local copy. 2004-10-05 07:42:19 +00:00
dc Read the MAC address in the EEPROM in the correct byte order. This 2004-10-01 15:23:31 +00:00
dcons Invalidate dcons buffer on shutdown. 2004-09-26 01:15:38 +00:00
de Since the if_de driver doesn't contain locking, mark it as 2004-08-13 22:48:05 +00:00
dec
digi Use generic tty code instead of local copies. 2004-10-06 20:01:49 +00:00
dpt
drm Fixed the module name (macros don't work here). 2004-08-29 07:49:53 +00:00
ed Remove layer intermixing. Device driver should pass the frame should 2004-09-06 21:14:32 +00:00
eisa Remove outb to "prime" the EISA ID registers of each slot. This was 2004-08-16 22:05:53 +00:00
em Don't count RNBC (internal buffer full) towards the RX error count since it's 2004-10-09 07:27:03 +00:00
en * Add a "how" argument to uma_zone constructors and initialization functions 2004-08-02 00:18:36 +00:00
ep Remove duplicate $FreeBSD$ 2004-07-22 07:11:15 +00:00
esp Pull the correct clock frequency value out of OFW. Why the helper function 2004-09-13 15:15:38 +00:00
ex Since if_ex doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:06:55 +00:00
exca Didn't intend to commit debugging code enabled 2004-08-16 01:57:06 +00:00
fatm
fb Converge towards i386. I originally resisted creating <machine/pc/bios.h> 2004-09-24 01:08:34 +00:00
fdc Yet another case of resources: 2004-10-05 07:18:11 +00:00
fe Style. Use ETHER_IS_MULTICAST() appropriately instead of masking off the bit. 2004-10-07 20:56:29 +00:00
firewire Add a missing splx(). 2004-09-06 20:42:34 +00:00
fxp Add support for the fxp(4) based card in ICH6 (i915) chipsets. 2004-09-18 19:13:13 +00:00
gem Since if_gem doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:11:24 +00:00
gfb Update for the KDB framework. Sanitize the alpha console code now that 2004-07-10 22:29:41 +00:00
gx Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
harp Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
hatm
hfa Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
hifn Consistently use __inline instead of __inline__ as the former is an empty macro 2004-07-04 16:11:03 +00:00
hme Make hme(4), i.e. the PCI-variant, MI by reading the MAC address on sytems 2004-08-14 22:38:20 +00:00
ic
ichsmb Add PCI Device ID for 6300ESB ICH. If allocating 16 bytes fails then try 32. 2004-06-24 18:21:28 +00:00
ichwd make code less broken, only try to create unit 0 since there can only 2004-06-13 05:00:19 +00:00
ida Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
idt Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
ie Since if_ie doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:15:44 +00:00
if_ndis Fix sis, bfe and ndis in the same way dc was fixed: 2004-10-08 16:14:42 +00:00
iicbus Since if_ic doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:16:44 +00:00
iir Panic if given a CAM_DATA_PHYS pointer from CAM instead of trying to handle it. 2004-09-03 08:44:23 +00:00
io Add module versions. 2004-08-02 20:42:28 +00:00
ips Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
isp PAE support changes that included at least some minimal actual testing 2004-09-23 05:25:22 +00:00
ispfw Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
ixgb Since if_ixgb doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-14 00:17:04 +00:00
joy Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
kbd Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
led Remove a pointless check. 2004-07-10 15:38:27 +00:00
lge Since if_lge doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:18:01 +00:00
lnc Pass a correct lowaddr to bus_dma_tag_create(), lnc(4) cards can only 2004-08-22 23:01:13 +00:00
matcd Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
mc146818
mca
mcd Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
md Actually this order (unlock, wakeup) in this case is race-safe and can 2004-09-18 09:16:19 +00:00
mem Fix module builds for i386 and amd64. 2004-08-04 18:30:31 +00:00
mii Add support for the BCM5750/5751. Unfortunately the documentation 2004-09-24 22:24:33 +00:00
mk48txx Correct value and description of the unused MK48TXX_WDAY_FT macro. 2004-09-20 00:09:32 +00:00
mlx Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
mly Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
mpt Correct style nit in rev 1.17. 2004-08-25 17:54:19 +00:00
mse Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
musycc Add -1 to this non-existent use of m_print in the source tree so LINT 2004-09-28 20:14:51 +00:00
my Replace handrolled CRC calculation with ether_crc32_[lb]e(). 2004-06-09 14:34:04 +00:00
ncv Update for the KDB framework: 2004-07-10 21:05:14 +00:00
nge Fix a typo that affects !i386. 2004-09-15 03:39:18 +00:00
nmdm Preparation commit for the tty cleanups that will follow in the near 2004-07-15 20:47:41 +00:00
nsp Update for the KDB framework: 2004-07-10 21:06:08 +00:00
null Go back to the historical minor numbers. Add a module version while 2004-08-02 19:59:41 +00:00
ofw Instead of "OpenFirmware", "openfirmware", etc. use the official spelling 2004-08-16 15:45:27 +00:00
owi
patm
pbio style(9) 2004-10-09 08:31:21 +00:00
pccard Shame on me. I screwed up product ID for the 3COM Bluetooth PC-Card. 2004-09-09 18:48:09 +00:00
pccbb Don't need to declare cbb module. don't know why I never saw 2004-08-16 06:33:58 +00:00
pcf - Introduce an ofw_bus kobj-interface for retrieving the OFW node and a 2004-08-12 17:41:33 +00:00
pci Re-route interrupts on arm as well. 2004-09-23 22:58:43 +00:00
pdq Prefer C99's __func__ over GCC's __FUNCTION__. 2004-09-22 17:16:04 +00:00
ppbus Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
ppc Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
pst Use the correct type for iop_attach(). 2004-10-03 16:06:46 +00:00
puc - Introduce an ofw_bus kobj-interface for retrieving the OFW node and a 2004-08-12 17:41:33 +00:00
random Modify entropy harvesting locking strategy: 2004-10-09 22:04:13 +00:00
ray Since if_ray doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:39:07 +00:00
rc Use generic ttycode instead of local copy. 2004-10-07 06:19:11 +00:00
re fix jumbo frames as much as they can be fixed for re. We now cap the MTU 2004-09-28 18:22:24 +00:00
rndtest
rp Use tty layer generic code instead of local copy. 2004-10-04 09:38:53 +00:00
sab Use ttyalloc() instead of ttymalloc(NULL) 2004-09-17 07:28:07 +00:00
safe Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
sbni Since if_sbni doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:41:00 +00:00
sbsh Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
scd Avoid casts as lvalues. 2004-07-28 06:21:53 +00:00
sf Tag a last set of PCI network interfaces as IFF_NEEDSGIANT until they 2004-08-28 15:10:35 +00:00
si Add #ifdef _KERNEL which allows sicontrol(8) to include this file 2004-10-02 18:49:29 +00:00
sio MFpc98: Check a pointer is NULL, remove unused variable. 2004-09-20 13:55:26 +00:00
sk fix LOR's in sk. Original patch from dwhite. This moves the memory 2004-08-20 06:22:04 +00:00
smbus Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
sn Replace handrolled CRC calculation with ether_crc32_[lb]e(). 2004-06-09 14:34:04 +00:00
snc Since if_snc doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:47:01 +00:00
snp Hold thread reference while we frob cdevsw. 2004-09-24 08:12:41 +00:00
sound Add ICH6 support. 2004-09-28 01:32:58 +00:00
speaker Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
sr Since if_sr doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:49:48 +00:00
stg Update for the KDB framework: 2004-07-10 21:14:20 +00:00
streams Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
sx Use generic tty processing code instead of local copy. 2004-10-08 06:45:10 +00:00
sym Make it depend on PCI as well. 2004-09-10 18:39:02 +00:00
syscons Disallow negative coordinates and sizes in the syscons CONS_SCRSHOT 2004-09-29 21:36:07 +00:00
tdfx Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
tga Remove redundant _FBSDID. 2004-09-01 22:53:13 +00:00
ti Tag a last set of PCI network interfaces as IFF_NEEDSGIANT until they 2004-08-28 15:10:35 +00:00
trm Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
twa Changes to make twa work on amd64. 2004-08-18 16:14:44 +00:00
twe Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
tx Since if_tx doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:52:33 +00:00
txp Since if_txp doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:53:36 +00:00
uart Use tty->t_sc to find out softc. 2004-09-18 16:43:44 +00:00
ubsec Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
usb Don't use matchlvl attach arg. It seems to be not initialized 2004-10-09 07:48:31 +00:00
utopia Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
vge Remove unneeded TX channel wakeup from vge_txeof(). This was put 2004-09-11 22:13:25 +00:00
vinum Fix compilation of vinum(4) when VINUMDEBUG is not defined. 2004-09-20 00:13:10 +00:00
vr Revert rev 1.93 and replace it by grabbing the vr lock before calling 2004-08-11 04:30:49 +00:00
vx ss if_vx through indent, and use ANSI function definitions, prior to adding 2004-08-18 16:56:54 +00:00
watchdog Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
wds
wi Second part of ALTQ driver modifications, covering: 2004-08-01 23:58:04 +00:00
wl Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
xe Since if_xe doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-14 00:15:26 +00:00
zs Use tty->t_sc to find out softc. 2004-09-18 16:43:44 +00:00