android_kernel_xiaomi_sm8450/mm
SeongJae Park dd1947047e UPSTREAM: mm/damon/schemes: prioritize regions within the quotas
This makes DAMON apply schemes to regions having higher priority first,
if it cannot apply schemes to all regions due to the quotas.

The prioritization function should be implemented in the monitoring
primitives.  Those would commonly calculate the priority of the region
using attributes of regions, namely 'size', 'nr_accesses', and 'age'.
For example, some primitive would calculate the priority of each region
using a weighted sum of 'nr_accesses' and 'age' of the region.

The optimal weights would depend on give environments, so this makes
those customizable.  Nevertheless, the score calculation functions are
only encouraged to respect the weights, not mandated.

Link: https://lkml.kernel.org/r/20211019150731.16699-8-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Amit Shah <amit@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: David Hildenbrand <david@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: David Woodhouse <dwmw@amazon.com>
Cc: Greg Thelen <gthelen@google.com>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Leonard Foerster <foersleo@amazon.de>
Cc: Marco Elver <elver@google.com>
Cc: Markus Boehme <markubo@amazon.de>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

(cherry picked from commit 38683e003153f7abfa612d7b7fe147efa4624af2)

Bug: 228223814
Signed-off-by: Hailong Tu <tuhailong@oppo.com>
Change-Id: I7c96b116f7daf1d33df427b023aba3664951e2cb
2022-04-28 23:09:16 +08:00
..
damon UPSTREAM: mm/damon/schemes: prioritize regions within the quotas 2022-04-28 23:09:16 +08:00
kasan UPSTREAM: arm64: kasan: mte: use a constant kernel GCR_EL1 value 2021-10-01 09:39:35 -07:00
kfence UPSTREAM: kfence: fix memory leak when cat kfence objects 2022-02-11 17:30:26 -08:00
backing-dev.c mm: bdi: initialize bdi_min_ratio when bdi is unregistered 2021-12-14 11:32:37 +01:00
balloon_compaction.c
cleancache.c
cma_debug.c FROMLIST: mm: cma: introduce gfp flag in cma_alloc instead of no_warn 2021-01-25 12:21:02 -08:00
cma_sysfs.c ANDROID: make cma_sysfs experimental 2021-03-25 19:20:18 +00:00
cma.c ANDROID: mm: cma: disable LRU cache early 2021-10-20 17:33:35 +00:00
cma.h ANDROID: GKI: add OEM data in cma struct 2021-06-04 11:15:16 -07:00
compaction.c UPSTREAM: mm/compaction: correct deferral logic for proactive compaction 2021-07-21 22:18:24 +00:00
debug_page_ref.c
debug_vm_pgtable.c mm/debug_vm_pgtable: remove pte entry from the page table 2022-02-08 18:30:35 +01:00
debug.c ANDROID: mm: introduce page_pinner 2021-04-30 09:13:34 -07:00
dmapool.c
early_ioremap.c
fadvise.c
failslab.c
filemap.c ANDROID: mm: unlock the page on speculative fault retry 2021-09-14 17:43:45 +00:00
frame_vector.c
frontswap.c
gup_benchmark.c mm/gup_benchmark: take the mmap lock around GUP 2020-10-18 09:27:09 -07:00
gup.c UPSTREAM: mm/gup: remove the vma allocation from gup_longterm_locked() 2021-12-09 19:39:42 +00:00
highmem.c mm/highmem.c: clean up endif comments 2020-10-16 11:11:18 -07:00
hmm.c mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault 2022-01-27 10:54:36 +01:00
huge_memory.c This is the 5.10.53 stable release 2021-07-25 15:37:14 +02:00
hugetlb_cgroup.c hugetlb_cgroup: fix imbalanced css_get and css_put pair for shared mappings 2021-03-30 14:31:54 +02:00
hugetlb.c This is the 5.10.82 stable release 2021-11-26 15:37:44 +01:00
hwpoison-inject.c
init-mm.c FROMLIST: mm: protect mm_rb tree with a rwlock 2021-01-22 18:00:57 +00:00
internal.h Linux 5.10.47 2021-06-30 19:38:46 +02:00
interval_tree.c
ioremap.c
Kconfig UPSTREAM: mm/idle_page_tracking: make PG_idle reusable 2022-04-28 23:09:14 +08:00
Kconfig.debug ANDROID: mm: introduce page_pinner 2021-04-30 09:13:34 -07:00
khugepaged.c This is the 5.10.78 stable release 2021-11-06 14:22:24 +01:00
kmemleak.c This is the 5.10.99 stable release 2022-02-09 12:14:04 +01:00
ksm.c Merge 5.10.38 into android12-5.10 2021-05-20 15:35:25 +02:00
list_lru.c mm: list_lru: set shrinker map bit when child nr_items is not zero 2020-12-06 10:19:07 -08:00
maccess.c
madvise.c FROMLIST: mm/madvise: add MADV_WILLNEED to process_madvise() 2021-08-16 15:13:13 +00:00
Makefile UPSTREAM: mm: introduce Data Access MONitor (DAMON) 2022-04-28 23:09:14 +08:00
mapping_dirty_helpers.c
memblock.c This is the 5.10.87 stable release 2021-12-17 14:04:19 +01:00
memcontrol.c This is the 5.10.80 stable release 2021-11-19 11:50:41 +01:00
memfd.c
memory_hotplug.c BACKPORT: mm/memory_hotplug: fix potential permanent lru cache disable 2022-02-11 17:30:23 -08:00
memory-failure.c mm/hwpoison: clear MF_COUNT_INCREASED before retrying get_any_page() 2021-12-29 12:26:05 +01:00
memory.c ANDROID: mm: Fix page table lookup in speculative fault path 2022-03-07 20:56:15 +00:00
mempolicy.c This is the 5.10.89 stable release 2021-12-29 14:17:18 +01:00
mempool.c FROMGIT: kasan: use separate (un)poison implementation for integrated init 2021-06-17 14:39:37 -07:00
memremap.c mm: fix memory_failure() handling of dax-namespace metadata 2021-03-04 11:38:21 +01:00
memtest.c
migrate.c FROMGIT: mm/migrate: fix race between lock page and clear PG_Isolated 2022-03-18 14:34:54 +08:00
mincore.c
mlock.c ANDROID: mm: page_pinner: unattribute follow_page in munlock_vma_pages_range 2021-04-30 09:13:35 -07:00
mm_init.c
mmap.c FROMLIST: mm: protect free_pgtables with mmap_lock write lock in exit_mmap 2022-01-06 17:37:54 +00:00
mmu_gather.c
mmu_notifier.c ANDROID: fix ABI breakage caused by mm_struct->mmu_notifier_lock addition 2021-12-15 21:45:28 +00:00
mmzone.c ANDROID: mm: export zone_watermark_ok 2021-02-25 19:36:38 +00:00
mprotect.c Revert "FROMGIT: mm: improve mprotect(R|W) efficiency on pages referenced once" 2022-01-06 17:19:23 +00:00
mremap.c UPSTREAM: mm/mremap: fix BUILD_BUG_ON() error in get_extent 2021-10-21 08:33:12 -07:00
msync.c
nommu.c ANDROID: mm: allow vmas with vm_ops to be speculatively handled 2021-04-23 18:42:39 -07:00
oom_kill.c Merge tag 'android12-5.10.81_r00' into android12-5.10 2022-01-21 09:35:04 +01:00
page_alloc.c ANDROID: vendor_hooks: Add hooks to for free_unref_page_commit 2022-03-30 15:56:32 +00:00
page_counter.c
page_ext.c UPSTREAM: mm/idle_page_tracking: make PG_idle reusable 2022-04-28 23:09:14 +08:00
page_idle.c UPSTREAM: mm/idle_page_tracking: make PG_idle reusable 2022-04-28 23:09:14 +08:00
page_io.c UPSTREAM: mm/page_io: use pr_alert_ratelimited for swap read/write errors 2021-03-30 18:44:11 +00:00
page_isolation.c ANDROID: mm: cma: skip problematic pageblock 2021-07-14 11:54:49 -07:00
page_owner.c ANDROID: mm: Make page_owner_enabled global 2021-04-01 00:09:00 +00:00
page_pinner.c ANDROID: mm: page_pinner: fix build warning 2022-03-10 21:35:16 +00:00
page_poison.c UPSTREAM: kasan: fix conflict with page poisoning 2021-07-19 20:39:17 +00:00
page_reporting.c mm: rename page_order() to buddy_order() 2020-10-16 11:11:19 -07:00
page_reporting.h
page_vma_mapped.c mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk() 2021-06-30 08:47:29 -04:00
page-writeback.c ANDROID: vendor_hooks: add hook to balance_dirty_pages() 2021-05-20 19:38:42 +00:00
pagewalk.c ANDROID: export walk_page_range and swp_swap_info 2022-03-29 17:40:45 +00:00
percpu-internal.h percpu: make pcpu_nr_empty_pop_pages per chunk type 2021-04-14 08:42:03 +02:00
percpu-km.c
percpu-stats.c percpu: make pcpu_nr_empty_pop_pages per chunk type 2021-04-14 08:42:03 +02:00
percpu-vm.c
percpu.c Merge 5.10.30 into android12-5.10 2021-04-15 14:23:41 +02:00
pgalloc-track.h
pgtable-generic.c mm/thp: fix __split_huge_pmd_locked() on shmem migration entry 2021-06-30 08:47:26 -04:00
process_vm_access.c mm/process_vm_access.c: include compat.h 2021-01-19 18:27:21 +01:00
ptdump.c This is the 5.10.32 stable release 2021-04-22 11:12:08 +02:00
readahead.c ANDROID: add for tuning readahead size 2022-04-24 10:53:17 +00:00
rmap.c Merge branch 'android12-5.10' into android12-5.10-lts 2021-09-13 18:12:07 +02:00
rodata_test.c
shmem.c ANDROID: mm: Fix implicit declaration of function 'isolate_lru_page' 2022-03-31 19:58:24 +00:00
shuffle.c mm: rename page_order() to buddy_order() 2020-10-16 11:11:19 -07:00
shuffle.h
slab_common.c Revert half of "ANDROID: vendor_hooks: Add hooks for memory when debug" 2022-01-21 13:11:10 +01:00
slab.c Merge 5.10.37 into android12-5.10 2021-05-15 09:28:55 +02:00
slab.h This is the 5.10.82 stable release 2021-11-26 15:37:44 +01:00
slob.c
slub.c ANDROID: mm/slub: Fix Kasan issue with for_each_object_track 2022-03-10 20:56:44 +00:00
sparse-vmemmap.c
sparse.c mm/sparse: add the missing sparse_buffer_fini() in error branch 2021-05-14 09:50:45 +02:00
swap_cgroup.c
swap_slots.c
swap_state.c FROMLIST: mm: protect VMA modifications using VMA sequence count 2021-01-22 17:59:47 +00:00
swap.c BACKPORT: UPSTREAM: mm: fs: invalidate bh_lrus for only cold path 2021-09-27 17:48:37 -07:00
swapfile.c ANDROID: export walk_page_range and swp_swap_info 2022-03-29 17:40:45 +00:00
truncate.c mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page() 2021-06-30 08:47:27 -04:00
usercopy.c
userfaultfd.c FROMGIT: userfaultfd/shmem: modify shmem_mfill_atomic_pte to use install_pte() 2021-06-04 19:13:10 +00:00
util.c This is the 5.10.71 stable release 2021-10-06 17:33:06 +02:00
vmacache.c
vmalloc.c UPSTREAM: mm: vmalloc: prevent use after free in _vm_unmap_aliases 2021-11-09 17:29:42 +00:00
vmpressure.c FROMLIST: mm, memcg: add mem_cgroup_disabled checks in vmpressure and swap-related functions 2021-07-12 18:26:15 -07:00
vmscan.c ANDROID: vendor_hooks: Add hook in shrink_node_memcgs 2022-03-29 19:43:45 +00:00
vmstat.c ANDROID: mm: allow vmas with vm_ops to be speculatively handled 2021-04-23 18:42:39 -07:00
workingset.c XArray updates for 5.9 2020-10-20 14:39:37 -07:00
z3fold.c mm/z3fold: use release_z3fold_page_locked() to release locked z3fold page 2021-07-14 16:56:51 +02:00
zbud.c
zpool.c
zsmalloc.c This is the 5.10.80 stable release 2021-11-19 11:50:41 +01:00
zswap.c