Jens Axboe
9491ae4aad
mm: don't cap request size based on read-ahead setting
...
We ran into a funky issue, where someone doing 256K buffered reads saw
128K requests at the device level. Turns out it is read-ahead capping
the request size, since we use 128K as the default setting. This
doesn't make a lot of sense - if someone is issuing 256K reads, they
should see 256K reads, regardless of the read-ahead setting, if the
underlying device can support a 256K read in a single command.
This patch introduces a bdi hint, io_pages. This is the soft max IO
size for the lower level, I've hooked it up to the bdev settings here.
Read-ahead is modified to issue the maximum of the user request size,
and the read-ahead max size, but capped to the max request size on the
device side. The latter is done to avoid reading ahead too much, if the
application asks for a huge read. With this patch, the kernel behaves
like the application expects.
Link: http://lkml.kernel.org/r/1479498073-8657-1-git-send-email-axboe@fb.com
Signed-off-by: Jens Axboe <axboe@fb.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-12-12 18:55:08 -08:00
..
kasan
kasan: support use-after-scope detection
2016-11-30 16:32:52 -08:00
backing-dev.c
balloon_compaction.c
bootmem.c
cleancache.c
cma.c
mm/cma.c: check the max limit for cma allocation
2016-11-11 08:12:37 -08:00
cma.h
cma_debug.c
compaction.c
mm, compaction: fix NR_ISOLATED_* stats for pfn based migration
2016-12-12 18:55:07 -08:00
debug.c
debug_page_ref.c
dmapool.c
early_ioremap.c
fadvise.c
failslab.c
filemap.c
mm/filemap.c: add comment for confusing logic in page_cache_tree_insert()
2016-12-12 18:55:08 -08:00
frame_vector.c
frontswap.c
gup.c
mm: fix up get_user_pages* comments
2016-12-12 18:55:07 -08:00
highmem.c
huge_memory.c
mm: add tlb_remove_check_page_size_change to track page size change
2016-12-12 18:55:07 -08:00
hugetlb.c
mm: add tlb_remove_check_page_size_change to track page size change
2016-12-12 18:55:07 -08:00
hugetlb_cgroup.c
hwpoison-inject.c
init-mm.c
internal.h
interval_tree.c
Kconfig
of/fdt: mark hotpluggable memory
2016-12-12 18:55:07 -08:00
Kconfig.debug
khugepaged.c
mm, thp: propagation of conditional compilation in khugepaged.c
2016-11-30 16:32:52 -08:00
kmemcheck.c
kmemleak-test.c
kmemleak.c
kmemleak: fix reference to Documentation
2016-12-12 18:55:07 -08:00
ksm.c
list_lru.c
mm/list_lru.c: avoid error-path NULL pointer deref
2016-10-27 18:43:42 -07:00
maccess.c
madvise.c
mm: add tlb_remove_check_page_size_change to track page size change
2016-12-12 18:55:07 -08:00
Makefile
memblock.c
memcontrol.c
mm: memcontrol: use special workqueue for creating per-memcg caches
2016-12-12 18:55:06 -08:00
memory-failure.c
mm: hwpoison: fix thp split handling in memory_failure()
2016-11-11 08:12:37 -08:00
memory.c
mm: remove the page size change check in tlb_remove_page
2016-12-12 18:55:07 -08:00
memory_hotplug.c
mm: remove x86-only restriction of movable_node
2016-12-12 18:55:07 -08:00
mempolicy.c
mm/mempolicy.c: forbid static or relative flags for local NUMA mode
2016-12-12 18:55:07 -08:00
mempool.c
memtest.c
migrate.c
mm, compaction: fix NR_ISOLATED_* stats for pfn based migration
2016-12-12 18:55:07 -08:00
mincore.c
mlock.c
thp: fix corner case of munlock() of PTE-mapped THPs
2016-11-30 16:32:52 -08:00
mm_init.c
mmap.c
mmu_context.c
mmu_notifier.c
mmzone.c
mprotect.c
mm/pkeys: generate pkey system call code only if ARCH_HAS_PKEYS is selected
2016-12-12 18:55:07 -08:00
mremap.c
mremap: move_ptes: check pte dirty after its removal
2016-11-29 08:20:24 -08:00
msync.c
nobootmem.c
nommu.c
mm: unexport __get_user_pages()
2016-10-24 19:13:20 -07:00
oom_kill.c
page-writeback.c
page_alloc.c
mm: make unreserve highatomic functions reliable
2016-12-12 18:55:07 -08:00
page_counter.c
page_ext.c
page_idle.c
page_io.c
page_isolation.c
page_owner.c
page_poison.c
pagewalk.c
percpu-km.c
percpu-vm.c
percpu.c
pgtable-generic.c
process_vm_access.c
quicklist.c
readahead.c
mm: don't cap request size based on read-ahead setting
2016-12-12 18:55:08 -08:00
rmap.c
shmem.c
shmem: fix compilation warnings on unused functions
2016-12-12 18:55:08 -08:00
slab.c
mm, slab: maintain total slab count instead of active count
2016-12-12 18:55:07 -08:00
slab.h
mm, slab: maintain total slab count instead of active count
2016-12-12 18:55:07 -08:00
slab_common.c
mm/slab_common.c: check kmem_create_cache flags are common
2016-12-12 18:55:06 -08:00
slob.c
slub: move synchronize_sched out of slab_mutex on shrink
2016-12-12 18:55:06 -08:00
slub.c
slub: avoid false-postive warning
2016-12-12 18:55:06 -08:00
sparse-vmemmap.c
sparse.c
swap.c
swap_cgroup.c
swap_state.c
swapfile.c
swapfile: fix memory corruption via malformed swapfile
2016-11-11 08:12:37 -08:00
truncate.c
mm: fix false-positive WARN_ON() in truncate/invalidate for hugetlb
2016-11-30 16:32:52 -08:00
usercopy.c
userfaultfd.c
util.c
Merge branch 'mm-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-10-22 09:39:10 -07:00
vmacache.c
vmalloc.c
mm/vmalloc.c: simplify /proc/vmallocinfo implementation
2016-12-12 18:55:07 -08:00
vmpressure.c
vmscan.c
mm/vmscan.c: set correct defer count for shrinker
2016-12-12 18:55:07 -08:00
vmstat.c
workingset.c
mm: workingset: fix NULL ptr in count_shadow_nodes
2016-12-02 18:48:03 -08:00
z3fold.c
zbud.c
zpool.c
zsmalloc.c
zswap.c