android_kernel_xiaomi_sm7250/mm
Sultan Alsawaf b75887b8a8 mm: Don't hog the CPU and zone lock in rmqueue_bulk()
There is noticeable scheduling latency and heavy zone lock contention
stemming from rmqueue_bulk's single hold of the zone lock while doing
its work, as seen with the preemptoff tracer. There's no actual need for
rmqueue_bulk() to hold the zone lock the entire time; it only does so
for supposed efficiency. As such, we can relax the zone lock and even
reschedule when IRQs are enabled in order to keep the scheduling delays
and zone lock contention at bay. Forward progress is still guaranteed,
as the zone lock can only be relaxed after page removal.

With this change, rmqueue_bulk() no longer appears as a serious offender
in the preemptoff tracer, and system latency is noticeably improved.

Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
2022-11-12 11:24:20 +00:00
..
damon mm: damon: Enable DAMON-based reclaim by default 2022-11-12 11:23:13 +00:00
kasan mm: treewide: remove unused address argument from pte_alloc functions 2022-11-12 11:21:18 +00:00
backing-dev.c Revert "bdi: Do not use freezable workqueue" 2022-04-13 17:19:53 +00:00
balloon_compaction.c
bootmem.c
cleancache.c
cma_debug.c Revert "mm: cma: make writeable CMA debugfs optional" 2022-11-12 11:20:19 +00:00
cma.c Revert "mm: cma: Print region name on failure" 2022-11-12 11:20:20 +00:00
cma.h
compaction.c mm: compaction: expose proactive compaction counter 2022-11-12 11:22:28 +00:00
debug_page_ref.c
debug.c
dmapool.c
early_ioremap.c
fadvise.c
failslab.c
filemap.c mm: mm_event: add read io stat 2022-11-12 11:20:46 +00:00
frame_vector.c
frontswap.c
gup_benchmark.c
gup.c mm/vma: make vma_is_accessible() available for general use 2022-11-12 11:21:22 +00:00
highmem.c
hmm.c BACKPORT: pagewalk: separate function pointers from iterator data 2022-11-12 11:23:09 +00:00
huge_memory.c BACKPORT: mm: don't be stuck to rmap lock on reclaim path 2022-11-12 11:23:12 +00:00
hugetlb_cgroup.c
hugetlb.c BACKPORT: asm-generic/tlb, arch: Provide CONFIG_HAVE_MMU_GATHER_PAGE_SIZE 2022-11-12 11:23:03 +00:00
hwpoison-inject.c
init-mm.c Revert "mm: protect mm_rb tree with a rwlock" 2022-11-12 11:20:37 +00:00
internal.h BACKPORT: mm: introduce MADV_COLD 2022-11-12 11:23:09 +00:00
interval_tree.c
Kconfig UPSTREAM: mm/idle_page_tracking: make PG_idle reusable 2022-11-12 11:22:43 +00:00
Kconfig.debug Revert "mm: Kconfig: Add DEBUG_SLUB_PANIC_ON option" 2022-11-12 11:20:32 +00:00
khugepaged.c mm/vma: make is_vma_temporary_stack() available for general use 2022-11-12 11:21:22 +00:00
kmemleak-test.c
kmemleak.c Merge remote-tracking branch 'aosp/android-4.19-stable' into android12-base 2022-09-22 14:02:10 +05:30
ksm.c BACKPORT: mm: don't be stuck to rmap lock on reclaim path 2022-11-12 11:23:12 +00:00
list_lru.c BACKPORT: mm/list_lru: fix a data race in list_lru_count_one 2022-11-12 11:21:47 +00:00
maccess.c
madvise.c UPSTREAM: mm: madvise: return correct bytes advised with process_madvise 2022-11-12 11:23:12 +00:00
Makefile mm: kmemleak: Don't require global debug options or debugfs 2022-11-12 11:24:00 +00:00
memblock.c Revert "mm: memblock: Add more debug logs" 2022-11-12 11:20:14 +00:00
memcontrol.c BACKPORT: pagewalk: separate function pointers from iterator data 2022-11-12 11:23:09 +00:00
memfd.c This is the 4.19.233 stable release 2022-03-11 10:08:25 +01:00
memory_hotplug.c Revert "mm: Enhance per process reclaim to consider shared pages" 2022-11-12 11:20:33 +00:00
memory-failure.c BACKPORT: mm: don't be stuck to rmap lock on reclaim path 2022-11-12 11:23:12 +00:00
memory.c BACKPORT: asm-generic/tlb: Remove tlb_flush_mmu_free() 2022-11-12 11:23:06 +00:00
mempolicy.c BACKPORT: pagewalk: separate function pointers from iterator data 2022-11-12 11:23:09 +00:00
mempool.c
memtest.c
migrate.c BACKPORT: pagewalk: separate function pointers from iterator data 2022-11-12 11:23:09 +00:00
mincore.c BACKPORT: pagewalk: separate function pointers from iterator data 2022-11-12 11:23:09 +00:00
mlock.c BACKPORT: mm/lru: introduce TestClearPageLRU() 2022-11-12 11:22:15 +00:00
mm_event.c mm: mm_event: show MM/FS/IO/UFS latencies in fault flow 2022-11-12 11:20:48 +00:00
mm_init.c FROMLIST: mm: multi-gen LRU: groundwork 2022-11-12 11:21:15 +00:00
mmap.c mm: mmap: fix fput in error path v2 2022-11-12 11:21:27 +00:00
mmu_context.c Revert "BACKPORT: FROMLIST: mm: multigenerational lru: mm_struct list" 2022-11-12 11:21:07 +00:00
mmu_gather.c BACKPORT: mm/mmu_gather: invalidate TLB correctly on batch allocation failure and flush 2022-11-12 11:23:07 +00:00
mmu_notifier.c Revert "CHROMIUM: mm: multigenerational lru: scan kvm mmu pages" 2022-11-12 11:21:06 +00:00
mmzone.c FROMLIST: mm: multi-gen LRU: groundwork 2022-11-12 11:21:15 +00:00
mprotect.c BACKPORT: pagewalk: separate function pointers from iterator data 2022-11-12 11:23:09 +00:00
mremap.c mm/mremap: fix BUILD_BUG_ON() error in get_extent 2022-11-12 11:21:28 +00:00
msync.c
nobootmem.c
nommu.c mm: remove unnecessary wrapper function do_mmap_pgoff() 2022-11-12 11:21:24 +00:00
oom_kill.c BACKPORT: mm: introduce MADV_COLD 2022-11-12 11:23:09 +00:00
OWNERS ANDROID: Add OWNERS files referring to the respective android-mainline OWNERS 2021-04-03 14:09:44 +00:00
page_alloc.c mm: Don't hog the CPU and zone lock in rmqueue_bulk() 2022-11-12 11:24:20 +00:00
page_counter.c
page_ext.c UPSTREAM: mm/idle_page_tracking: make PG_idle reusable 2022-11-12 11:22:43 +00:00
page_idle.c BACKPORT: mm: don't be stuck to rmap lock on reclaim path 2022-11-12 11:23:12 +00:00
page_io.c Revert "mm: zram: fix swapcached issue on Zram Writeback" 2022-11-12 11:20:18 +00:00
page_isolation.c
page_owner.c Revert "mm, page_owner: record time and pid" 2022-11-12 11:20:20 +00:00
page_poison.c
page_vma_mapped.c mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk() 2021-07-11 12:49:30 +02:00
page-writeback.c
pagewalk.c BACKPORT: pagewalk: separate function pointers from iterator data 2022-11-12 11:23:09 +00:00
percpu-internal.h
percpu-km.c
percpu-stats.c
percpu-vm.c
percpu.c This is the 4.19.147 stable release 2020-09-24 12:48:04 +02:00
pgtable-generic.c BACKPORT: x86/mm: Page size aware flush_tlb_mm_range() 2022-11-12 11:23:03 +00:00
process_vm_access.c
quicklist.c
readahead.c
rmap.c BACKPORT: mm: don't be stuck to rmap lock on reclaim path 2022-11-12 11:23:12 +00:00
rodata_test.c
shmem.c mm: remove unnecessary wrapper function do_mmap_pgoff() 2022-11-12 11:21:24 +00:00
showmem.c
slab_common.c This is the 4.19.199 stable release 2021-07-28 13:24:42 +02:00
slab.c UPSTREAM: slab: store tagged freelist for off-slab slabmgmt 2020-11-16 09:22:35 +01:00
slab.h This is the 4.19.218 stable release 2021-11-26 15:19:33 +01:00
slob.c UPSTREAM: mm/sl[uo]b: export __kmalloc_track(_node)_caller 2020-11-02 16:12:14 +00:00
slub.c mm/slub.c: branch optimization in free slowpath 2022-11-12 11:21:29 +00:00
sparse-vmemmap.c
sparse.c mm/sparse: add the missing sparse_buffer_fini() in error branch 2021-05-22 10:59:38 +02:00
swap_cgroup.c
swap_ratio.c
swap_slots.c Revert "mm: swap: Add null pointer check" 2022-11-12 11:20:20 +00:00
swap_state.c FROMLIST: mm: multi-gen LRU: minimal implementation 2022-11-12 11:21:16 +00:00
swap.c mglru: fixes 2022-11-12 11:23:12 +00:00
swapfile.c FROMLIST: mm: multi-gen LRU: groundwork 2022-11-12 11:21:15 +00:00
truncate.c mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page() 2021-07-11 12:49:28 +02:00
usercopy.c Merge remote-tracking branch 'aosp/android-4.19-stable' into android12-base 2022-04-20 19:50:03 +05:30
userfaultfd.c mm: treewide: remove unused address argument from pte_alloc functions 2022-11-12 11:21:18 +00:00
util.c mm: introduce vma_set_file function v5 2022-11-12 11:21:27 +00:00
vmacache.c
vmalloc.c BACKPORT: mm/vmalloc: Fix unlock order in s_stop() 2022-11-12 11:21:48 +00:00
vmpressure.c mm: vmpressure: make vmpressure window variable 2022-11-12 11:20:50 +00:00
vmscan.c BACKPORT: mm: don't be stuck to rmap lock on reclaim path 2022-11-12 11:23:12 +00:00
vmstat.c BACKPORT: mm: use unsigned types for fragmentation score 2022-11-12 11:22:24 +00:00
workingset.c FROMLIST: mm: multi-gen LRU: minimal implementation 2022-11-12 11:21:16 +00:00
z3fold.c
zbud.c mm: use false for bool variable 2022-11-12 11:21:23 +00:00
zpool.c
zsmalloc.c Merge ASB-2022-06-05_4.19-stable into android12-base 2022-06-07 16:10:29 +05:30
zswap.c