]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | # SPDX-License-Identifier: GPL-2.0 |
1da177e4 LT |
2 | # |
3 | # Makefile for the linux memory manager. | |
4 | # | |
5 | ||
0316bec2 | 6 | KASAN_SANITIZE_slab_common.o := n |
7ed2f9e6 | 7 | KASAN_SANITIZE_slab.o := n |
0316bec2 | 8 | KASAN_SANITIZE_slub.o := n |
5f2d5026 | 9 | KCSAN_SANITIZE_kmemleak.o := n |
0316bec2 | 10 | |
0ebba714 ME |
11 | # These produce frequent data race reports: most of them are due to races on |
12 | # the same word but accesses to different bits of that word. Re-enable KCSAN | |
13 | # for these when we have more consensus on what to do about them. | |
14 | KCSAN_SANITIZE_slab_common.o := n | |
15 | KCSAN_SANITIZE_slab.o := n | |
16 | KCSAN_SANITIZE_slub.o := n | |
17 | KCSAN_SANITIZE_page_alloc.o := n | |
d37d1fa0 ME |
18 | # But enable explicit instrumentation for memory barriers. |
19 | KCSAN_INSTRUMENT_BARRIERS := y | |
0ebba714 | 20 | |
5c9a8750 DV |
21 | # These files are disabled because they produce non-interesting and/or |
22 | # flaky coverage that is not a function of syscall inputs. E.g. slab is out of | |
23 | # free pages, or a task is migrated between nodes. | |
24 | KCOV_INSTRUMENT_slab_common.o := n | |
5c9a8750 DV |
25 | KCOV_INSTRUMENT_slab.o := n |
26 | KCOV_INSTRUMENT_slub.o := n | |
27 | KCOV_INSTRUMENT_page_alloc.o := n | |
28 | KCOV_INSTRUMENT_debug-pagealloc.o := n | |
29 | KCOV_INSTRUMENT_kmemleak.o := n | |
5c9a8750 DV |
30 | KCOV_INSTRUMENT_memcontrol.o := n |
31 | KCOV_INSTRUMENT_mmzone.o := n | |
32 | KCOV_INSTRUMENT_vmstat.o := n | |
43e76af8 | 33 | KCOV_INSTRUMENT_failslab.o := n |
5c9a8750 | 34 | |
b57a775f QC |
35 | CFLAGS_init-mm.o += $(call cc-disable-warning, override-init) |
36 | CFLAGS_init-mm.o += $(call cc-disable-warning, initializer-overrides) | |
37 | ||
1da177e4 | 38 | mmu-y := nommu.o |
050a9adc | 39 | mmu-$(CONFIG_MMU) := highmem.o memory.o mincore.o \ |
196d9d8b PZ |
40 | mlock.o mmap.o mmu_gather.o mprotect.o mremap.o \ |
41 | msync.o page_vma_mapped.o pagewalk.o \ | |
82a70ce0 | 42 | pgtable-generic.o rmap.o vmalloc.o |
ace71a19 | 43 | |
5febcbe9 CY |
44 | |
45 | ifdef CONFIG_CROSS_MEMORY_ATTACH | |
46 | mmu-$(CONFIG_MMU) += process_vm_access.o | |
47 | endif | |
1da177e4 | 48 | |
3d8f7615 | 49 | obj-y := filemap.o mempool.o oom_kill.o fadvise.o \ |
2f52578f | 50 | maccess.o page-writeback.o folio-compat.o \ |
96f7b2b9 QZ |
51 | readahead.o swap.o truncate.o vmscan.o shrinker.o \ |
52 | shmem.o util.o mmzone.o vmstat.o backing-dev.o \ | |
9bf5b9eb | 53 | mm_init.o percpu.o slab_common.o \ |
eafc474e | 54 | compaction.o show_mem.o shmem_quota.o\ |
5166701b | 55 | interval_tree.o list_lru.o workingset.o \ |
2b5067a8 | 56 | debug.o gup.o mmap_lock.o $(mmu-y) |
039363f3 | 57 | |
e900a918 DW |
58 | # Give 'page_alloc' its own module-parameter namespace |
59 | page-alloc-y := page_alloc.o | |
60 | page-alloc-$(CONFIG_SHUFFLE_PAGE_ALLOCATOR) += shuffle.o | |
61 | ||
e3a9d9fc OS |
62 | # Give 'memory_hotplug' its own module-parameter namespace |
63 | memory-hotplug-$(CONFIG_MEMORY_HOTPLUG) += memory_hotplug.o | |
64 | ||
e900a918 | 65 | obj-y += page-alloc.o |
bb1f17b0 | 66 | obj-y += init-mm.o |
aca52c39 | 67 | obj-y += memblock.o |
e3a9d9fc | 68 | obj-y += $(memory-hotplug-y) |
09325873 | 69 | |
d3ac21ca | 70 | ifdef CONFIG_MMU |
887e7019 | 71 | obj-$(CONFIG_ADVISE_SYSCALLS) += madvise.o |
d3ac21ca | 72 | endif |
95f72d1e | 73 | |
8e7a0c91 | 74 | obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o swap_slots.o |
2b281117 | 75 | obj-$(CONFIG_ZSWAP) += zswap.o |
141e9d4b | 76 | obj-$(CONFIG_HAS_DMA) += dmapool.o |
1da177e4 | 77 | obj-$(CONFIG_HUGETLBFS) += hugetlb.o |
47010c04 | 78 | obj-$(CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP) += hugetlb_vmemmap.o |
1da177e4 | 79 | obj-$(CONFIG_NUMA) += mempolicy.o |
d41dee36 | 80 | obj-$(CONFIG_SPARSEMEM) += sparse.o |
8f6aac41 | 81 | obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o |
cddb8a5c | 82 | obj-$(CONFIG_MMU_NOTIFIER) += mmu_notifier.o |
f8af4da3 | 83 | obj-$(CONFIG_KSM) += ksm.o |
8823b1db | 84 | obj-$(CONFIG_PAGE_POISONING) += page_poison.o |
10cef602 | 85 | obj-$(CONFIG_SLAB) += slab.o |
81819f0f | 86 | obj-$(CONFIG_SLUB) += slub.o |
0b24becc | 87 | obj-$(CONFIG_KASAN) += kasan/ |
0ce20dd8 | 88 | obj-$(CONFIG_KFENCE) += kfence/ |
f80be457 | 89 | obj-$(CONFIG_KMSAN) += kmsan/ |
773ff60e | 90 | obj-$(CONFIG_FAILSLAB) += failslab.o |
0866e82e | 91 | obj-$(CONFIG_FAIL_PAGE_ALLOC) += fail_page_alloc.o |
4a20799d | 92 | obj-$(CONFIG_MEMTEST) += memtest.o |
b20a3503 | 93 | obj-$(CONFIG_MIGRATION) += migrate.o |
992bf775 | 94 | obj-$(CONFIG_NUMA) += memory-tiers.o |
76cbbead | 95 | obj-$(CONFIG_DEVICE_MIGRATION) += migrate_device.o |
b46e756f | 96 | obj-$(CONFIG_TRANSPARENT_HUGEPAGE) += huge_memory.o khugepaged.o |
3e32cb2e | 97 | obj-$(CONFIG_PAGE_COUNTER) += page_counter.o |
5d1ea48b | 98 | obj-$(CONFIG_MEMCG) += memcontrol.o vmpressure.o |
e55b9f96 JW |
99 | ifdef CONFIG_SWAP |
100 | obj-$(CONFIG_MEMCG) += swap_cgroup.o | |
101 | endif | |
2bc64a20 | 102 | obj-$(CONFIG_CGROUP_HUGETLB) += hugetlb_cgroup.o |
9c84f229 | 103 | obj-$(CONFIG_GUP_TEST) += gup_test.o |
def85743 | 104 | obj-$(CONFIG_DMAPOOL_TEST) += dmapool_test.o |
6a46079c | 105 | obj-$(CONFIG_MEMORY_FAILURE) += memory-failure.o |
cae681fc | 106 | obj-$(CONFIG_HWPOISON_INJECT) += hwpoison-inject.o |
3bba00d7 | 107 | obj-$(CONFIG_DEBUG_KMEMLEAK) += kmemleak.o |
2959a5f7 | 108 | obj-$(CONFIG_DEBUG_RODATA_TEST) += rodata_test.o |
399145f9 | 109 | obj-$(CONFIG_DEBUG_VM_PGTABLE) += debug_vm_pgtable.o |
48c96a36 | 110 | obj-$(CONFIG_PAGE_OWNER) += page_owner.o |
ee6f509c | 111 | obj-$(CONFIG_MEMORY_ISOLATION) += page_isolation.o |
af8d417a | 112 | obj-$(CONFIG_ZPOOL) += zpool.o |
4e2e2770 | 113 | obj-$(CONFIG_ZBUD) += zbud.o |
bcf1647d | 114 | obj-$(CONFIG_ZSMALLOC) += zsmalloc.o |
9a001fc1 | 115 | obj-$(CONFIG_Z3FOLD) += z3fold.o |
9e5c33d7 | 116 | obj-$(CONFIG_GENERIC_EARLY_IOREMAP) += early_ioremap.o |
a254129e | 117 | obj-$(CONFIG_CMA) += cma.o |
09316c09 | 118 | obj-$(CONFIG_MEMORY_BALLOON) += balloon_compaction.o |
eefa864b | 119 | obj-$(CONFIG_PAGE_EXTENSION) += page_ext.o |
df4e817b | 120 | obj-$(CONFIG_PAGE_TABLE_CHECK) += page_table_check.o |
28b24c1f | 121 | obj-$(CONFIG_CMA_DEBUGFS) += cma_debug.o |
1507f512 | 122 | obj-$(CONFIG_SECRETMEM) += secretmem.o |
43ca106f | 123 | obj-$(CONFIG_CMA_SYSFS) += cma_sysfs.o |
c1a4de99 | 124 | obj-$(CONFIG_USERFAULTFD) += userfaultfd.o |
33c3fc71 | 125 | obj-$(CONFIG_IDLE_PAGE_TRACKING) += page_idle.o |
884c175f | 126 | obj-$(CONFIG_DEBUG_PAGEALLOC) += debug_page_alloc.o |
95813b8f | 127 | obj-$(CONFIG_DEBUG_PAGE_REF) += debug_page_ref.o |
2224d848 | 128 | obj-$(CONFIG_DAMON) += damon/ |
f5509cc1 | 129 | obj-$(CONFIG_HARDENED_USERCOPY) += usercopy.o |
30a5b536 | 130 | obj-$(CONFIG_PERCPU_STATS) += percpu-stats.o |
14c5ceba | 131 | obj-$(CONFIG_ZONE_DEVICE) += memremap.o |
43535b0a | 132 | obj-$(CONFIG_HMM_MIRROR) += hmm.o |
5d752600 | 133 | obj-$(CONFIG_MEMFD_CREATE) += memfd.o |
c5acad84 | 134 | obj-$(CONFIG_MAPPING_DIRTY_HELPERS) += mapping_dirty_helpers.o |
30d621f6 | 135 | obj-$(CONFIG_PTDUMP_CORE) += ptdump.o |
36e66c55 | 136 | obj-$(CONFIG_PAGE_REPORTING) += page_reporting.o |
1fbaf8fc | 137 | obj-$(CONFIG_IO_MAPPING) += io-mapping.o |
426e5c42 | 138 | obj-$(CONFIG_HAVE_BOOTMEM_INFO_NODE) += bootmem_info.o |
82a70ce0 | 139 | obj-$(CONFIG_GENERIC_IOREMAP) += ioremap.o |
5035ebc6 | 140 | obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o |