Mel Gorman
0614002bb5
netvm: propagate page->pfmemalloc from skb_alloc_page to skb
...
The skb->pfmemalloc flag gets set to true iff during the slab allocation
of data in __alloc_skb that the the PFMEMALLOC reserves were used. If
page splitting is used, it is possible that pages will be allocated from
the PFMEMALLOC reserve without propagating this information to the skb.
This patch propagates page->pfmemalloc from pages allocated for fragments
to the skb.
It works by reintroducing and expanding the skb_alloc_page() API to take
an skb. If the page was allocated from pfmemalloc reserves, it is
automatically copied. If the driver allocates the page before the skb, it
should call skb_propagate_pfmemalloc() after the skb is allocated to
ensure the flag is copied properly.
Failure to do so is not critical. The resulting driver may perform slower
if it is used for swap-over-NBD or swap-over-NFS but it should not result
in failure.
[davem@davemloft.net: API rename and consistency]
Signed-off-by: Mel Gorman <mgorman@suse.de>
Acked-by: David S. Miller <davem@davemloft.net>
Cc: Neil Brown <neilb@suse.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Christie <michaelc@cs.wisc.edu>
Cc: Eric B Munson <emunson@mgebm.net>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-07-31 18:42:46 -07:00
..
accessibility
acpi
Merge branch 'linux-next' of git://cavan.codon.org.uk/platform-drivers-x86
2012-07-30 11:54:53 -07:00
amba
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
2012-07-27 15:14:26 -07:00
ata
ata/pata_arasan: remove conditional compilation of clk code
2012-07-30 17:25:12 -07:00
atm
auxdisplay
base
mm: factor out memory isolate functions
2012-07-31 18:42:45 -07:00
bcma
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
2012-07-27 11:15:03 -04:00
block
virtio-blk: allow toggling host cache between writeback and writethrough
2012-07-30 13:30:52 +09:30
bluetooth
cdrom
char
Virtio patches, mainly hotplugging fixes.
2012-07-30 13:24:37 -07:00
clk
clk: validate pointer in __clk_disable()
2012-07-30 17:25:13 -07:00
clocksource
arm-soc: new SoC support
2012-07-23 16:31:31 -07:00
connector
cpufreq
ARM: arm-soc soc updates, take 2
2012-07-30 09:45:53 -07:00
cpuidle
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
2012-07-26 14:28:55 -07:00
crypto
ARM: SoC fixes
2012-07-26 20:29:52 -07:00
dca
devfreq
dio
dma
Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma
2012-07-24 17:12:54 -07:00
edac
Merge branch 'devel'
2012-07-29 21:11:05 -03:00
eisa
extcon
MFD bits for the 3.6 merge window.
2012-07-30 12:41:17 -07:00
firewire
- Small fixes and optimizations.
2012-07-30 09:32:39 -07:00
firmware
firmware_map: make firmware_map_add_early() argument consistent with firmware_map_add_hotplug()
2012-07-30 17:25:17 -07:00
gpio
MFD bits for the 3.6 merge window.
2012-07-30 12:41:17 -07:00
gpu
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
2012-07-30 10:06:23 -07:00
hid
Merge branch 'next' into for-linus
2012-07-24 22:43:04 -07:00
hsi
hv
hwmon
Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
2012-07-30 10:10:26 -07:00
hwspinlock
i2c
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
2012-07-30 19:03:41 -07:00
ide
idle
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
2012-07-26 14:28:55 -07:00
ieee802154
iio
infiniband
InfiniBand/RDMA changes for the 3.6 merge window:
2012-07-24 13:56:26 -07:00
input
MFD bits for the 3.6 merge window.
2012-07-30 12:41:17 -07:00
iommu
IOMMU Updates for Linux v3.6-rc1
2012-07-24 16:24:11 -07:00
isdn
leds
leds-lp8788: forgotten unlock at lp8788_led_work
2012-07-27 08:16:07 +08:00
lguest
macintosh
md
Merge branch 'akpm' (Andrew's patch-bomb)
2012-07-30 17:25:34 -07:00
media
drivers/media/video/v4l2-ioctl.c: fix build
2012-07-31 18:42:39 -07:00
memory
memstick
message
drivers/message/i2o/i2o_config.c: bound allocation
2012-07-30 17:25:17 -07:00
mfd
MFD bits for the 3.6 merge window.
2012-07-30 12:41:17 -07:00
misc
Merge branch 'akpm' (Andrew's patch-bomb)
2012-07-30 17:25:34 -07:00
mmc
ARM: SoC fixes
2012-07-26 20:29:52 -07:00
mtd
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
2012-07-30 11:45:52 -07:00
net
netvm: propagate page->pfmemalloc from skb_alloc_page to skb
2012-07-31 18:42:46 -07:00
nfc
nubus
of
Devicetree updates for 3.6
2012-07-24 14:07:22 -07:00
oprofile
parisc
PCI changes for the 3.6 merge window:
2012-07-24 16:17:07 -07:00
parport
pci
PCI changes for the 3.6 merge window:
2012-07-24 16:17:07 -07:00
pcmcia
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
2012-07-27 15:14:26 -07:00
pinctrl
Pin control changes for v3.6:
2012-07-24 14:05:46 -07:00
platform
Merge branch 'linux-next' of git://cavan.codon.org.uk/platform-drivers-x86
2012-07-30 11:54:53 -07:00
pnp
power
Driver core merge for 3.6-rc1
2012-07-26 11:25:33 -07:00
pps
pps: return PTR_ERR on error in device_create
2012-07-30 17:25:21 -07:00
ps3
ptp
pwm
pwm: pwm-tiehrpwm: PWM driver support for EHRPWM
2012-07-26 07:45:20 +02:00
rapidio
regulator
regulator: Fix an s5m8767 build failure
2012-07-31 00:51:09 +02:00
remoteproc
A batch of remoteproc patches for 3.6:
2012-07-26 16:19:08 -07:00
rpmsg
A batch of remoteproc patches for 3.6:
2012-07-26 16:19:08 -07:00
rtc
Merge branch 'akpm' (Andrew's patch-bomb)
2012-07-30 17:25:34 -07:00
s390
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2012-07-26 18:09:01 -07:00
sbus
scsi
Merge branch 'master' [vanilla Linus master] into libata-dev.git/upstream
2012-07-25 15:58:48 -04:00
sfi
sh
Merge branch 'common/pinctrl' into sh-latest
2012-07-20 16:42:59 +09:00
sn
spi
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
2012-07-30 11:45:52 -07:00
ssb
staging
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
2012-07-30 19:03:41 -07:00
target
iscsi-target: Drop bogus struct file usage for iSCSI/SCTP
2012-07-21 02:44:13 -07:00
tc
thermal
Merge branches 'acpi_pad', 'acpica', 'apei-bugzilla-43282', 'battery', 'cpuidle-coupled', 'cpuidle-tweaks', 'intel_idle-ivb', 'ost', 'red-hat-bz-772730', 'thermal', 'thermal-spear' and 'turbostat-v2' into release
2012-07-26 00:03:58 -04:00
tty
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
2012-07-27 15:14:26 -07:00
uio
usb
netvm: propagate page->pfmemalloc from skb_alloc_page to skb
2012-07-31 18:42:46 -07:00
uwb
vhost
vhost: make vhost work queue visible
2012-07-22 01:22:23 +03:00
video
Merge branch 'akpm' (Andrew's patch-bomb)
2012-07-30 17:25:34 -07:00
virt
drivers/virt: add ioctl for 32-bit compat on 64-bit to fsl-hv-manager
2011-10-14 02:56:02 -05:00
virtio
[SCSI] virtio-scsi: Add vdrv->scan for post VIRTIO_CONFIG_S_DRIVER_OK LUN scanning
2012-07-20 08:59:03 +01:00
vlynq
vme
w1
Driver core merge for 3.6-rc1
2012-07-26 11:25:33 -07:00
watchdog
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
2012-07-27 15:14:26 -07:00
xen
PCI changes for the 3.6 merge window:
2012-07-24 16:17:07 -07:00
zorro
Kconfig
Makefile