1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-19 10:53:58 +00:00
freebsd/sys/dev
Attilio Rao c7aebda8a1 The soft and hard busy mechanism rely on the vm object lock to work.
Unify the 2 concept into a real, minimal, sxlock where the shared
acquisition represent the soft busy and the exclusive acquisition
represent the hard busy.
The old VPO_WANTED mechanism becames the hard-path for this new lock
and it becomes per-page rather than per-object.
The vm_object lock becames an interlock for this functionality:
it can be held in both read or write mode.
However, if the vm_object lock is held in read mode while acquiring
or releasing the busy state, the thread owner cannot make any
assumption on the busy state unless it is also busying it.

Also:
- Add a new flag to directly shared busy pages while vm_page_alloc
  and vm_page_grab are being executed.  This will be very helpful
  once these functions happen under a read object lock.
- Move the swapping sleep into its own per-object flag

The KPI is heavilly changed this is why the version is bumped.
It is very likely that some VM ports users will need to change
their own code.

Sponsored by:	EMC / Isilon storage division
Discussed with:	alc
Reviewed by:	jeff, kib
Tested by:	gavin, bapt (older version)
Tested by:	pho, scottl
2013-08-09 11:11:11 +00:00
..
aac - Fix a bug in the MSI allocation logic so an MSI is also employed if a 2013-08-06 19:14:02 +00:00
aacraid Unbreak ia64 tinderbox: 64-bit support was made conditional upon 2013-05-26 22:11:13 +00:00
acpi_support Consistently cast ACPICA 64-bit integer types when we print them. 2013-06-26 23:52:10 +00:00
acpica Workaround some broken BIOSes that specify edge-sensitive but active-low 2013-07-16 14:42:16 +00:00
adb Use uiomove return value instead of returning 0. 2012-11-13 06:03:43 +00:00
adlink Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
advansys Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ae Avoid magic constant. 2013-07-17 01:34:25 +00:00
age Be sure to actually decrement the "count" parameter for each processed 2013-06-17 22:59:47 +00:00
agp The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
aha Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ahb Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ahci Decode some bits defined in AHCI 1.3.1 Device Sleep Technical Proposal. 2013-07-25 10:29:40 +00:00
aic Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
aic7xxx Match function definition to declaration and call-site. 2013-07-25 09:30:00 +00:00
alc Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ale Make sure to stop both TX and RX MACs in ale_stop_mac(). Previously 2012-12-17 06:01:57 +00:00
altera Partial MFC of change 228122: 2013-04-30 18:29:05 +00:00
amdsbwd Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
amdtemp Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
amr Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
an Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
arcmsr Refresh vendor driver version which fixes command queue 2013-07-06 01:46:58 +00:00
asmc Give device_printf format string to pacify clang warning. 2012-11-09 14:58:26 +00:00
asr
ata Add missing NULL check after malloc(M_NOWAIT). 2013-07-25 09:12:46 +00:00
ath Don't log anything if npkts == 0. 2013-06-29 19:57:57 +00:00
atkbdc Remove a bogus re-assignment. 2013-05-13 20:03:59 +00:00
auxio Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
bce Fix triggering false watchdog timeout when controller is in PAUSE 2013-06-30 05:12:18 +00:00
bfe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
bge Fix for IPv4 fragment packets treated as RMCP. 2013-08-09 01:15:32 +00:00
bktr Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
bm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
buslogic Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
bvm Probe for existence of the bvm debug port instead of just assuming that it is 2012-10-27 22:54:23 +00:00
bwi Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
bwn Fixing a clang warning about using uninitialized variable. 2013-05-06 21:57:44 +00:00
bxe This fixes a out-of-order problem with several 2013-02-07 15:20:54 +00:00
cadence Bring copyright changes with the agreement of Thomas Skibo. 2013-04-28 07:00:36 +00:00
cardbus
cas - Correct mispellings of the word necessary 2013-04-17 11:42:40 +00:00
ce Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
cesa Move initialization of CESA decoding windows from common section 2013-05-06 13:34:36 +00:00
cfe
cfi Use direct custom implementations instead of g_handleattr() for CFI and NAND 2013-06-12 12:51:43 +00:00
ciss Update ciss(4) with new models of raid controllers from HP 2013-08-06 03:17:01 +00:00
cm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
cmx
coretemp Mark the coretemp(4) sysctls as MPSAFE, ensuring that Giant won't be held 2013-02-18 22:47:16 +00:00
cp Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
cpuctl Increase the microcode max size to 16K to accomodate more recent Intel 2013-07-03 20:29:15 +00:00
cpufreq Add a quirk to disable this driver for certain older laptops with an ICH2 2013-02-26 18:30:47 +00:00
cs Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ct Use ANSI prototype to fix build with clang. 2012-11-10 14:58:06 +00:00
ctau Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
cx Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
cxgb Remove unnecessary #include's. 2013-06-02 18:10:16 +00:00
cxgbe Display temperature sensor data. Shows -1 if sensor not 2013-08-02 18:05:42 +00:00
cy
dc Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
dcons MFcalloutng: 2013-02-19 18:22:25 +00:00
de Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
digi Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
dpms
dpt options DPT_HANDLE_TIMEOUTS hasn't worked since dpt(4) was converted to CAM 2013-04-10 23:20:09 +00:00
drm Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
drm2 The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
e1000 Make the various driver MSIX setup routines fallback to MSI more 2013-08-06 21:01:38 +00:00
ed Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
eisa
en Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ep Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
esp
et Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
etherswitch Add the support for 802.1q and port based vlans for arswitch. 2013-07-23 14:24:22 +00:00
ex Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
exca
fatm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
fb Limit the amount of video memory we map for the driver to the maximum value. 2013-03-27 18:06:28 +00:00
fdc Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
fdt Add basic support for FDT to i386 & amd64. This change includes: 2013-05-21 03:05:49 +00:00
fe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
filemon - Use pget(PGET_CANDEBUG | PGET_NOTWEXIT) to determine if the specified 2013-08-06 02:14:30 +00:00
firewire MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
flash Add support for two new winbond SPI flash parts. 2013-06-08 20:12:14 +00:00
fxp Avoid unnecessary controller reinitialization by checking driver 2013-06-10 07:31:49 +00:00
gem Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
glxiic This isn't functionally identical. In some cases a hint to disable 2012-10-22 13:06:09 +00:00
glxsb
gpio Style fixes 2012-11-23 19:20:38 +00:00
gxemul Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
hatm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
hifn Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
hme Avoid controller reinitialization which could be triggered by 2013-07-10 06:46:46 +00:00
hpt27xx Import HighPoint DC Series Data Center HBA (DC7280 and R750) driver. 2013-07-06 07:49:41 +00:00
hptiop Add PCI IDs for HighPoint RocketRAID 4521, 3620, 3622 and 3640 2013-07-05 23:10:02 +00:00
hptmv Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
hptnr Merge from hpt27xx, r249468 (mav): 2013-07-12 21:36:29 +00:00
hptrr Silence warning from clang: 2013-04-28 20:55:45 +00:00
hwpmc Relax the vm object locking. Use a read lock. 2013-06-05 17:00:10 +00:00
ic Add support for A10 uart. 2013-03-01 01:42:31 +00:00
ichsmb Add new Coleto Creek device support: SATA, SMBus, and Watchdog devices. 2013-07-19 21:37:40 +00:00
ichwd Add new Coleto Creek device support: SATA, SMBus, and Watchdog devices. 2013-07-19 21:37:40 +00:00
ida
ie Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ieee488
if_ndis Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
iicbus Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
iir Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
io
ipmi Check for ipmi_attached in ipmi_isa_probe as a suggested alternative to 2013-07-30 18:54:24 +00:00
ips Improving r249461 by providing a better way to handle the clang warning. 2013-04-17 21:21:27 +00:00
ipw Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
isci For ATA_PASSTHROUGH commands, pretend isci(4) supports multiword DMA 2013-06-26 22:08:45 +00:00
iscsi/initiator MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
isf Merge Perforce changeset 219952 to head: 2013-01-13 16:57:11 +00:00
isp When fiddling with options of which registers to copy out for 2013-07-13 21:24:25 +00:00
ispfw
iwi Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
iwn Cap the number of streams supported to two for now. 2013-08-08 05:52:41 +00:00
ixgb Remove redundant definitions to appease tinderbox. 2013-07-09 18:15:59 +00:00
ixgbe Make the various driver MSIX setup routines fallback to MSI more 2013-08-06 21:01:38 +00:00
jme Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
joy
kbd
kbdmux This isn't functionally identical. In some cases a hint to disable 2012-10-22 13:06:09 +00:00
ksyms
le Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
led MFcalloutng: 2013-02-19 19:25:50 +00:00
lge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
lindev
lmc Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
malo Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
mbox Add a mailbox interface. 2013-07-07 19:47:22 +00:00
mc146818
mca
mcd The other giant locked storage drivers have removed splbio(), for the 2013-02-21 02:34:04 +00:00
md The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
mem Add new privileges, PRIV_KMEM_READ and PRIV_KMEM_WRITE, used in opening 2013-07-05 21:31:16 +00:00
mfi Remove forced timeout of in-flight commands from mfi_timeout. 2013-07-01 17:57:22 +00:00
mge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
mii Recognize BCM5725C PHY. 2013-07-20 07:24:01 +00:00
mk48txx
mlx Remove FreeBSD 4.x compat shims. Verified by md5. 2012-09-26 14:17:14 +00:00
mly MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
mmc Use meaningful names when creating mmc/sd threads. 2013-07-09 03:00:06 +00:00
mn Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
mps Rate limit the 'out of chain frame' messages to once per 60 seconds. 2013-08-09 01:10:33 +00:00
mpt Flag mpt(4) as supporting unmapped I/O; all necessary conversion actually 2013-06-24 21:27:15 +00:00
mse
msk - Merge from r249476: Ensure that PCI bus BUS_GET_DMA_TAG() method sees 2013-05-30 12:16:55 +00:00
mvs Replicate r242422 from ata(4) to mvs(4): 2013-06-12 18:08:11 +00:00
mwl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
mxge - Correct mispellings of word resource 2013-04-17 11:47:32 +00:00
my Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
nand Use direct custom implementations instead of g_handleattr() for CFI and NAND 2013-06-12 12:51:43 +00:00
ncv Remove some more NetBSD compat shims and other unused bits from these 2012-09-10 18:49:49 +00:00
netmap - fix a bug in the previous commit that was dropping the last packet 2013-06-05 17:27:59 +00:00
nfe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
nge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
nmdm
nsp Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
ntb Add a new driver to support the Intel Non-Transparent Bridge(NTB). 2013-04-29 22:48:53 +00:00
null Provide a device name in the sysctl tree for programs to query the 2012-11-01 17:01:05 +00:00
nvd Add message when nvd disks are attached and detached. 2013-07-19 21:40:57 +00:00
nve Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
nvme Add message when nvd disks are attached and detached. 2013-07-19 21:40:57 +00:00
nvram
nvram2env Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
nxge Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
oce Update driver with recent vendor improvements, most notably support 2013-07-06 08:30:45 +00:00
ofw
patm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
pbio
pccard
pccbb
pcf
pci Properly handle I/O windows in bridges with the ISA enable bit set. These 2013-07-18 15:17:11 +00:00
pcn Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
pdq Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
powermac_nvram
ppbus Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
ppc Fix build. 2013-02-21 12:40:52 +00:00
pst
pty
puc Clean up -Wheader-guard warnings. 2013-06-17 20:11:04 +00:00
qlxgb No need to set if_mtu since it automatically updated by ether_ifattach(). 2013-05-08 18:25:46 +00:00
qlxgbe Port 0 needs to wait for ACK only if it issued the RESET. 2013-07-03 17:57:35 +00:00
qlxge Add Qlogic 10Gb Ethernet Driver for Qlogic 8100 Series CNA Adapter 2013-06-25 17:50:22 +00:00
quicc
ral Implement basic 802.11n awareness in the PHY and AMRR rate control code. 2013-07-04 21:16:49 +00:00
random Back out r253779 & r253786. 2013-07-31 17:21:18 +00:00
rc
re Correct comment typos. 2013-06-28 14:41:06 +00:00
rndtest - Correct mispellings of the word occurrence 2013-04-17 11:40:10 +00:00
rp
rt - Use the consistenly PHY-specific reset routine PHY_RESET() rather than 2013-06-14 05:36:47 +00:00
safe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
sbni Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
scc Make r253899 compile. 2013-08-03 21:24:52 +00:00
scd
sdhci Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port. 2013-04-27 22:38:29 +00:00
sec
sf Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
sfxge Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
sge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
si Remove incorrect comment about splsoftclock. 2013-02-21 07:19:50 +00:00
siba
siis Make siis(4) and mvs(4) send bus_get_dma_tag() requests to parent buses 2013-04-18 12:43:06 +00:00
sio Add support for CIR1000 - Cirrus Logic V34 to the sio driver 2012-11-13 20:38:55 +00:00
sis r119712 introduced SIS_TYPE_83816 but it was not actually set in 2013-03-18 04:46:17 +00:00
sk - Merge from r249476: Ensure that PCI bus BUS_GET_DMA_TAG() method sees 2013-05-30 12:16:55 +00:00
smbus
smc Disable interrupts in filter in order to avoid interrupt storm and 2012-12-13 03:33:01 +00:00
sn Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
snc Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
snp
sound snd_ds1(4): Fix order of arguments for stereo/16bit mode 2013-07-25 09:29:48 +00:00
speaker
spibus
ste Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
stg Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
stge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
streams Revert previous commit... 2012-10-10 08:36:38 +00:00
sym - Flag sym(4) as supporting unmapped I/O; all necessary conversion actually 2013-06-05 01:22:59 +00:00
syscons Reload font when syscons(4) is resuming without switching mode. 2013-07-17 23:29:56 +00:00
tdfx Revert previous commit... 2012-10-10 08:36:38 +00:00
terasic Merge Perforce changeset 219952 to head: 2013-01-13 16:57:11 +00:00
ti Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
tl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
tpm
trm Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
tsec Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
twa MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
twe
tws Fix typo in the definition of the TWS_DATA_CCB. 2013-05-23 16:37:43 +00:00
tx Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
txp Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
uart Set the device description after we call uart_probe(). In uart_probe() 2013-07-25 16:57:27 +00:00
ubsec Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
usb Cleanup the allocations when the attachment fails. 2013-07-31 06:05:34 +00:00
utopia Revert previous commit... 2012-10-10 08:36:38 +00:00
vge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
viawd
virtio Merge virtio_scsi change from projects/virtio 2013-07-04 18:00:27 +00:00
vkbd
vr Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
vte Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
vx Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
vxge Clean up -Wheader-guard warnings. 2013-06-17 20:11:04 +00:00
watchdog Fix watchdog pretimeout. 2013-07-27 20:47:01 +00:00
wb Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
wbwd Add ID for Nuvoton WPCM450RA0BX found on Supermicro X9SCA-F motherboards. 2013-01-11 10:22:09 +00:00
wds Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
wi Add the macio attachment for wi(4). Partially obtained from NetBSD. 2013-07-31 01:13:29 +00:00
wl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
wpi Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
wtap wtap should not set the IEEE80211_F_DATAPAD flag; 2012-12-18 16:15:20 +00:00
xe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
xen Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
xl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00