Greg Kroah-Hartman | b244131 | 2017-11-01 15:07:57 +0100 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-2.0 |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 2 | # |
| 3 | # Makefile for the linux memory manager. |
| 4 | # |
| 5 | |
Andrey Ryabinin | 0316bec | 2015-02-13 14:39:42 -0800 | [diff] [blame] | 6 | KASAN_SANITIZE_slab_common.o := n |
Alexander Potapenko | 7ed2f9e | 2016-03-25 14:21:59 -0700 | [diff] [blame] | 7 | KASAN_SANITIZE_slab.o := n |
Andrey Ryabinin | 0316bec | 2015-02-13 14:39:42 -0800 | [diff] [blame] | 8 | KASAN_SANITIZE_slub.o := n |
Qian Cai | 5f2d502 | 2020-04-01 21:04:37 -0700 | [diff] [blame] | 9 | KCSAN_SANITIZE_kmemleak.o := n |
Andrey Ryabinin | 0316bec | 2015-02-13 14:39:42 -0800 | [diff] [blame] | 10 | |
Marco Elver | 0ebba71 | 2019-11-14 19:02:58 +0100 | [diff] [blame] | 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 |
Marco Elver | d37d1fa | 2021-11-30 12:44:28 +0100 | [diff] [blame] | 18 | # But enable explicit instrumentation for memory barriers. |
| 19 | KCSAN_INSTRUMENT_BARRIERS := y |
Marco Elver | 0ebba71 | 2019-11-14 19:02:58 +0100 | [diff] [blame] | 20 | |
Dmitry Vyukov | 5c9a875 | 2016-03-22 14:27:30 -0700 | [diff] [blame] | 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 |
| 25 | KCOV_INSTRUMENT_slob.o := n |
| 26 | KCOV_INSTRUMENT_slab.o := n |
| 27 | KCOV_INSTRUMENT_slub.o := n |
| 28 | KCOV_INSTRUMENT_page_alloc.o := n |
| 29 | KCOV_INSTRUMENT_debug-pagealloc.o := n |
| 30 | KCOV_INSTRUMENT_kmemleak.o := n |
Dmitry Vyukov | 5c9a875 | 2016-03-22 14:27:30 -0700 | [diff] [blame] | 31 | KCOV_INSTRUMENT_memcontrol.o := n |
| 32 | KCOV_INSTRUMENT_mmzone.o := n |
| 33 | KCOV_INSTRUMENT_vmstat.o := n |
Dmitry Vyukov | 43e76af | 2020-01-30 22:17:35 -0800 | [diff] [blame] | 34 | KCOV_INSTRUMENT_failslab.o := n |
Dmitry Vyukov | 5c9a875 | 2016-03-22 14:27:30 -0700 | [diff] [blame] | 35 | |
Qian Cai | b57a775 | 2019-09-23 15:36:48 -0700 | [diff] [blame] | 36 | CFLAGS_init-mm.o += $(call cc-disable-warning, override-init) |
| 37 | CFLAGS_init-mm.o += $(call cc-disable-warning, initializer-overrides) |
| 38 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 39 | mmu-y := nommu.o |
Christoph Hellwig | 050a9ad | 2019-07-11 20:57:21 -0700 | [diff] [blame] | 40 | mmu-$(CONFIG_MMU) := highmem.o memory.o mincore.o \ |
Peter Zijlstra | 196d9d8 | 2018-09-03 15:07:36 +0100 | [diff] [blame] | 41 | mlock.o mmap.o mmu_gather.o mprotect.o mremap.o \ |
| 42 | msync.o page_vma_mapped.o pagewalk.o \ |
Christoph Hellwig | 82a70ce | 2021-09-07 19:56:01 -0700 | [diff] [blame] | 43 | pgtable-generic.o rmap.o vmalloc.o |
Kirill A. Shutemov | ace71a1 | 2017-02-24 14:57:45 -0800 | [diff] [blame] | 44 | |
Christopher Yeoh | 5febcbe | 2012-05-29 15:06:27 -0700 | [diff] [blame] | 45 | |
| 46 | ifdef CONFIG_CROSS_MEMORY_ATTACH |
| 47 | mmu-$(CONFIG_MMU) += process_vm_access.o |
| 48 | endif |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 49 | |
Amir Goldstein | 3d8f761 | 2018-08-29 08:41:29 +0300 | [diff] [blame] | 50 | obj-y := filemap.o mempool.o oom_kill.o fadvise.o \ |
Matthew Wilcox (Oracle) | 2f52578 | 2020-12-10 10:55:05 -0500 | [diff] [blame] | 51 | maccess.o page-writeback.o folio-compat.o \ |
Matt Mackall | 853ac43 | 2009-01-06 14:40:20 -0800 | [diff] [blame] | 52 | readahead.o swap.o truncate.o vmscan.o shmem.o \ |
Michel Lespinasse | 6b2dbba | 2012-10-08 16:31:25 -0700 | [diff] [blame] | 53 | util.o mmzone.o vmstat.o backing-dev.o \ |
Christoph Hellwig | 9bf5b9eb | 2020-06-10 18:41:59 -0700 | [diff] [blame] | 54 | mm_init.o percpu.o slab_common.o \ |
Randy Dunlap | 8e7a0c9 | 2018-04-05 16:22:23 -0700 | [diff] [blame] | 55 | compaction.o vmacache.o \ |
Linus Torvalds | 5166701 | 2014-04-12 14:49:50 -0700 | [diff] [blame] | 56 | interval_tree.o list_lru.o workingset.o \ |
Axel Rasmussen | 2b5067a | 2020-12-14 19:07:55 -0800 | [diff] [blame] | 57 | debug.o gup.o mmap_lock.o $(mmu-y) |
Christoph Lameter | 039363f | 2012-07-06 15:25:10 -0500 | [diff] [blame] | 58 | |
Dan Williams | e900a91 | 2019-05-14 15:41:28 -0700 | [diff] [blame] | 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 | |
Oscar Salvador | e3a9d9f | 2021-05-04 18:39:48 -0700 | [diff] [blame] | 63 | # Give 'memory_hotplug' its own module-parameter namespace |
| 64 | memory-hotplug-$(CONFIG_MEMORY_HOTPLUG) += memory_hotplug.o |
| 65 | |
Dan Williams | e900a91 | 2019-05-14 15:41:28 -0700 | [diff] [blame] | 66 | obj-y += page-alloc.o |
Alexey Dobriyan | bb1f17b | 2009-06-16 15:31:18 -0700 | [diff] [blame] | 67 | obj-y += init-mm.o |
Mike Rapoport | aca52c3 | 2018-10-30 15:07:44 -0700 | [diff] [blame] | 68 | obj-y += memblock.o |
Oscar Salvador | e3a9d9f | 2021-05-04 18:39:48 -0700 | [diff] [blame] | 69 | obj-y += $(memory-hotplug-y) |
Yinghai Lu | 0932587 | 2011-02-24 14:43:05 +0100 | [diff] [blame] | 70 | |
Josh Triplett | d3ac21c | 2014-08-17 19:41:09 -0500 | [diff] [blame] | 71 | ifdef CONFIG_MMU |
Josh Triplett | 887e701 | 2014-10-10 13:12:28 -0700 | [diff] [blame] | 72 | obj-$(CONFIG_ADVISE_SYSCALLS) += madvise.o |
Josh Triplett | d3ac21c | 2014-08-17 19:41:09 -0500 | [diff] [blame] | 73 | endif |
Yinghai Lu | 95f72d1 | 2010-07-12 14:36:09 +1000 | [diff] [blame] | 74 | |
Randy Dunlap | 8e7a0c9 | 2018-04-05 16:22:23 -0700 | [diff] [blame] | 75 | obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o swap_slots.o |
Dan Magenheimer | 27c6aec | 2012-04-09 17:10:34 -0600 | [diff] [blame] | 76 | obj-$(CONFIG_FRONTSWAP) += frontswap.o |
Seth Jennings | 2b28111 | 2013-07-10 16:05:03 -0700 | [diff] [blame] | 77 | obj-$(CONFIG_ZSWAP) += zswap.o |
Matthew Wilcox | 141e9d4 | 2007-12-03 11:57:48 -0500 | [diff] [blame] | 78 | obj-$(CONFIG_HAS_DMA) += dmapool.o |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 79 | obj-$(CONFIG_HUGETLBFS) += hugetlb.o |
Muchun Song | f41f2ed | 2021-06-30 18:47:13 -0700 | [diff] [blame] | 80 | obj-$(CONFIG_HUGETLB_PAGE_FREE_VMEMMAP) += hugetlb_vmemmap.o |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 81 | obj-$(CONFIG_NUMA) += mempolicy.o |
Andy Whitcroft | d41dee3 | 2005-06-23 00:07:54 -0700 | [diff] [blame] | 82 | obj-$(CONFIG_SPARSEMEM) += sparse.o |
Christoph Lameter | 8f6aac4 | 2007-10-16 01:24:13 -0700 | [diff] [blame] | 83 | obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o |
Matt Mackall | 10cef60 | 2006-01-08 01:01:45 -0800 | [diff] [blame] | 84 | obj-$(CONFIG_SLOB) += slob.o |
Andrea Arcangeli | cddb8a5 | 2008-07-28 15:46:29 -0700 | [diff] [blame] | 85 | obj-$(CONFIG_MMU_NOTIFIER) += mmu_notifier.o |
Hugh Dickins | f8af4da | 2009-09-21 17:01:57 -0700 | [diff] [blame] | 86 | obj-$(CONFIG_KSM) += ksm.o |
Laura Abbott | 8823b1d | 2016-03-15 14:56:27 -0700 | [diff] [blame] | 87 | obj-$(CONFIG_PAGE_POISONING) += page_poison.o |
Matt Mackall | 10cef60 | 2006-01-08 01:01:45 -0800 | [diff] [blame] | 88 | obj-$(CONFIG_SLAB) += slab.o |
Christoph Lameter | 81819f0 | 2007-05-06 14:49:36 -0700 | [diff] [blame] | 89 | obj-$(CONFIG_SLUB) += slub.o |
Andrey Ryabinin | 0b24bec | 2015-02-13 14:39:17 -0800 | [diff] [blame] | 90 | obj-$(CONFIG_KASAN) += kasan/ |
Alexander Potapenko | 0ce20dd | 2021-02-25 17:18:53 -0800 | [diff] [blame] | 91 | obj-$(CONFIG_KFENCE) += kfence/ |
Akinobu Mita | 773ff60 | 2008-12-23 19:37:01 +0900 | [diff] [blame] | 92 | obj-$(CONFIG_FAILSLAB) += failslab.o |
Vladimir Murzin | 4a20799 | 2015-04-14 15:48:27 -0700 | [diff] [blame] | 93 | obj-$(CONFIG_MEMTEST) += memtest.o |
Christoph Lameter | b20a350 | 2006-03-22 00:09:12 -0800 | [diff] [blame] | 94 | obj-$(CONFIG_MIGRATION) += migrate.o |
Kirill A. Shutemov | b46e756 | 2016-07-26 15:26:24 -0700 | [diff] [blame] | 95 | obj-$(CONFIG_TRANSPARENT_HUGEPAGE) += huge_memory.o khugepaged.o |
Johannes Weiner | 3e32cb2 | 2014-12-10 15:42:31 -0800 | [diff] [blame] | 96 | obj-$(CONFIG_PAGE_COUNTER) += page_counter.o |
Johannes Weiner | 5d1ea48 | 2014-12-10 15:44:55 -0800 | [diff] [blame] | 97 | obj-$(CONFIG_MEMCG) += memcontrol.o vmpressure.o |
| 98 | obj-$(CONFIG_MEMCG_SWAP) += swap_cgroup.o |
Aneesh Kumar K.V | 2bc64a2 | 2012-07-31 16:42:12 -0700 | [diff] [blame] | 99 | obj-$(CONFIG_CGROUP_HUGETLB) += hugetlb_cgroup.o |
John Hubbard | 9c84f22 | 2020-12-14 19:05:05 -0800 | [diff] [blame] | 100 | obj-$(CONFIG_GUP_TEST) += gup_test.o |
Andi Kleen | 6a46079 | 2009-09-16 11:50:15 +0200 | [diff] [blame] | 101 | obj-$(CONFIG_MEMORY_FAILURE) += memory-failure.o |
Andi Kleen | cae681f | 2009-09-16 11:50:17 +0200 | [diff] [blame] | 102 | obj-$(CONFIG_HWPOISON_INJECT) += hwpoison-inject.o |
Catalin Marinas | 3bba00d | 2009-06-11 13:24:13 +0100 | [diff] [blame] | 103 | obj-$(CONFIG_DEBUG_KMEMLEAK) += kmemleak.o |
Jinbum Park | 2959a5f | 2017-02-27 14:30:22 -0800 | [diff] [blame] | 104 | obj-$(CONFIG_DEBUG_RODATA_TEST) += rodata_test.o |
Anshuman Khandual | 399145f | 2020-06-04 16:47:15 -0700 | [diff] [blame] | 105 | obj-$(CONFIG_DEBUG_VM_PGTABLE) += debug_vm_pgtable.o |
Joonsoo Kim | 48c96a3 | 2014-12-12 16:56:01 -0800 | [diff] [blame] | 106 | obj-$(CONFIG_PAGE_OWNER) += page_owner.o |
Minchan Kim | ee6f509 | 2012-07-31 16:43:50 -0700 | [diff] [blame] | 107 | obj-$(CONFIG_MEMORY_ISOLATION) += page_isolation.o |
Dan Streetman | af8d417 | 2014-08-06 16:08:36 -0700 | [diff] [blame] | 108 | obj-$(CONFIG_ZPOOL) += zpool.o |
Seth Jennings | 4e2e277 | 2013-07-10 16:04:55 -0700 | [diff] [blame] | 109 | obj-$(CONFIG_ZBUD) += zbud.o |
Minchan Kim | bcf1647 | 2014-01-30 15:45:50 -0800 | [diff] [blame] | 110 | obj-$(CONFIG_ZSMALLOC) += zsmalloc.o |
Vitaly Wool | 9a001fc | 2016-05-20 16:58:30 -0700 | [diff] [blame] | 111 | obj-$(CONFIG_Z3FOLD) += z3fold.o |
Mark Salter | 9e5c33d | 2014-04-07 15:39:48 -0700 | [diff] [blame] | 112 | obj-$(CONFIG_GENERIC_EARLY_IOREMAP) += early_ioremap.o |
Joonsoo Kim | a254129 | 2014-08-06 16:05:25 -0700 | [diff] [blame] | 113 | obj-$(CONFIG_CMA) += cma.o |
Konstantin Khlebnikov | 09316c0 | 2014-10-09 15:29:32 -0700 | [diff] [blame] | 114 | obj-$(CONFIG_MEMORY_BALLOON) += balloon_compaction.o |
Joonsoo Kim | eefa864b | 2014-12-12 16:55:46 -0800 | [diff] [blame] | 115 | obj-$(CONFIG_PAGE_EXTENSION) += page_ext.o |
Pasha Tatashin | df4e817 | 2022-01-14 14:06:37 -0800 | [diff] [blame] | 116 | obj-$(CONFIG_PAGE_TABLE_CHECK) += page_table_check.o |
Sasha Levin | 28b24c1 | 2015-04-14 15:44:57 -0700 | [diff] [blame] | 117 | obj-$(CONFIG_CMA_DEBUGFS) += cma_debug.o |
Mike Rapoport | 1507f51 | 2021-07-07 18:08:03 -0700 | [diff] [blame] | 118 | obj-$(CONFIG_SECRETMEM) += secretmem.o |
Minchan Kim | 43ca106 | 2021-05-04 18:37:28 -0700 | [diff] [blame] | 119 | obj-$(CONFIG_CMA_SYSFS) += cma_sysfs.o |
Andrea Arcangeli | c1a4de9 | 2015-09-04 15:47:04 -0700 | [diff] [blame] | 120 | obj-$(CONFIG_USERFAULTFD) += userfaultfd.o |
Vladimir Davydov | 33c3fc7 | 2015-09-09 15:35:45 -0700 | [diff] [blame] | 121 | obj-$(CONFIG_IDLE_PAGE_TRACKING) += page_idle.o |
Joonsoo Kim | 95813b8 | 2016-03-17 14:19:29 -0700 | [diff] [blame] | 122 | obj-$(CONFIG_DEBUG_PAGE_REF) += debug_page_ref.o |
SeongJae Park | 2224d84 | 2021-09-07 19:56:28 -0700 | [diff] [blame] | 123 | obj-$(CONFIG_DAMON) += damon/ |
Kees Cook | f5509cc | 2016-06-07 11:05:33 -0700 | [diff] [blame] | 124 | obj-$(CONFIG_HARDENED_USERCOPY) += usercopy.o |
Dennis Zhou | 30a5b53 | 2017-06-19 19:28:31 -0400 | [diff] [blame] | 125 | obj-$(CONFIG_PERCPU_STATS) += percpu-stats.o |
Christoph Hellwig | 14c5ceb | 2019-08-02 21:49:26 -0700 | [diff] [blame] | 126 | obj-$(CONFIG_ZONE_DEVICE) += memremap.o |
Christoph Hellwig | 43535b0 | 2019-06-26 14:27:23 +0200 | [diff] [blame] | 127 | obj-$(CONFIG_HMM_MIRROR) += hmm.o |
Mike Kravetz | 5d75260 | 2018-06-07 17:06:01 -0700 | [diff] [blame] | 128 | obj-$(CONFIG_MEMFD_CREATE) += memfd.o |
Thomas Hellstrom | c5acad8 | 2019-03-19 13:12:30 +0100 | [diff] [blame] | 129 | obj-$(CONFIG_MAPPING_DIRTY_HELPERS) += mapping_dirty_helpers.o |
Steven Price | 30d621f | 2020-02-03 17:36:20 -0800 | [diff] [blame] | 130 | obj-$(CONFIG_PTDUMP_CORE) += ptdump.o |
Alexander Duyck | 36e66c5 | 2020-04-06 20:04:56 -0700 | [diff] [blame] | 131 | obj-$(CONFIG_PAGE_REPORTING) += page_reporting.o |
Christoph Hellwig | 1fbaf8f | 2021-04-29 22:57:32 -0700 | [diff] [blame] | 132 | obj-$(CONFIG_IO_MAPPING) += io-mapping.o |
Muchun Song | 426e5c4 | 2021-06-30 18:47:00 -0700 | [diff] [blame] | 133 | obj-$(CONFIG_HAVE_BOOTMEM_INFO_NODE) += bootmem_info.o |
Christoph Hellwig | 82a70ce | 2021-09-07 19:56:01 -0700 | [diff] [blame] | 134 | obj-$(CONFIG_GENERIC_IOREMAP) += ioremap.o |