Kconfig (94709049fb8442fb2f7b91fbec3c2897a75e18df) Kconfig (60bccaa671bce7ed040d9511b0738ca3b0a0e9ff)
1# SPDX-License-Identifier: GPL-2.0-only
2
3menu "Memory Management options"
4
5config SELECT_MEMORY_MODEL
6 def_bool y
7 depends on ARCH_SELECT_MEMORY_MODEL
8

--- 178 unchanged lines hidden (view full) ---

187 depends on MIGRATION
188
189# Heavily threaded applications may benefit from splitting the mm-wide
190# page_table_lock, so that faults on different parts of the user address
191# space can be handled with less contention: split it at this NR_CPUS.
192# Default to 4 for wider testing, though 8 might be more appropriate.
193# ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.
194# PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes.
1# SPDX-License-Identifier: GPL-2.0-only
2
3menu "Memory Management options"
4
5config SELECT_MEMORY_MODEL
6 def_bool y
7 depends on ARCH_SELECT_MEMORY_MODEL
8

--- 178 unchanged lines hidden (view full) ---

187 depends on MIGRATION
188
189# Heavily threaded applications may benefit from splitting the mm-wide
190# page_table_lock, so that faults on different parts of the user address
191# space can be handled with less contention: split it at this NR_CPUS.
192# Default to 4 for wider testing, though 8 might be more appropriate.
193# ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.
194# PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes.
195# SPARC32 allocates multiple pte tables within a single page, and therefore
196# a per-page lock leads to problems when multiple tables need to be locked
197# at the same time (e.g. copy_page_range()).
195# DEBUG_SPINLOCK and DEBUG_LOCK_ALLOC spinlock_t also enlarge struct page.
196#
197config SPLIT_PTLOCK_CPUS
198 int
199 default "999999" if !MMU
200 default "999999" if ARM && !CPU_CACHE_VIPT
201 default "999999" if PARISC && !PA20
198# DEBUG_SPINLOCK and DEBUG_LOCK_ALLOC spinlock_t also enlarge struct page.
199#
200config SPLIT_PTLOCK_CPUS
201 int
202 default "999999" if !MMU
203 default "999999" if ARM && !CPU_CACHE_VIPT
204 default "999999" if PARISC && !PA20
205 default "999999" if SPARC32
202 default "4"
203
204config ARCH_ENABLE_SPLIT_PMD_PTLOCK
205 bool
206
207#
208# support for memory balloon
209config MEMORY_BALLOON

--- 490 unchanged lines hidden (view full) ---

700 help
701 zsmalloc is a slab-based memory allocator designed to store
702 compressed RAM pages. zsmalloc uses virtual memory mapping
703 in order to reduce fragmentation. However, this results in a
704 non-standard allocator interface where a handle, not a pointer, is
705 returned by an alloc(). This handle must be mapped in order to
706 access the allocated space.
707
206 default "4"
207
208config ARCH_ENABLE_SPLIT_PMD_PTLOCK
209 bool
210
211#
212# support for memory balloon
213config MEMORY_BALLOON

--- 490 unchanged lines hidden (view full) ---

704 help
705 zsmalloc is a slab-based memory allocator designed to store
706 compressed RAM pages. zsmalloc uses virtual memory mapping
707 in order to reduce fragmentation. However, this results in a
708 non-standard allocator interface where a handle, not a pointer, is
709 returned by an alloc(). This handle must be mapped in order to
710 access the allocated space.
711
708config ZSMALLOC_PGTABLE_MAPPING
712config PGTABLE_MAPPING
709 bool "Use page table mapping to access object in zsmalloc"
713 bool "Use page table mapping to access object in zsmalloc"
710 depends on ZSMALLOC=y
714 depends on ZSMALLOC
711 help
712 By default, zsmalloc uses a copy-based object mapping method to
713 access allocations that span two pages. However, if a particular
714 architecture (ex, ARM) performs VM mapping faster than copying,
715 then you should select this. This causes zsmalloc to use page table
716 mapping rather than copying for object mapping.
717
718 You can check speed with zsmalloc benchmark:

--- 152 unchanged lines hidden ---
715 help
716 By default, zsmalloc uses a copy-based object mapping method to
717 access allocations that span two pages. However, if a particular
718 architecture (ex, ARM) performs VM mapping faster than copying,
719 then you should select this. This causes zsmalloc to use page table
720 mapping rather than copying for object mapping.
721
722 You can check speed with zsmalloc benchmark:

--- 152 unchanged lines hidden ---