Michal Hocko
c76adee347
mm, thp, proc: report THP eligibility for each vma
...
[ Upstream commit 7635d9cbe8327e131a1d3d8517dc186c2796ce2e ]
Userspace falls short when trying to find out whether a specific memory
range is eligible for THP. There are usecases that would like to know
that
http://lkml.kernel.org/r/alpine.DEB.2.21.1809251248450.50347@chino.kir.corp.google.com
: This is used to identify heap mappings that should be able to fault thp
: but do not, and they normally point to a low-on-memory or fragmentation
: issue.
The only way to deduce this now is to query for hg resp. nh flags and
confronting the state with the global setting. Except that there is also
PR_SET_THP_DISABLE that might change the picture. So the final logic is
not trivial. Moreover the eligibility of the vma depends on the type of
VMA as well. In the past we have supported only anononymous memory VMAs
but things have changed and shmem based vmas are supported as well these
days and the query logic gets even more complicated because the
eligibility depends on the mount option and another global configuration
knob.
Simplify the current state and report the THP eligibility in
/proc/<pid>/smaps for each existing vma. Reuse
transparent_hugepage_enabled for this purpose. The original
implementation of this function assumes that the caller knows that the vma
itself is supported for THP so make the core checks into
__transparent_hugepage_enabled and use it for existing callers.
__show_smap just use the new transparent_hugepage_enabled which also
checks the vma support status (please note that this one has to be out of
line due to include dependency issues).
[mhocko@kernel.org: fix oops with NULL ->f_mapping]
Link: http://lkml.kernel.org/r/20181224185106.GC16738@dhcp22.suse.cz
Link: http://lkml.kernel.org/r/20181211143641.3503-3-mhocko@kernel.org
Signed-off-by: Michal Hocko <mhocko@suse.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Paul Oppenheimer <bepvte@gmail.com>
Cc: William Kucharski <william.kucharski@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-17 20:35:45 +01:00
..
ABI
x86/bugs: Add ITLB_MULTIHIT bug infrastructure
2019-11-12 19:21:36 +01:00
accelerators
ocxl: Document new OCXL IOCTLs
2018-06-03 20:40:33 +10:00
accounting
acpi
ACPI: property: graph: Update graph documentation to use generic references
2018-07-23 12:44:52 +02:00
admin-guide
USB: documentation: flags on usb-storage versus UAS
2019-12-17 20:34:30 +01:00
aoe
arm
ARM: 8833/1: Ensure that NEON code always compiles with Clang
2019-04-05 22:33:08 +02:00
arm64
arm64: docs: Document SSBS HWCAP
2019-10-11 18:21:31 +02:00
auxdisplay
Doc: misc-devices: move lcd-panel-cgram.txt to auxdisplay/
2018-04-12 16:08:02 +02:00
backlight
block
block: Track DISCARD statistics and output them in stat and diskstat
2018-07-18 08:44:22 -06:00
blockdev
zram: introduce zram memory tracking
2018-06-07 17:34:34 -07:00
bpf
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
2018-08-07 11:02:05 -07:00
bus-devices
cdrom
Documentation/cdrom: fix German sharp s in LaTex
2018-03-08 19:35:29 -07:00
cgroup-v1
page cache: use xa_lock
2018-04-11 10:28:39 -07:00
cma
connector
console
Documentation: corrections to console/console.txt
2018-08-10 16:09:40 -06:00
core-api
idr: Change documentation license
2018-10-15 16:31:29 -04:00
cpu-freq
cpufreq: Drop cpufreq_table_validate_and_show()
2018-04-10 08:40:45 +02:00
cpuidle
cpuidle: Add definition of residency to sysfs documentation
2018-04-09 13:44:37 +02:00
crypto
crypto: remove redundant type flags from tfm allocation
2018-07-09 00:30:29 +08:00
dev-tools
doc: dev-tools: kselftest.rst: update contributing new tests
2018-06-29 09:01:50 -06:00
device-mapper
dm raid: bump target version, update comments and documentation
2018-09-06 17:07:58 -04:00
devicetree
rtc: dt-binding: abx80x: fix resistance scale
2019-12-13 08:51:36 +01:00
doc-guide
Documentation/sphinx: allow "functions" with no parameters
2018-06-30 07:52:42 -06:00
driver-api
USB: core: Fix bug caused by duplicate interface PM usage counter
2019-05-08 07:21:44 +02:00
driver-model
dmaengine: add a new helper dmaenginem_async_device_register
2018-07-30 10:50:22 +05:30
early-userspace
initramfs: move gen_initramfs_list.sh from scripts/ to usr/
2018-08-22 23:21:44 +09:00
EDID
extcon
fault-injection
Documentation: nvme: Documentation for nvme fault injection
2018-03-26 08:53:43 -06:00
fb
uvesafb: Fix URLs in the documentation
2018-09-26 18:11:23 +02:00
features
ARM: 8777/1: Hook up SYNC_CORE functionality for sys_membarrier()
2018-07-11 11:02:08 +01:00
filesystems
mm, thp, proc: report THP eligibility for each vma
2019-12-17 20:35:45 +01:00
firmware_class
fmc
fpga
docs: fpga: add a document for FPGA Device Feature List (DFL) Framework Overview
2018-07-15 13:55:44 +02:00
gpio
Documentation: gpio: Move drivers-on-gpio.txt to driver-api
2018-03-23 04:22:29 +01:00
gpu
drm/msm/gpu: Add the buffer objects from the submit to the crash dump
2018-07-30 08:50:10 -04:00
hid
HID: doc: fix wrong data structure reference for UHID_OUTPUT
2019-12-05 09:20:36 +01:00
hwmon
hwmon: (ina2xx) fix sysfs shunt resistor read access
2018-08-26 17:45:25 -07:00
i2c
i2c: i801: Add support for Intel Comet Lake
2019-05-04 09:20:15 +02:00
ia64
ia64: doc: tweak whitespace for 'console=' parameter
2018-03-05 14:41:38 -08:00
ide
iio
iio: adc: New driver for Cirrus Logic EP93xx ADC
2017-07-25 19:56:23 +01:00
infiniband
Documentation/ABI: update infiniband sysfs interfaces
2018-02-23 08:18:33 -07:00
input
input: add MT_TOOL_DIAL
2018-07-17 15:33:47 +02:00
ioctl
Char/Misc driver patches for 4.19-rc1
2018-08-18 11:04:51 -07:00
isdn
Documentation/isdn: check and fix dead links ...
2018-03-26 12:31:13 -04:00
kbuild
kbuild: Fix LOADLIBES rename in Documentation/kbuild/makefiles.txt
2018-08-22 23:21:42 +09:00
kdump
kexec/kdump: minor Documentation updates for arm64 and Image
2017-07-12 16:26:00 -07:00
kernel-hacking
doc:it_IT: translation for kernel-hacking
2018-07-26 16:21:09 -06:00
laptops
platform/x86: thinkpad_acpi: silence HKEY 0x6032, 0x60f0, 0x6030
2018-05-07 15:10:31 +03:00
leds
Documentation: leds: Update 00-INDEX file
2017-10-23 20:17:03 +02:00
lightnvm
livepatch
livepatch: Remove not longer valid limitations from the documentation
2018-05-24 15:37:57 +02:00
locking
locking: Implement an algorithm choice for Wound-Wait mutexes
2018-07-03 09:44:36 +02:00
m68k
maintainer
docs: Fix more broken references
2018-06-15 18:11:26 -03:00
md
raid5-ppl: PPL support for disks with write-back cache enabled
2018-01-15 14:29:42 -08:00
media
media: replace ADOBERGB by OPRGB
2018-11-13 11:08:54 -08:00
memory-devices
mic
mips
Documentation: mips: Update AU1xxx_IDE Kconfig dependencies
2018-02-01 12:45:35 -07:00
misc-devices
pci_endpoint_test: Add 2 ioctl commands
2018-07-19 11:46:57 +01:00
mmc
mtd
mtd: spi-nor: add an API to restore the status of SPI flash chip
2017-12-13 00:36:00 +01:00
namespaces
netlabel
networking
tcp: add tcp_min_snd_mss sysctl
2019-06-17 19:51:56 +02:00
nfc
nios2
nvdimm
nvmem
NVMEM documentation fix: A minor typo
2017-08-24 13:31:58 -06:00
openrisc
Documentation: openrisc: Updates to README
2017-10-30 21:37:53 +09:00
parisc
PCI
Merge branch 'remotes/lorenzo/pci/dwc'
2018-08-15 14:59:11 -05:00
pcmcia
pcmcia: remove long deprecated pcmcia_request_exclusive_irq() function
2018-08-18 12:30:42 -07:00
perf
drivers/bus: Move Arm CCN PMU driver
2018-03-06 17:26:15 +01:00
phy
platform
power
PM / reboot: Eliminate race between reboot and suspend
2018-08-06 12:35:20 +02:00
powerpc
powerpc: Document issues with TM on POWER9
2018-07-02 23:54:29 +10:00
pps
drivers/pps: aesthetic tweaks to PPS-related content
2017-09-08 18:26:51 -07:00
process
stable-kernel-rules.rst: add link to networking patch queue
2019-03-23 20:10:10 +01:00
pti
ptp
ptp: Fix documentation to match code.
2018-03-26 12:13:21 -04:00
rapidio
Documentation: rapidio: move sysfs interface to ABI
2018-02-23 08:25:45 -07:00
RCU
rculist: Improve documentation for list_for_each_entry_from_rcu()
2018-07-12 15:39:25 -07:00
riscv
perf: riscv: Add Document for Future Porting Guide
2018-06-04 14:02:11 -07:00
s390
vfio-ccw: update documentation
2018-03-01 17:32:14 +01:00
scheduler
sched/fair: Fix low cpu usage with high throttling by removing expiration of cpu-local slices
2019-11-12 19:20:50 +01:00
scsi
scsi: documentation: add scsi_mod.use_blk_mq to scsi-parameters
2018-08-27 12:26:10 -04:00
security
Kbuild: rename CC_STACKPROTECTOR[_STRONG] config variables
2018-06-14 12:21:18 +09:00
serial
sh
sound
ASoC: Updates for v4.19
2018-08-13 12:12:31 +02:00
sparc
sparc64: Add support for ADI (Application Data Integrity)
2018-03-18 07:38:48 -07:00
sphinx
doc: Cope with Sphinx logging deprecations
2019-06-09 09:17:21 +02:00
sphinx-static
docs RTD theme: code-block with line nos - lines and line numbers don't line up.
2017-07-17 13:48:45 -06:00
spi
sysctl
bpf: add bpf_jit_limit knob to restrict unpriv allocations
2019-05-31 06:46:03 -07:00
target
thermal
thermal: Add cooling device's statistics in sysfs
2018-04-02 21:49:01 +08:00
timers
timekeeping.txt: Correct maxCount of n-bit binary counter
2018-07-23 09:33:06 -06:00
trace
This was a moderately busy cycle for docs, with the usual collection of
2018-08-14 14:29:31 -07:00
translations
This was a moderately busy cycle for docs, with the usual collection of
2018-08-14 14:29:31 -07:00
usb
USB: rio500: Remove Rio 500 kernel driver
2019-10-17 13:44:47 -07:00
userspace-api
Documentation: Add section about CPU vulnerabilities for Spectre
2019-07-14 08:11:17 +02:00
virtual
kvm: Convert kvm_lock to a mutex
2019-11-12 19:21:40 +01:00
vm
docs/vm: move ksm and transhuge from "user" to "internals" section.
2018-05-29 06:45:55 -06:00
w1
w1: fix w1_ds2438 documentation
2018-07-07 17:27:13 +02:00
watchdog
watchdog: remove bfin_wdt driver
2018-03-26 15:57:04 +02:00
wimax
x86
x86/speculation/taa: Add documentation for TSX Async Abort
2019-11-12 19:21:34 +01:00
xtensa
xtensa: add support for KASAN
2017-12-16 22:37:12 -08:00
.gitignore
00-INDEX
docs: admin-guide: add cgroup-v2 documentation
2018-05-10 15:42:41 -06:00
atomic_bitops.txt
locking/atomic/bitops: Document and clarify ordering semantics for failed test_and_{}_bit()
2018-02-13 14:55:53 +01:00
atomic_t.txt
x86/atomic: Fix smp_mb__{before,after}_atomic()
2019-07-26 09:14:08 +02:00
bt8xxgpio.txt
bt8xxgpio.txt: standardize document format
2017-07-14 13:51:27 -06:00
btmrvl.txt
btmrvl.txt: standardize document format
2017-07-14 13:51:27 -06:00
bus-virt-phys-mapping.txt
bus-virt-phys-mapping.txt: standardize document format
2017-07-14 13:51:28 -06:00
Changes
clearing-warn-once.txt
kernel debug: support resetting WARN*_ONCE
2017-11-17 16:10:00 -08:00
CodingStyle
conf.py
docs: Fix conf.py for Sphinx 2.0
2019-06-09 09:17:20 +02:00
cpu-load.txt
cpu-load: standardize document format
2017-07-14 13:51:30 -06:00
cputopology.txt
cputopology.txt: standardize document format
2017-07-14 13:51:30 -06:00
crc32.txt
crc32.txt: standardize document format
2017-07-14 13:51:30 -06:00
dcdbas.txt
dcdbas.txt: standardize document format
2017-07-14 13:51:31 -06:00
debugging-modules.txt
debugging-via-ohci1394.txt
debugging-via-ohci1394.txt: standardize document format
2017-07-14 13:51:34 -06:00
dell_rbu.txt
Documentation: remove stale firmware API reference
2018-05-14 16:44:41 +02:00
digsig.txt
digsig.txt: standardize document format
2017-07-14 13:51:31 -06:00
DMA-API-HOWTO.txt
DMA-API-HOWTO.txt: standardize document format
2017-07-14 13:51:32 -06:00
DMA-API.txt
dma-coherent: remove the DMA_MEMORY_MAP and DMA_MEMORY_IO flags
2017-09-01 11:59:17 +02:00
DMA-attributes.txt
DMA-attributes.txt: standardize document format
2017-07-14 13:51:33 -06:00
DMA-ISA-LPC.txt
DMA-ISA-LPC.txt: standardize document format
2017-07-14 13:51:33 -06:00
docutils.conf
dontdiff
Remove gperf usage from toolchain
2017-08-19 11:02:53 -07:00
efi-stub.txt
efi-stub.txt: standardize document format
2017-07-14 13:51:34 -06:00
eisa.txt
eisa.txt: standardize document format
2017-07-14 13:51:34 -06:00
flexible-arrays.txt
flexible-arrays.txt: standardize document format
2017-07-14 13:51:35 -06:00
futex-requeue-pi.txt
futex-requeue-pi.txt: standardize document format
2017-07-14 13:51:35 -06:00
gcc-plugins.txt
gcc-plugins.txt: standardize document format
2017-07-14 13:51:36 -06:00
highuid.txt
highuid.txt: standardize document format
2017-07-14 13:51:36 -06:00
hw_random.txt
hw_random.txt: standardize document format
2017-07-14 13:51:37 -06:00
hwspinlock.txt
hwspinlock.txt: standardize document format
2017-07-14 13:51:37 -06:00
index.rst
x86/speculation/mds: Add mds_clear_cpu_buffers()
2019-05-14 19:17:54 +02:00
Intel-IOMMU.txt
Intel-IOMMU.txt: standardize document format
2017-07-14 13:51:38 -06:00
intel_txt.txt
intel_txt.txt: standardize document format
2017-07-14 13:51:38 -06:00
io-mapping.txt
io-mapping.txt: standardize document format
2017-07-14 13:51:38 -06:00
io_ordering.txt
io_ordering.txt: standardize document format
2017-07-14 13:51:39 -06:00
iostats.txt
block: Track DISCARD statistics and output them in stat and diskstat
2018-07-18 08:44:22 -06:00
IPMI.txt
ipmi: Make IPMI panic strings always available
2017-09-27 16:03:45 -05:00
IRQ-affinity.txt
IRQ-affinity.txt: standardize document format
2017-07-14 13:51:41 -06:00
IRQ-domain.txt
irqdomain: Kill CONFIG_IRQ_DOMAIN_DEBUG
2018-01-24 12:32:58 +01:00
IRQ.txt
IRQ.txt: add a markup for its title
2017-07-14 13:51:42 -06:00
irqflags-tracing.txt
irqflags-tracing.txt: standardize document format
2017-07-14 13:51:42 -06:00
isa.txt
isa.txt: standardize document format
2017-07-14 13:51:43 -06:00
isapnp.txt
isapnp.txt: promote title level
2017-07-14 13:51:43 -06:00
kernel-per-CPU-kthreads.txt
kernel-per-CPU-kthreads.txt: standardize document format
2017-07-14 13:51:43 -06:00
kobject.txt
kobject.txt: standardize document format
2017-07-14 13:51:44 -06:00
kprobes.txt
kprobes/Documentation: Fix various typos
2018-06-22 11:10:55 +02:00
kref.txt
kref.txt: standardize document format
2017-07-14 13:51:45 -06:00
ldm.txt
ldm.txt: standardize document format
2017-07-14 13:51:45 -06:00
lockup-watchdogs.txt
lockup-watchdogs.txt: standardize document format
2017-07-14 13:51:46 -06:00
logo.gif
logo.txt
lsm.txt
lzo.txt
lzo.txt: standardize document format
2017-07-14 13:51:46 -06:00
mailbox.txt
mailbox.txt: standardize document format
2017-07-14 13:51:47 -06:00
Makefile
Documentation: add script and build target to check for broken file references
2017-10-12 11:07:42 -06:00
memory-barriers.txt
sched/Documentation: Update wake_up() & co. memory-barrier guarantees
2018-07-17 09:30:34 +02:00
memory-hotplug.txt
memory-hotplug.txt: standardize document format
2017-07-14 13:57:53 -06:00
men-chameleon-bus.txt
men-chameleon-bus.txt: standardize document format
2017-07-14 13:57:54 -06:00
nommu-mmap.txt
Documentation: nommu-map: Fix duplicate word typo
2018-06-26 09:01:27 -06:00
ntb.txt
This series converts a number of top-level documents to the RST format
2017-07-15 12:58:58 -07:00
numastat.txt
numastat.txt: standardize document format
2017-07-14 13:57:56 -06:00
padata.txt
padata.txt: standardize document format
2017-07-14 13:57:56 -06:00
parport-lowlevel.txt
parport-lowlevel.txt: standardize document format
2017-07-14 13:57:57 -06:00
percpu-rw-semaphore.txt
percpu-rw-semaphore.txt: standardize document format
2017-07-14 13:57:58 -06:00
phy.txt
phy.txt: standardize document format
2017-07-14 13:57:58 -06:00
pi-futex.txt
Documentation: fix locking rt-mutex doc refs
2017-10-19 12:56:44 -06:00
pnp.txt
pnp.txt: standardize document format
2017-07-14 13:57:59 -06:00
preempt-locking.txt
preempt-locking.txt: standardize document format
2017-07-14 13:58:00 -06:00
pwm.txt
pwm: Standardize document format
2017-07-06 08:23:30 +02:00
rbtree.txt
rbtree: cache leftmost node internally
2017-09-08 18:26:48 -07:00
remoteproc.txt
remoteproc.txt: standardize document format
2017-07-14 13:58:02 -06:00
rfkill.txt
rfkill: Fix several typos in documentation
2018-06-15 13:36:08 +02:00
robust-futex-ABI.txt
robust-futex-ABI.txt: standardize document format
2017-07-14 13:58:03 -06:00
robust-futexes.txt
futex: Update comments and docs about return values of arch futex code
2019-07-03 13:14:49 +02:00
rpmsg.txt
rpmsg.txt: standardize document format
2017-07-14 13:58:04 -06:00
rtc.txt
Documentation: rtc: move iotcl interface documentation to ABI
2018-01-12 00:20:41 +01:00
SAK.txt
SAK.txt: standardize document format
2017-07-14 13:58:04 -06:00
sgi-ioc4.txt
sgi-ioc4.txt: standardize document format
2017-07-14 13:58:05 -06:00
siphash.txt
siphash.txt: standardize document format
2017-07-14 13:58:06 -06:00
SM501.txt
SM501.txt: standardize document format
2017-07-14 13:58:06 -06:00
smsc_ece1099.txt
smsc_ece1099.txt: standardize document format
2017-07-14 13:58:07 -06:00
speculation.txt
Documentation: Document array_index_nospec
2018-01-30 21:54:28 +01:00
static-keys.txt
jump_label: Provide hotplug context variants
2017-08-10 12:28:59 +02:00
SubmittingPatches
svga.txt
documentation/svga.txt: update outdated file
2017-11-20 10:45:50 -07:00
switchtec.txt
NTB: switchtec_ntb: Update switchtec documentation with notes for NTB
2017-11-18 20:37:13 -05:00
sync_file.txt
tee.txt
tee.txt: standardize document format
2017-07-14 13:58:14 -06:00
this_cpu_ops.txt
this_cpu_ops.txt: standardize document format
2017-07-14 13:58:08 -06:00
unaligned-memory-access.txt
unaligned-memory-access.txt: standardize document format
2017-07-14 13:58:09 -06:00
vfio-mediated-device.txt
vfio/mdev: Check globally for duplicate devices
2018-06-08 10:24:27 -06:00
vfio.txt
vfio: fix documentation
2018-05-08 09:16:41 -06:00
video-output.txt
xillybus.txt
xillybus.txt: standardize document format
2017-07-14 13:58:11 -06:00
xz.txt
xz.txt: standardize document format
2017-07-14 13:58:11 -06:00
zorro.txt
zorro.txt: standardize document format
2017-07-14 13:58:12 -06:00