freebsd-skq/sys/dev
Alan Cox c869e67208 Introduce a new mechanism for relocating virtual pages to a new physical
address and use this mechanism when:

1. kmem_alloc_{attr,contig}() can't find suitable free pages in the physical
   memory allocator's free page lists.  This replaces the long-standing
   approach of scanning the inactive and inactive queues, converting clean
   pages into PG_CACHED pages and laundering dirty pages.  In contrast, the
   new mechanism does not use PG_CACHED pages nor does it trigger a large
   number of I/O operations.

2. on 32-bit MIPS processors, uma_small_alloc() and the pmap can't find
   free pages in the physical memory allocator's free page lists that are
   covered by the direct map.  Tested by: adrian

3. ttm_bo_global_init() and ttm_vm_page_alloc_dma32() can't find suitable
   free pages in the physical memory allocator's free page lists.

In the coming months, I expect that this new mechanism will be applied in
other places.  For example, balloon drivers should use relocation to
minimize fragmentation of the guest physical address space.

Make vm_phys_alloc_contig() a little smarter (and more efficient in some
cases).  Specifically, use vm_phys_segs[] earlier to avoid scanning free
page lists that can't possibly contain suitable pages.

Reviewed by:	kib, markj
Glanced at:	jhb
Discussed with:	jeff
Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D4444
2015-12-19 18:42:50 +00:00
..
aac
aacraid
acpi_support
acpica Disable suspend when we're shutting down. This solves the "tell FreeBSD 2015-10-01 10:52:26 +00:00
adb
adlink
advansys
ae
age
agp
aha
ahb
ahci Add support for a generic AHCI attachment. This allows us to attach to a 2015-12-03 11:24:11 +00:00
aic Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
aic7xxx Fix LDADD/DPADD that should be LIBADD. 2015-12-04 03:17:47 +00:00
alc
ale
alpm
altera
amdpm
amdsbwd
amdsmb
amdtemp
amr
an Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
arcmsr Update arcmsr(4) to 1.30.00.00 in order to add support of 2015-12-02 05:35:04 +00:00
asmc
ata Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
ath fix ht/40 configuration for ar9331 (hornet). 2015-11-30 06:26:59 +00:00
atkbdc When exiting two-finger scroll the Synaptics device may report a jump in 2015-12-14 11:13:50 +00:00
auxio
bce
beri
bfe
bge
bktr
bm
buslogic
bvm
bwi net80211: move ieee80211_free_node() call on error from ic_raw_xmit() to ieee80211_raw_output(). 2015-10-12 04:55:20 +00:00
bwn net80211: remove hardcoded slot time durations from drivers 2015-12-13 20:48:24 +00:00
bxe Add support for reading device temperature 2015-10-12 20:21:17 +00:00
cadence
cardbus
cas
ce
cesa
cfe
cfi
ciss
cm
cmx Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
coretemp
cp
cpuctl
cpufreq
cs Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
ct
ctau
cx
cxgb Rename linuxapi[.ko] into linuxkpi[.ko], to reflect that it is a 2015-10-22 09:50:45 +00:00
cxgbe Fix RSS build. 2015-12-05 10:10:18 +00:00
cy
cyapa
dc
dcons
de Fix build when KTR is defined but not KTR_TULIP. 2015-11-20 09:37:04 +00:00
digi
dpms
dpt
drm
drm2 Introduce a new mechanism for relocating virtual pages to a new physical 2015-12-19 18:42:50 +00:00
dwc
e1000 Add support for SCTP checksum offloading for the 82580 controller 2015-11-10 10:55:57 +00:00
ed Add PNP info for ISA and PCI to the ed driver to prove design. 2015-12-11 05:28:07 +00:00
eisa
en
ep Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
esp
et
etherswitch [arswitch] bump the number of ports on the ar934x internal switch. 2015-12-15 04:46:48 +00:00
ex Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
exca
fatm
fb
fdc Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
fdt SIMPLEBUS: Don't panic if child device doesn't have devinfo set. 2015-12-13 09:05:55 +00:00
fe Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
ffec
filemon Remove unneeded mutex.h include, missed in r287155. 2015-11-04 22:49:34 +00:00
firewire
flash Add support for s25fl256s. I /think/ it's a 32mb NOR flash part. 2015-11-05 03:13:10 +00:00
fxp
gem
glxiic
glxsb
gpio
gxemul
hatm
hifn
hme
hpt27xx
hptiop
hptmv hptmv(4): Fix broken sysctl(9) API assumptions 2015-11-07 23:05:23 +00:00
hptnr
hptrr
hwpmc More fixes in the various intel processors, fixing missing 2015-12-11 01:21:32 +00:00
hyperv hyperv/kvp: wake up the daemon if it's sleeping due to poll() 2015-12-15 11:20:20 +00:00
ic
ichiic
ichsmb
ichwd
ida
ie
if_ndis Fix regression in if_ndis in r280347. 2015-12-17 21:01:19 +00:00
iicbus Add FDT compatibility to the icee driver. 2015-10-22 01:04:31 +00:00
iir
intpm
io
ioat ioat(4): Add an API to get HW revision 2015-12-17 23:21:37 +00:00
ipmi
ips
ipw
isci
iscsi Fix panic on shutdown due to iscsi event priority 2015-12-07 02:56:08 +00:00
iscsi_initiator
isl
ismt
isp Add MSI-X support for 26XX cards. 2015-12-15 04:51:50 +00:00
ispfw Rip off target mode support for parallel SCSI QLogic adapters. 2015-11-23 10:06:19 +00:00
iwi net80211: WME callback cleanup in various drivers 2015-11-05 17:58:18 +00:00
iwm Fix IEEE80211_ADDR_COPY() usage. 2015-10-22 01:36:16 +00:00
iwn iwn(4): various simple fixes 2015-11-05 22:44:36 +00:00
ixgb
ixgbe Add support for sysctl knobs to live tune the per interrupt rx/tx packet 2015-10-13 17:34:18 +00:00
ixl Fix ixl debug sysctls panic 2015-11-12 09:45:35 +00:00
jme
joy
kbd
kbdmux
ksyms
le
led
lge
lmc
malo net80211: move ieee80211_free_node() call on error from ic_raw_xmit() to ieee80211_raw_output(). 2015-10-12 04:55:20 +00:00
mbox
mc146818
mca
mcd
md A change to KPI of vm_pager_get_pages() and underlying VOP_GETPAGES(). 2015-12-16 21:30:45 +00:00
mem
mfi
mge Improve style in mge driver 2015-10-25 22:20:13 +00:00
mii Disable EEE(Energy Efficient Ethernet) for RTL8211F PHY. 2015-12-03 05:27:39 +00:00
mk48txx
mlx
mlx5 Update the mlx5 shared driver code to the latest version, which 2015-12-07 13:16:48 +00:00
mly
mmc Flag sysctl hw.mmc.debug as a tunable, since often you want to debug the 2015-12-18 01:32:43 +00:00
mn
mpr Don't retry SAS commands in response to protocol errors 2015-12-14 19:40:47 +00:00
mps Don't retry SAS commands in response to protocol errors 2015-12-14 19:40:47 +00:00
mpt
mrsas
mse
msk
mvs
mwl net80211: move ieee80211_free_node() call on error from ic_raw_xmit() to ieee80211_raw_output(). 2015-10-12 04:55:20 +00:00
mxge
my
nand No need to test command values this way. There can be only one, even 2015-12-18 05:55:24 +00:00
ncr
ncv Use the right product names. 2015-12-11 15:24:29 +00:00
netfpga10g/nf10bmac
netmap
nfe
nfsmb
nge
nmdm
nsp Use the right product names. 2015-12-11 15:24:29 +00:00
ntb if_ntb: Don't roundup MW size to full BAR size unnecessarily 2015-12-03 17:22:55 +00:00
null
nvd Limit stripesize reported from nvd(4) to 4K 2015-12-11 02:06:03 +00:00
nvme Limit stripesize reported from nvd(4) to 4K 2015-12-11 02:06:03 +00:00
nvram
nvram2env
nxge Fix what looks like a consistent copy&paste error. 2015-09-27 12:19:36 +00:00
oce
ofw Create a simplebus PNP info wrapper. 2015-12-18 05:29:22 +00:00
otus net80211: remove hardcoded slot time durations from drivers 2015-12-13 20:48:24 +00:00
ow
patm Fix LDADD/DPADD that should be LIBADD. 2015-12-04 03:17:47 +00:00
pbio
pccard Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
pccbb
pcf Use IIC_EBUSBSY and IIC_BUSERR status values consistantly across all drivers. 2015-10-09 22:49:50 +00:00
pci Update the handling of interrupts on the generic PCIe driver: 2015-12-14 17:08:40 +00:00
pcn
pdq
pms
powermac_nvram
ppbus
ppc
proto
psci
pst
pty
puc
qlxgb
qlxgbe ql_hw.c: fixed error code INJCT_HEARTBEAT_FAILURE 2015-10-20 17:27:11 +00:00
qlxge
quicc
ral net80211: remove hardcoded slot time durations from drivers 2015-12-13 20:48:24 +00:00
random Fix printf-like formats for KASSERT. 2015-10-05 10:45:52 +00:00
rc
rccgpio
re With r290566 in place it turned out that WOL previously only worked by 2015-11-16 21:13:57 +00:00
rl - Although it doesn't make a whole lot of sense to enable RX and TX 2015-11-09 00:19:04 +00:00
rndtest
rp
rt
safe
sbni
scc
scd
sdhci Move the DRIVER_MODULE() statements that declare mmc(4) to be a child of 2015-12-14 01:09:25 +00:00
sec
sf
sfxge sfxge: unify MCDI response polling 2015-12-11 07:20:33 +00:00
sge
si
siba
siis
sio
sis
sk
smbus
smc
sn Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
snc Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
snp
sound Create a USB_PNP_INFO and use it to export the existing PNP 2015-12-11 05:28:00 +00:00
speaker
spibus
ste
stg Use the right product names. 2015-12-11 15:24:29 +00:00
stge
streams
sym Add the arm64 define. 2015-10-08 17:32:17 +00:00
syscons
tdfx
terasic
ti
tl
tpm
trm
tsec
twa
twe
tws
tx
txp
uart Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
ubsec
usb Flag the first port on a Sheevaplug ftdi serial device as jtag. 2015-12-16 20:54:28 +00:00
utopia
vge
viapm
viawd
videomode
virtio
vkbd
vmware/vmxnet3 Only use a power of 2 for the number of receive and transmit queues. 2015-11-16 21:36:50 +00:00
vnic Mark the thunder_mdio_fdt driver as early, the bgx needs it to exist so it 2015-11-06 14:40:51 +00:00
vr
vt
vte
vx
vxge
watchdog
wb
wbwd
wds
wi Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
wl
wpi wpi, rum and urtwn: update copyright headers 2015-12-13 22:08:27 +00:00
wtap wtap: do not include <sys/types.h> when <sys/param.h> is already included 2015-12-13 20:53:51 +00:00
xe Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building 2015-12-11 05:27:56 +00:00
xen xen: fix dropping bitmap IPIs during resume 2015-11-18 18:11:19 +00:00
xl