linux/drivers
Joonsoo Kim fe896d1878 mm: introduce page reference manipulation functions
The success of CMA allocation largely depends on the success of
migration and key factor of it is page reference count.  Until now, page
reference is manipulated by direct calling atomic functions so we cannot
follow up who and where manipulate it.  Then, it is hard to find actual
reason of CMA allocation failure.  CMA allocation should be guaranteed
to succeed so finding offending place is really important.

In this patch, call sites where page reference is manipulated are
converted to introduced wrapper function.  This is preparation step to
add tracepoint to each page reference manipulation function.  With this
facility, we can easily find reason of CMA allocation failure.  There is
no functional change in this patch.

In addition, this patch also converts reference read sites.  It will
help a second step that renames page._count to something else and
prevents later attempt to direct access to it (Suggested by Andrew).

Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-03-17 15:09:34 -07:00
..
accessibility
acpi libnvdimm for 4.6 2016-03-16 17:45:56 -07:00
amba
android
ata PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
atm
auxdisplay
base Power management and ACPI material for v4.6-rc1, part 1 2016-03-16 14:10:53 -07:00
bcma
block mm: introduce page reference manipulation functions 2016-03-17 15:09:34 -07:00
bluetooth
bus
cdrom
char PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
clk
clocksource One of the largest releases for KVM... Hardly any generic improvement, 2016-03-16 09:55:35 -07:00
connector
cpufreq Merge branch 'pm-cpufreq' 2016-03-14 14:22:03 +01:00
cpuidle
crypto
dca
devfreq
dio
dma Merge branch 'mm-pat-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-03-14 16:31:41 -07:00
dma-buf
edac EDAC queue for 4.6 2016-03-16 08:36:55 -07:00
eisa
extcon
firewire
firmware drivers/firmware/broadcom/bcm47xx_nvram.c: fix incorrect __ioread32_copy 2016-03-17 15:09:34 -07:00
fmc
fpga
gpio gpio: rcar: Add Runtime PM handling for interrupts 2016-02-25 15:46:27 +01:00
gpu PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
hid
hsi
hv
hwmon hwmon: Create an NSA320 hardware monitoring driver 2016-03-08 18:40:49 -08:00
hwspinlock
hwtracing
i2c i2c: designware: Add device HID for future AMD I2C controller 2016-03-10 21:34:47 +01:00
ide
idle
iio
infiniband Additional 4.5-rc6 fixes 2016-03-04 18:06:49 -08:00
input
iommu iommu/vt-d: Use BUS_NOTIFY_REMOVED_DEVICE in hotplug path 2016-02-29 23:55:16 +01:00
ipack
irqchip irqchip/irq-alpine-msi: Release the correct domain on error 2016-03-11 10:06:55 +01:00
isdn
leds leds: triggers: simplify led_trigger_store 2016-03-14 09:22:23 +01:00
lguest
lightnvm
macintosh
mailbox Merge branches 'acpi-processor' and 'acpi-cppc' 2016-03-14 14:20:33 +01:00
mcb
md dm: fix rq_end_stats() NULL pointer in dm_requeue_original_request() 2016-03-14 17:04:34 -04:00
media media updates for v4.6-rc1 2016-03-16 18:27:32 -07:00
memory
memstick
message mptbase: fixup error handling paths in mpt_attach() 2016-02-23 21:27:02 -05:00
mfd RTC for 4.6 2016-03-15 21:58:58 -07:00
misc PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
mmc
mtd Late MTD fix for v4.5: 2016-03-11 16:34:18 -08:00
net mm: introduce page reference manipulation functions 2016-03-17 15:09:34 -07:00
nfc
ntb
nubus
nvdimm Merge branch 'for-4.6/pfn' into libnvdimm-for-next 2016-03-09 17:15:43 -08:00
nvme nvme: fix max_segments integer truncation 2016-03-03 14:43:10 -07:00
nvmem
of PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
oprofile
parisc PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
parport
pci PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
pcmcia
perf
phy
pinctrl pinctrl: single: Use a separate lockdep class 2016-03-11 23:03:06 +07:00
platform
pnp PNP / ACPI: add ACPI_RESOURCE_TYPE_SERIAL_BUS as a valid type 2016-03-09 23:50:55 +01:00
power
powercap powercap/rapl: track lead cpu per package 2016-03-09 00:26:44 +01:00
pps
ps3
ptp Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-03-15 12:13:56 -07:00
pwm
rapidio
ras
regulator Merge remote-tracking branches 'regulator/topic/s5m8767' and 'regulator/topic/vexpress' into regulator-next 2016-03-13 15:20:14 +07:00
remoteproc
reset
rpmsg
rtc rtc: pcf2127: add pcf2129 device id 2016-03-14 17:08:41 +01:00
s390 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2016-03-16 10:47:45 -07:00
sbus
scsi SCSI misc on 20160315 2016-03-16 17:16:22 -07:00
sfi
sh Linux 4.5-rc6 2016-03-04 12:12:08 +01:00
sn
soc
spi Merge remote-tracking branches 'spi/topic/res', 'spi/topic/rockchip', 'spi/topic/sh', 'spi/topic/ti-qspi' and 'spi/topic/xilinx' into spi-next 2016-03-11 14:28:53 +07:00
spmi
ssb ssb: host_soc depends on sprom 2016-02-26 12:47:32 +02:00
staging media fixes for v4.5-rc7 2016-03-05 12:32:34 -08:00
target target: Drop incorrect ABORT_TASK put for completed commands 2016-03-05 20:24:47 -08:00
tc
thermal
thunderbolt
tty
uio
usb media updates for v4.6-rc1 2016-03-16 18:27:32 -07:00
uwb
vfio vfio: fix ioctl error handling 2016-02-28 07:38:52 -07:00
vhost vhost: fix error path in vhost_init_used() 2016-03-02 17:01:49 +02:00
video fbdev changes for 4.6 2016-03-16 18:37:20 -07:00
virt
virtio virtio_balloon: export 'available' memory to balloon statistics 2016-03-17 15:09:34 -07:00
vlynq
vme
w1
watchdog Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2016-03-01 08:57:34 -08:00
xen xen_balloon: support memory auto onlining policy 2016-03-15 16:55:16 -07:00
zorro
Kconfig
Makefile