]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | # SPDX-License-Identifier: GPL-2.0 |
1da177e4 LT |
2 | # |
3 | # Makefile for the linux memory manager. | |
4 | # | |
5 | ||
0316bec2 AR |
6 | KASAN_SANITIZE_slab_common.o := n |
7 | KASAN_SANITIZE_slub.o := n | |
c8d36bc2 | 8 | KASAN_SANITIZE_kmemleak.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 | |
0ebba714 ME |
15 | KCSAN_SANITIZE_slub.o := n |
16 | KCSAN_SANITIZE_page_alloc.o := n | |
d37d1fa0 ME |
17 | # But enable explicit instrumentation for memory barriers. |
18 | KCSAN_INSTRUMENT_BARRIERS := y | |
0ebba714 | 19 | |
5c9a8750 DV |
20 | # These files are disabled because they produce non-interesting and/or |
21 | # flaky coverage that is not a function of syscall inputs. E.g. slab is out of | |
22 | # free pages, or a task is migrated between nodes. | |
23 | KCOV_INSTRUMENT_slab_common.o := n | |
5c9a8750 DV |
24 | KCOV_INSTRUMENT_slub.o := n |
25 | KCOV_INSTRUMENT_page_alloc.o := n | |
26 | KCOV_INSTRUMENT_debug-pagealloc.o := n | |
27 | KCOV_INSTRUMENT_kmemleak.o := n | |
5c9a8750 DV |
28 | KCOV_INSTRUMENT_memcontrol.o := n |
29 | KCOV_INSTRUMENT_mmzone.o := n | |
30 | KCOV_INSTRUMENT_vmstat.o := n | |
43e76af8 | 31 | KCOV_INSTRUMENT_failslab.o := n |
5c9a8750 | 32 | |
c40845e3 | 33 | CFLAGS_init-mm.o += -Wno-override-init |
b57a775f | 34 | |
1da177e4 | 35 | mmu-y := nommu.o |
050a9adc | 36 | mmu-$(CONFIG_MMU) := highmem.o memory.o mincore.o \ |
196d9d8b PZ |
37 | mlock.o mmap.o mmu_gather.o mprotect.o mremap.o \ |
38 | msync.o page_vma_mapped.o pagewalk.o \ | |
82a70ce0 | 39 | pgtable-generic.o rmap.o vmalloc.o |
ace71a19 | 40 | |
5febcbe9 CY |
41 | |
42 | ifdef CONFIG_CROSS_MEMORY_ATTACH | |
43 | mmu-$(CONFIG_MMU) += process_vm_access.o | |
44 | endif | |
1da177e4 | 45 | |
8be7258a JX |
46 | ifdef CONFIG_64BIT |
47 | mmu-$(CONFIG_MMU) += mseal.o | |
48 | endif | |
49 | ||
3d8f7615 | 50 | obj-y := filemap.o mempool.o oom_kill.o fadvise.o \ |
2f52578f | 51 | maccess.o page-writeback.o folio-compat.o \ |
96f7b2b9 QZ |
52 | readahead.o swap.o truncate.o vmscan.o shrinker.o \ |
53 | shmem.o util.o mmzone.o vmstat.o backing-dev.o \ | |
9bf5b9eb | 54 | mm_init.o percpu.o slab_common.o \ |
eafc474e | 55 | compaction.o show_mem.o shmem_quota.o\ |
5166701b | 56 | interval_tree.o list_lru.o workingset.o \ |
2b5067a8 | 57 | debug.o gup.o mmap_lock.o $(mmu-y) |
039363f3 | 58 | |
e900a918 DW |
59 | # Give 'page_alloc' its own module-parameter namespace |
60 | page-alloc-y := page_alloc.o | |
61 | page-alloc-$(CONFIG_SHUFFLE_PAGE_ALLOCATOR) += shuffle.o | |
62 | ||
e3a9d9fc OS |
63 | # Give 'memory_hotplug' its own module-parameter namespace |
64 | memory-hotplug-$(CONFIG_MEMORY_HOTPLUG) += memory_hotplug.o | |
65 | ||
e900a918 | 66 | obj-y += page-alloc.o |
bb1f17b0 | 67 | obj-y += init-mm.o |
aca52c39 | 68 | obj-y += memblock.o |
e3a9d9fc | 69 | obj-y += $(memory-hotplug-y) |
2a19be61 | 70 | obj-y += slub.o |
09325873 | 71 | |
d3ac21ca | 72 | ifdef CONFIG_MMU |
887e7019 | 73 | obj-$(CONFIG_ADVISE_SYSCALLS) += madvise.o |
d3ac21ca | 74 | endif |
95f72d1e | 75 | |
8e7a0c91 | 76 | obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o swap_slots.o |
2b281117 | 77 | obj-$(CONFIG_ZSWAP) += zswap.o |
141e9d4b | 78 | obj-$(CONFIG_HAS_DMA) += dmapool.o |
1da177e4 | 79 | obj-$(CONFIG_HUGETLBFS) += hugetlb.o |
47010c04 | 80 | obj-$(CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP) += hugetlb_vmemmap.o |
1da177e4 | 81 | obj-$(CONFIG_NUMA) += mempolicy.o |
d41dee36 | 82 | obj-$(CONFIG_SPARSEMEM) += sparse.o |
8f6aac41 | 83 | obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o |
cddb8a5c | 84 | obj-$(CONFIG_MMU_NOTIFIER) += mmu_notifier.o |
f8af4da3 | 85 | obj-$(CONFIG_KSM) += ksm.o |
8823b1db | 86 | obj-$(CONFIG_PAGE_POISONING) += page_poison.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 |
12af2b83 | 141 | obj-$(CONFIG_EXECMEM) += execmem.o |