android_kernel_xiaomi_sm7250/include
Sultan Alsawaf 370fefb53f mm: Lower the non-hugetlbpage pageblock size to reduce scheduling delays
The page allocator processes free pages in groups of pageblocks, where
the size of a pageblock is typically quite large (1024 pages without
hugetlbpage support). Pageblocks are processed atomically with the zone
lock held, which can cause severe scheduling delays on both the CPU
going through the pageblock and any other CPUs waiting to acquire the
zone lock. A frequent offender is move_freepages_block(), which is used
by rmqueue() for page allocation.

As it turns out, there's no requirement for pageblocks to be so large,
so the pageblock order can simply be reduced to ease the scheduling
delays and zone lock contention. PAGE_ALLOC_COSTLY_ORDER is used as a
reasonable setting to ensure non-costly page allocation requests can
still be serviced without always needing to free up more than one
pageblock's worth of pages at a time.

This has a noticeable effect on overall system latency when memory
pressure is elevated. The various mm functions which operate on
pageblocks no longer appear in the preemptoff tracer, where previously
they would spend up to 100 ms on a mobile arm64 CPU processing a
pageblock with preemption disabled and the zone lock held.

Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
2022-11-12 11:24:20 +00:00
..
acpi
asm-generic BACKPORT: locking/rwsem: Remove arch specific rwsem files 2022-11-12 11:23:32 +00:00
clocksource
crypto LRNG: Backport to 4.19 kernel 2022-11-12 11:23:17 +00:00
drm
dt-bindings
keys
kvm
linux mm: Lower the non-hugetlbpage pageblock size to reduce scheduling delays 2022-11-12 11:24:20 +00:00
math-emu
media
memory
microvisor
misc
net
pcmcia
ras
rdma
scsi
soc
sound
target
trace ion: Rewrite to improve clarity and performance 2022-11-12 11:24:01 +00:00
uapi BACKPORT: FROMGIT: Binder: add TF_UPDATE_TXN to replace outdated txn 2022-11-12 11:23:12 +00:00
vdso
video
vservices
xen
Kbuild
OWNERS