freebsd-skq/sys/dev
Scott Long 22657ce129 A number of significant enhancements to the ciss driver:
1.  The FreeBSD driver was setting an interrupt coalesce delay of 1000us
for reasons that I can only speculate on.  This was hurting everything
from lame sequential I/O "benchmarks" to legitimate filesystem metadata
operations that relied on serialized barrier writes.  One of my
filesystem tests went from 35s to complete down to 6s.

2.  Implemented the Performant transport method.  Without the fix in
(1), I saw almost no difference.  With it, my filesystem tests showed
another 5-10% improvement in speed.  It was hard to measure CPU
utilization in any meaningful way, so it's not clear if there was a
benefit there, though there should have been since the interrupt handler
was reduced from 2 or more PCI reads down to 1.

3.  Implemented MSI-X.  Without any docs on this, I was just taking a
guess, and it appears to only work with the Performant method.  This
could be a programming or understanding mistake on my part.  While this
by itself made almost no difference to performance since the Performant
method already eliminated most of the synchronous reads over the PCI
bus, it did allow the CISS hardware to stop sharing its interrupt with
the USB hardware, which in turn allowed the driver to become decoupled
from the Giant-locked USB driver stack.  This increased performance by
almost 20%.  The MSI-X setup was done with 4 vectors allocated, but only
1 vector used since the performant method was told to only use 1 of 4
queues.  Fiddling with this might make it work with the simpleq method,
not sure.  I did not implement MSI since I have no MSI-specific hardware
in my test lab.

4.  Improved the locking in the driver, trimmed some data structures.
This didn't improve test times in any measurable way, but it does look
like it gave a minor improvement to CPU usage when many
processes/threads were doing I/O in parallel.  Again, this was hard to
accurately test.
2008-07-11 21:20:51 +00:00
..
aac Add explicit PCI IDs for the following Adaptec RAID Series 2 adapters: 2008-06-27 19:34:47 +00:00
acpi_support Fix my previous commit. We actually should pass evaluation args in 2008-07-04 23:40:53 +00:00
acpica Initialize tz_active to a new constant TZ_ACTIVE_UNKNOWN and make no 2008-04-25 16:45:13 +00:00
adlink Set D_NEEDGIANT. 2007-08-04 17:43:11 +00:00
advansys Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
age Fix typo in comment. 2008-06-08 14:42:43 +00:00
agp Fix PCI id for 945GME Express Integrated Graphics Controller: 2008-06-20 22:23:41 +00:00
aha Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
ahb Fix a compile error from the last change. 2007-06-17 15:21:09 +00:00
aic Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
aic7xxx Only print sense data diagnostics if debugging is enabled with the 2008-02-17 16:00:36 +00:00
amd Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
amr Remove an errant definition for AMR_CONFIG_ENQ3_SOLICITED NOTIFY that was 2008-02-06 14:26:31 +00:00
an Style changes from avatar. 2008-01-18 16:34:18 +00:00
ar Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
arcmsr Fix an incorrect FreeBSD version test. 2007-12-09 19:24:27 +00:00
asmc Match the Mac Pro with 8 cores. This machine reports 35 temperature 2008-04-12 12:04:09 +00:00
asr Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
ata Detect ATA controllers in the Macbook3. 2008-07-10 21:36:53 +00:00
ath Change the calling convention for ic_node_alloc to deal with 2008-06-07 18:38:02 +00:00
atkbdc Try to detect a Synaptics touchpad before IntelliMouse. Some touchpads will 2008-06-01 13:44:51 +00:00
auxio
bce - Added support for BCM5709 and BCM5716 controllers. 2008-06-13 01:16:37 +00:00
bfe Don't panic even if bus_dmamap_load(9) was failed. Just return 2008-04-30 02:49:24 +00:00
bge Improve the integration of BCM5906[M] support: 2008-05-14 21:00:27 +00:00
bktr Explicitly lock Giant in smbus_if methods in the bktr_i2c and iicsmb 2008-06-06 18:40:38 +00:00
bm Fix some locking and logic bugs pointed out by jhb. These fix driver detach and speed up data transfer by nearly a factor of 2. 2008-07-03 21:51:30 +00:00
buslogic Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
cardbus Make the PCI code aware of PCI domains (aka PCI segments) so we can 2007-09-30 11:05:18 +00:00
ce Fix instances of bogus #elsif directive. 2008-07-01 14:41:03 +00:00
ciss A number of significant enhancements to the ciss driver: 2008-07-11 21:20:51 +00:00
cm Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
cmx Commit cmx(4), a driver for Omnikey CardMan 4040 PCMCIA smartcard readers. 2008-03-06 08:09:45 +00:00
coretemp style(9): remove FreeBSD CVS ID from the initial license comment. 2008-05-14 10:02:25 +00:00
cp Do not set IFF_DEBUG directly from the driver. 2008-06-30 21:18:27 +00:00
cpufreq Probe CPUs after the PCI hierarchy on i386, amd64, and ia64. This allows 2008-03-10 22:18:07 +00:00
cs Improve the EEPROM parsing, based on finding a datasheet that describes 2008-07-09 16:47:55 +00:00
ct
ctau Do not set IFF_DEBUG directly from the driver. 2008-06-30 21:18:27 +00:00
cx Do not set IFF_DEBUG directly from the driver. 2008-06-30 21:18:27 +00:00
cxgb conditionally define PANIC_IF, remove 'unlikely' 2008-05-05 22:37:21 +00:00
cy
dc Ethernet hardware address stored in DC_AL_PAR0/DC_AL_PAR1 register 2008-06-08 02:52:26 +00:00
dcons Spell KDB_REQ_REBOOT correctly. 2008-05-05 08:25:46 +00:00
de During attach on some de(4) adapters the driver sends out a test packet as 2008-04-05 17:24:44 +00:00
digi
dpt Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
drm Add the i915 GME device to DRM. 2008-03-21 16:38:42 +00:00
ed Add two corega cards from NetBSD: FETEHR II PCC TXD and LAPCCTXD. 2008-07-06 06:19:19 +00:00
eisa
em Thanks to report from Neil Hoggarth I found a missing UNLOCK in 2008-05-21 21:06:17 +00:00
en Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
ep
esp The ESP driver isn't really MPSAFE, so don't mark it that it is. 2007-11-11 14:45:35 +00:00
et Don't leak DMA map if not freed. 2008-07-11 18:26:12 +00:00
ex Make ex(4) MPSAFE: 2008-06-13 12:14:22 +00:00
exca - Fix exca_(io|mem)_map() to return proper errno values. 2007-03-23 17:15:07 +00:00
fatm Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
fb Convert amd64 and i386 to share the atrtc device driver. 2008-04-14 08:00:00 +00:00
fdc The wakeup() line from the rev. 1.319 is wrong and reintroduces 2008-01-11 16:50:52 +00:00
fe - Use bus_foo() rather than bus_space_foo() and retire the bus tag and handle 2008-06-23 18:16:25 +00:00
firewire - Fix panic on detach. 2008-05-10 13:40:42 +00:00
flash Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
fxp Reuse the mbuf that was just retrieved from the receive ring if mbuf 2008-03-22 18:13:39 +00:00
gem o The FreeBSD bus_dmamap_sync(9) supports ored together flags for quite 2008-06-22 13:54:51 +00:00
hatm Give MEXTADD() another argument to make both void pointers to the 2008-02-01 19:36:27 +00:00
hifn Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
hme - Use the revamped code from the gem(4) PCI front-end, which 2008-04-26 14:17:21 +00:00
hptiop Update the hptiop driver to version 1.3. This adds support for the 4xxx 2008-02-03 16:07:12 +00:00
hptmv Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
hptrr Fix a mistake made during the import of the driver. Previous versions of 2008-03-08 18:06:48 +00:00
hwpmc Sign-extend the 48-bit AMD PMC counter before treating it to a 64-bit 2008-03-18 08:39:11 +00:00
ic Support for Freescale QUad Integrated Communications Controller. 2008-03-03 18:20:17 +00:00
ichsmb - Use bus_foo() rather than bus_space_foo() and remove bus space tag/handle 2008-06-06 18:29:56 +00:00
ichwd Add support for ICH8M. 2008-01-07 09:46:39 +00:00
ida
ie Rename the ie_EE16 module to just 'ie' so that at least one of the modules 2008-06-05 14:45:32 +00:00
ieee488 Remove the distinction between device minor and unit numbers. 2008-05-29 12:50:46 +00:00
if_ndis Fix a mutex LOR introduced by the conversion of if_ndis from spinlocks to 2008-07-09 00:10:55 +00:00
igb Opps,missed line in the fix... 2008-04-26 02:15:40 +00:00
iicbus Explicitly lock Giant in smbus_if methods in the bktr_i2c and iicsmb 2008-06-06 18:40:38 +00:00
iir Fix a buffer overflow in the processing of various SCSI commands. This likely 2008-01-09 20:02:56 +00:00
io Remove the unused major/minor numbers from iodev and memdev. 2008-06-25 07:45:31 +00:00
ipmi Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
ips
ipw Minor cleanup of vap create work: 2008-05-12 00:15:30 +00:00
iscsi/initiator Record the dependency of the iscsi initiator on cam. 2008-04-20 15:56:59 +00:00
isp Add missing locking for SBus controllers. 2007-11-05 11:22:18 +00:00
ispfw
iwi Change the calling convention for ic_node_alloc to deal with 2008-06-07 18:38:02 +00:00
iwn Change the calling convention for ic_node_alloc to deal with 2008-06-07 18:38:02 +00:00
ixgb Catch up the rest of the drivers with the ether_vlan_mtap modifications. 2007-03-04 03:38:08 +00:00
ixgbe Change include to reflect tcp_lro.h move. 2008-06-11 22:29:47 +00:00
jme Add driver support for PCIe adapters based on JMicron JMC250 2008-05-27 01:42:01 +00:00
joy
k8temp Fix comment: s/before/after. 2008-07-06 16:18:58 +00:00
kbd Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
kbdmux Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
le Correct the comments in am7990_intr() and am79900_intr(); it's not 2007-12-30 00:23:38 +00:00
led Remove the distinction between device minor and unit numbers. 2008-05-29 12:50:46 +00:00
lge Plug memory leak in jumbo buffer allocation failure path. 2008-03-05 05:36:09 +00:00
lmc Rename several functions in if_lmc with potential name collisions with 2008-07-05 16:39:24 +00:00
malo Minor cleanup of vap create work: 2008-05-12 00:15:30 +00:00
mc146818 Export mc146818_def_{read,write}() so the front-end can make use 2007-06-16 23:10:00 +00:00
mca
mcd
md Remove the distinction between device minor and unit numbers. 2008-05-29 12:50:46 +00:00
mem
mfi Tweak the output of event log messages from the controller: 2008-06-26 22:36:38 +00:00
mii Add RTL8211C(L) support. 2008-07-02 08:10:18 +00:00
mk48txx Revisit the watchdogs: Resetting the error to EINVAL after failing to set the 2007-03-27 21:03:37 +00:00
mlx
mly Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
mmc Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
mpt Rework how the mpt_user personality handles buffers for config pages. 2008-07-01 19:48:15 +00:00
mse
msk Move comments block 1 line up to remark on the setting 2008-03-11 02:39:52 +00:00
mxge Initialize if_baudrate using IF_Gbps() macro. 2008-04-02 13:59:43 +00:00
my Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
ncv
nfe Add support for MCP73 chips. 2008-04-10 01:25:09 +00:00
nge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
nmdm Don't enforce unique device minor number policy anymore. 2008-06-11 18:55:19 +00:00
nsp
null
nve Import rewritten nve device id's, which brings this more 2008-05-31 14:17:36 +00:00
nvram Convert amd64 and i386 to share the atrtc device driver. 2008-04-14 08:00:00 +00:00
nxge Merge Neterion if_nxge driver version 2.0.9.11230 with the following 2007-10-29 14:19:32 +00:00
ofw Expand kdb_alt_break a little, most commonly used with the option 2008-05-04 23:29:38 +00:00
patm Give MEXTADD() another argument to make both void pointers to the 2008-02-01 19:36:27 +00:00
pbio
pccard Merge from NetBSD's pcmciadev file (rev ~1.208 - 1.226) where 2008-07-06 06:17:39 +00:00
pccbb Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
pcf Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
pci Remove some remnant alpha hacks. 2008-04-26 14:13:48 +00:00
pdq Fix preprocessor code to check for a symbol being defined prior to checking 2007-06-08 01:49:04 +00:00
powermac_nvram Redefine bus_space_tag_t on PowerPC from a 32-bit integral to 2007-12-19 18:00:50 +00:00
ppbus Work around problems with the ppbus(4)'s interesting way of managing 2008-01-10 23:43:47 +00:00
ppc Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
pst
puc The SIIG 4 port serial card based on the Oxford OX16PCI954 is 2008-05-29 07:15:52 +00:00
quicc Support for Freescale QUad Integrated Communications Controller. 2008-03-03 18:20:17 +00:00
ral Change the calling convention for ic_node_alloc to deal with 2008-06-07 18:38:02 +00:00
random Correct a random value disclosure in random(4). 2007-11-29 16:06:12 +00:00
ray add defs just removed from ieee80211.h 2007-09-05 21:25:58 +00:00
rc
re Add driver support for RTL8102E and RTL8102EL which is the second 2008-07-09 01:58:18 +00:00
rndtest
rp Initialize DWBuf[3]. 2007-07-05 06:51:49 +00:00
safe bandaid crash as I have no time to research the issue and the driver 2007-11-03 19:10:14 +00:00
scc With rev 1.24 of sys/powerpc/powermac/macio.c, we now get a 2008-04-26 18:40:59 +00:00
scd
sf Fix build. 2008-01-21 09:51:28 +00:00
si Remove sicontrol(8)'s "ttystat". 2008-06-09 08:43:27 +00:00
sio Expand kdb_alt_break a little, most commonly used with the option 2008-05-04 23:29:38 +00:00
sk Prefer NULL over integer 0 for pointer type. 2008-02-14 01:25:01 +00:00
smbus - Store the device_t of the smbX device in the softc. 2008-06-06 18:45:32 +00:00
smc - Move ether_ifdetach earlier. 2008-06-17 05:48:42 +00:00
sn
snc Remove various and sundry NetBSDism's in preparation for adding locking. 2008-05-30 21:48:05 +00:00
snp Don't enforce unique device minor number policy anymore. 2008-06-11 18:55:19 +00:00
sound Correct SB600 AC97 Audio PCI ID, otherwise we will attach to the 2008-06-30 05:14:44 +00:00
speaker Move speaker a lot closer to style(9) 2008-05-15 01:22:48 +00:00
spibus
sr Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
stg
stge Use m_collapse(9) to collapse mbuf chains instead of relying on 2008-01-18 08:32:08 +00:00
streams Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
sym - Const'ify firmware and lookup-tables. 2008-05-15 20:27:18 +00:00
syscons Introduce a new lock, hostname_mtx, and use it to synchronize access 2008-07-05 13:10:10 +00:00
tdfx Add the module dependency on the mem(4) module. This will fix the module 2008-03-13 14:08:41 +00:00
ti Remove some remnant alpha hacks. 2008-04-26 14:13:48 +00:00
trm Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
tsec Convert TSEC watchdog to the new scheme. 2008-03-12 16:35:25 +00:00
twa Deferred interrupts don't work yet, disable them. 2007-10-12 16:51:22 +00:00
twe Add missing \n. 2008-02-12 08:58:26 +00:00
tx Make tx(4) MPSAFE 2008-06-10 17:59:43 +00:00
txp Read MII_ANAR register and get common denominator ability. 2007-11-16 10:32:10 +00:00
uart The XScale PXA255 has three generally ns16x50 compatible UARTs. One of the 2008-05-30 01:57:13 +00:00
ubsec Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
usb Remove NETISR_MPSAFE, which allows specific netisr handlers to be directly 2008-07-04 00:21:38 +00:00
utopia Fix a use-after-free. 2007-12-05 19:32:59 +00:00
vge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
vkbd Don't enforce unique device minor number policy anymore. 2008-06-11 18:55:19 +00:00
vr Teach vr(4) to use bus_dma(9) and major overhauling to handle link 2008-03-11 04:51:22 +00:00
vx - vx_stop() requires the driver lock to be held. 2008-04-24 22:51:43 +00:00
watchdog Revisit the watchdogs: Resetting the error to EINVAL after failing to set the 2007-03-27 21:03:37 +00:00
wds Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
wi Minor cleanup of vap create work: 2008-05-12 00:15:30 +00:00
wl Don't call bus_deactivate_resource() explicitly before calling 2007-03-21 03:38:37 +00:00
wpi - Fix compile if WPI_DEBUG is not defined 2008-06-23 15:40:56 +00:00
xe Style(9) xe(4). The MD5 sums are different, but comparing the dissassemblies 2008-06-04 20:26:57 +00:00