mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 21:51:40 +00:00
7fa8a8ee94
switching from a user process to a kernel thread. - More folio conversions from Kefeng Wang, Zhang Peng and Pankaj Raghav. - zsmalloc performance improvements from Sergey Senozhatsky. - Yue Zhao has found and fixed some data race issues around the alteration of memcg userspace tunables. - VFS rationalizations from Christoph Hellwig: - removal of most of the callers of write_one_page(). - make __filemap_get_folio()'s return value more useful - Luis Chamberlain has changed tmpfs so it no longer requires swap backing. Use `mount -o noswap'. - Qi Zheng has made the slab shrinkers operate locklessly, providing some scalability benefits. - Keith Busch has improved dmapool's performance, making part of its operations O(1) rather than O(n). - Peter Xu adds the UFFD_FEATURE_WP_UNPOPULATED feature to userfaultd, permitting userspace to wr-protect anon memory unpopulated ptes. - Kirill Shutemov has changed MAX_ORDER's meaning to be inclusive rather than exclusive, and has fixed a bunch of errors which were caused by its unintuitive meaning. - Axel Rasmussen give userfaultfd the UFFDIO_CONTINUE_MODE_WP feature, which causes minor faults to install a write-protected pte. - Vlastimil Babka has done some maintenance work on vma_merge(): cleanups to the kernel code and improvements to our userspace test harness. - Cleanups to do_fault_around() by Lorenzo Stoakes. - Mike Rapoport has moved a lot of initialization code out of various mm/ files and into mm/mm_init.c. - Lorenzo Stoakes removd vmf_insert_mixed_prot(), which was added for DRM, but DRM doesn't use it any more. - Lorenzo has also coverted read_kcore() and vread() to use iterators and has thereby removed the use of bounce buffers in some cases. - Lorenzo has also contributed further cleanups of vma_merge(). - Chaitanya Prakash provides some fixes to the mmap selftesting code. - Matthew Wilcox changes xfs and afs so they no longer take sleeping locks in ->map_page(), a step towards RCUification of pagefaults. - Suren Baghdasaryan has improved mmap_lock scalability by switching to per-VMA locking. - Frederic Weisbecker has reworked the percpu cache draining so that it no longer causes latency glitches on cpu isolated workloads. - Mike Rapoport cleans up and corrects the ARCH_FORCE_MAX_ORDER Kconfig logic. - Liu Shixin has changed zswap's initialization so we no longer waste a chunk of memory if zswap is not being used. - Yosry Ahmed has improved the performance of memcg statistics flushing. - David Stevens has fixed several issues involving khugepaged, userfaultfd and shmem. - Christoph Hellwig has provided some cleanup work to zram's IO-related code paths. - David Hildenbrand has fixed up some issues in the selftest code's testing of our pte state changing. - Pankaj Raghav has made page_endio() unneeded and has removed it. - Peter Xu contributed some rationalizations of the userfaultfd selftests. - Yosry Ahmed has fixed an issue around memcg's page recalim accounting. - Chaitanya Prakash has fixed some arm-related issues in the selftests/mm code. - Longlong Xia has improved the way in which KSM handles hwpoisoned pages. - Peter Xu fixes a few issues with uffd-wp at fork() time. - Stefan Roesch has changed KSM so that it may now be used on a per-process and per-cgroup basis. -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQTTMBEPP41GrTpTJgfdBJ7gKXxAjgUCZEr3zQAKCRDdBJ7gKXxA jlLoAP0fpQBipwFxED0Us4SKQfupV6z4caXNJGPeay7Aj11/kQD/aMRC2uPfgr96 eMG3kwn2pqkB9ST2QpkaRbxA//eMbQY= =J+Dj -----END PGP SIGNATURE----- Merge tag 'mm-stable-2023-04-27-15-30' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Pull MM updates from Andrew Morton: - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of switching from a user process to a kernel thread. - More folio conversions from Kefeng Wang, Zhang Peng and Pankaj Raghav. - zsmalloc performance improvements from Sergey Senozhatsky. - Yue Zhao has found and fixed some data race issues around the alteration of memcg userspace tunables. - VFS rationalizations from Christoph Hellwig: - removal of most of the callers of write_one_page() - make __filemap_get_folio()'s return value more useful - Luis Chamberlain has changed tmpfs so it no longer requires swap backing. Use `mount -o noswap'. - Qi Zheng has made the slab shrinkers operate locklessly, providing some scalability benefits. - Keith Busch has improved dmapool's performance, making part of its operations O(1) rather than O(n). - Peter Xu adds the UFFD_FEATURE_WP_UNPOPULATED feature to userfaultd, permitting userspace to wr-protect anon memory unpopulated ptes. - Kirill Shutemov has changed MAX_ORDER's meaning to be inclusive rather than exclusive, and has fixed a bunch of errors which were caused by its unintuitive meaning. - Axel Rasmussen give userfaultfd the UFFDIO_CONTINUE_MODE_WP feature, which causes minor faults to install a write-protected pte. - Vlastimil Babka has done some maintenance work on vma_merge(): cleanups to the kernel code and improvements to our userspace test harness. - Cleanups to do_fault_around() by Lorenzo Stoakes. - Mike Rapoport has moved a lot of initialization code out of various mm/ files and into mm/mm_init.c. - Lorenzo Stoakes removd vmf_insert_mixed_prot(), which was added for DRM, but DRM doesn't use it any more. - Lorenzo has also coverted read_kcore() and vread() to use iterators and has thereby removed the use of bounce buffers in some cases. - Lorenzo has also contributed further cleanups of vma_merge(). - Chaitanya Prakash provides some fixes to the mmap selftesting code. - Matthew Wilcox changes xfs and afs so they no longer take sleeping locks in ->map_page(), a step towards RCUification of pagefaults. - Suren Baghdasaryan has improved mmap_lock scalability by switching to per-VMA locking. - Frederic Weisbecker has reworked the percpu cache draining so that it no longer causes latency glitches on cpu isolated workloads. - Mike Rapoport cleans up and corrects the ARCH_FORCE_MAX_ORDER Kconfig logic. - Liu Shixin has changed zswap's initialization so we no longer waste a chunk of memory if zswap is not being used. - Yosry Ahmed has improved the performance of memcg statistics flushing. - David Stevens has fixed several issues involving khugepaged, userfaultfd and shmem. - Christoph Hellwig has provided some cleanup work to zram's IO-related code paths. - David Hildenbrand has fixed up some issues in the selftest code's testing of our pte state changing. - Pankaj Raghav has made page_endio() unneeded and has removed it. - Peter Xu contributed some rationalizations of the userfaultfd selftests. - Yosry Ahmed has fixed an issue around memcg's page recalim accounting. - Chaitanya Prakash has fixed some arm-related issues in the selftests/mm code. - Longlong Xia has improved the way in which KSM handles hwpoisoned pages. - Peter Xu fixes a few issues with uffd-wp at fork() time. - Stefan Roesch has changed KSM so that it may now be used on a per-process and per-cgroup basis. * tag 'mm-stable-2023-04-27-15-30' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (369 commits) mm,unmap: avoid flushing TLB in batch if PTE is inaccessible shmem: restrict noswap option to initial user namespace mm/khugepaged: fix conflicting mods to collapse_file() sparse: remove unnecessary 0 values from rc mm: move 'mmap_min_addr' logic from callers into vm_unmapped_area() hugetlb: pte_alloc_huge() to replace huge pte_alloc_map() maple_tree: fix allocation in mas_sparse_area() mm: do not increment pgfault stats when page fault handler retries zsmalloc: allow only one active pool compaction context selftests/mm: add new selftests for KSM mm: add new KSM process and sysfs knobs mm: add new api to enable ksm per process mm: shrinkers: fix debugfs file permissions mm: don't check VMA write permissions if the PTE/PMD indicates write permissions migrate_pages_batch: fix statistics for longterm pin retry userfaultfd: use helper function range_in_vma() lib/show_mem.c: use for_each_populated_zone() simplify code mm: correct arg in reclaim_pages()/reclaim_clean_pages_from_list() fs/buffer: convert create_page_buffers to folio_create_buffers fs/buffer: add folio_create_empty_buffers helper ...
411 lines
11 KiB
Plaintext
411 lines
11 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
config PGTABLE_LEVELS
|
|
int "Page Table Levels" if !IA64_PAGE_SIZE_64KB
|
|
range 3 4 if !IA64_PAGE_SIZE_64KB
|
|
default 3
|
|
|
|
menu "Processor type and features"
|
|
|
|
config IA64
|
|
bool
|
|
select ARCH_BINFMT_ELF_EXTRA_PHDRS
|
|
select ARCH_HAS_DMA_MARK_CLEAN
|
|
select ARCH_HAS_STRNCPY_FROM_USER
|
|
select ARCH_HAS_STRNLEN_USER
|
|
select ARCH_MIGHT_HAVE_PC_PARPORT
|
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
|
select ACPI
|
|
select ACPI_NUMA if NUMA
|
|
select ARCH_ENABLE_MEMORY_HOTPLUG
|
|
select ARCH_ENABLE_MEMORY_HOTREMOVE
|
|
select ARCH_SUPPORTS_ACPI
|
|
select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
|
|
select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
|
|
select FORCE_PCI
|
|
select PCI_DOMAINS if PCI
|
|
select PCI_MSI
|
|
select PCI_SYSCALL if PCI
|
|
select HAS_IOPORT
|
|
select HAVE_ASM_MODVERSIONS
|
|
select HAVE_UNSTABLE_SCHED_CLOCK
|
|
select HAVE_EXIT_THREAD
|
|
select HAVE_KPROBES
|
|
select HAVE_KRETPROBES
|
|
select HAVE_FTRACE_MCOUNT_RECORD
|
|
select HAVE_DYNAMIC_FTRACE if (!ITANIUM)
|
|
select HAVE_FUNCTION_TRACER
|
|
select HAVE_SETUP_PER_CPU_AREA
|
|
select TTY
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_FUNCTION_DESCRIPTORS
|
|
select HAVE_VIRT_CPU_ACCOUNTING
|
|
select HUGETLB_PAGE_SIZE_VARIABLE if HUGETLB_PAGE
|
|
select GENERIC_IRQ_PROBE
|
|
select GENERIC_PENDING_IRQ if SMP
|
|
select GENERIC_IRQ_SHOW
|
|
select GENERIC_IRQ_LEGACY
|
|
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
|
select GENERIC_IOMAP
|
|
select GENERIC_SMP_IDLE_THREAD
|
|
select ARCH_TASK_STRUCT_ON_STACK
|
|
select ARCH_TASK_STRUCT_ALLOCATOR
|
|
select ARCH_THREAD_STACK_ALLOCATOR
|
|
select ARCH_CLOCKSOURCE_DATA
|
|
select GENERIC_TIME_VSYSCALL
|
|
select LEGACY_TIMER_TICK
|
|
select SWIOTLB
|
|
select SYSCTL_ARCH_UNALIGN_NO_WARN
|
|
select HAVE_MOD_ARCH_SPECIFIC
|
|
select MODULES_USE_ELF_RELA
|
|
select ARCH_USE_CMPXCHG_LOCKREF
|
|
select HAVE_ARCH_AUDITSYSCALL
|
|
select NEED_DMA_MAP_STATE
|
|
select NEED_SG_DMA_LENGTH
|
|
select NUMA if !FLATMEM
|
|
select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
|
|
select ZONE_DMA32
|
|
select FUNCTION_ALIGNMENT_32B
|
|
default y
|
|
help
|
|
The Itanium Processor Family is Intel's 64-bit successor to
|
|
the 32-bit X86 line. The IA-64 Linux project has a home
|
|
page at <http://www.linuxia64.org/> and a mailing list at
|
|
<linux-ia64@vger.kernel.org>.
|
|
|
|
config 64BIT
|
|
bool
|
|
select ATA_NONSTANDARD if ATA
|
|
default y
|
|
|
|
config MMU
|
|
bool
|
|
default y
|
|
|
|
config STACKTRACE_SUPPORT
|
|
def_bool y
|
|
|
|
config GENERIC_LOCKBREAK
|
|
def_bool n
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
bool
|
|
default y
|
|
|
|
config DMI
|
|
bool
|
|
default y
|
|
select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
|
|
|
|
config EFI
|
|
bool
|
|
select UCS2_STRING
|
|
default y
|
|
|
|
config SCHED_OMIT_FRAME_POINTER
|
|
bool
|
|
default y
|
|
|
|
config IA64_UNCACHED_ALLOCATOR
|
|
bool
|
|
select GENERIC_ALLOCATOR
|
|
|
|
config ARCH_USES_PG_UNCACHED
|
|
def_bool y
|
|
depends on IA64_UNCACHED_ALLOCATOR
|
|
|
|
config AUDIT_ARCH
|
|
bool
|
|
default y
|
|
|
|
choice
|
|
prompt "Processor type"
|
|
default ITANIUM
|
|
|
|
config ITANIUM
|
|
bool "Itanium"
|
|
help
|
|
Select your IA-64 processor type. The default is Itanium.
|
|
This choice is safe for all IA-64 systems, but may not perform
|
|
optimally on systems with, say, Itanium 2 or newer processors.
|
|
|
|
config MCKINLEY
|
|
bool "Itanium 2"
|
|
help
|
|
Select this to configure for an Itanium 2 (McKinley) processor.
|
|
|
|
endchoice
|
|
|
|
choice
|
|
prompt "Kernel page size"
|
|
default IA64_PAGE_SIZE_16KB
|
|
|
|
config IA64_PAGE_SIZE_4KB
|
|
bool "4KB"
|
|
help
|
|
This lets you select the page size of the kernel. For best IA-64
|
|
performance, a page size of 8KB or 16KB is recommended. For best
|
|
IA-32 compatibility, a page size of 4KB should be selected (the vast
|
|
majority of IA-32 binaries work perfectly fine with a larger page
|
|
size). For Itanium 2 or newer systems, a page size of 64KB can also
|
|
be selected.
|
|
|
|
4KB For best IA-32 compatibility
|
|
8KB For best IA-64 performance
|
|
16KB For best IA-64 performance
|
|
64KB Requires Itanium 2 or newer processor.
|
|
|
|
If you don't know what to do, choose 16KB.
|
|
|
|
config IA64_PAGE_SIZE_8KB
|
|
bool "8KB"
|
|
|
|
config IA64_PAGE_SIZE_16KB
|
|
bool "16KB"
|
|
|
|
config IA64_PAGE_SIZE_64KB
|
|
depends on !ITANIUM
|
|
bool "64KB"
|
|
|
|
endchoice
|
|
|
|
source "kernel/Kconfig.hz"
|
|
|
|
config IA64_BRL_EMU
|
|
bool
|
|
depends on ITANIUM
|
|
default y
|
|
|
|
# align cache-sensitive data to 128 bytes
|
|
config IA64_L1_CACHE_SHIFT
|
|
int
|
|
default "7" if MCKINLEY
|
|
default "6" if ITANIUM
|
|
|
|
config IA64_SGI_UV
|
|
bool "SGI-UV support"
|
|
help
|
|
Selecting this option will add specific support for running on SGI
|
|
UV based systems. If you have an SGI UV system or are building a
|
|
distro kernel, select this option.
|
|
|
|
config IA64_HP_SBA_IOMMU
|
|
bool "HP SBA IOMMU support"
|
|
select DMA_OPS
|
|
default y
|
|
help
|
|
Say Y here to add support for the SBA IOMMU found on HP zx1 and
|
|
sx1000 systems. If you're unsure, answer Y.
|
|
|
|
config IA64_CYCLONE
|
|
bool "Cyclone (EXA) Time Source support"
|
|
help
|
|
Say Y here to enable support for IBM EXA Cyclone time source.
|
|
If you're unsure, answer N.
|
|
|
|
config ARCH_FORCE_MAX_ORDER
|
|
int
|
|
default "16" if HUGETLB_PAGE
|
|
default "10"
|
|
|
|
config SMP
|
|
bool "Symmetric multi-processing support"
|
|
help
|
|
This enables support for systems with more than one CPU. If you have
|
|
a system with only one CPU, say N. If you have a system with more
|
|
than one CPU, say Y.
|
|
|
|
If you say N here, the kernel will run on single and multiprocessor
|
|
systems, but will use only one CPU of a multiprocessor system. If
|
|
you say Y here, the kernel will run on many, but not all,
|
|
single processor systems. On a single processor system, the kernel
|
|
will run faster if you say N here.
|
|
|
|
See also the SMP-HOWTO available at
|
|
<http://www.tldp.org/docs.html#howto>.
|
|
|
|
If you don't know what to do here, say N.
|
|
|
|
config NR_CPUS
|
|
int "Maximum number of CPUs (2-4096)"
|
|
range 2 4096
|
|
depends on SMP
|
|
default "4096"
|
|
help
|
|
You should set this to the number of CPUs in your system, but
|
|
keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but
|
|
only use 2 CPUs on a >2 CPU system. Setting this to a value larger
|
|
than 64 will cause the use of a CPU mask array, causing a small
|
|
performance hit.
|
|
|
|
config HOTPLUG_CPU
|
|
bool "Support for hot-pluggable CPUs"
|
|
depends on SMP
|
|
default n
|
|
help
|
|
Say Y here to experiment with turning CPUs off and on. CPUs
|
|
can be controlled through /sys/devices/system/cpu/cpu#.
|
|
Say N if you want to disable CPU hotplug.
|
|
|
|
config SCHED_SMT
|
|
bool "SMT scheduler support"
|
|
depends on SMP
|
|
help
|
|
Improves the CPU scheduler's decision making when dealing with
|
|
Intel IA64 chips with MultiThreading at a cost of slightly increased
|
|
overhead in some places. If unsure say N here.
|
|
|
|
config PERMIT_BSP_REMOVE
|
|
bool "Support removal of Bootstrap Processor"
|
|
depends on HOTPLUG_CPU
|
|
default n
|
|
help
|
|
Say Y here if your platform SAL will support removal of BSP with HOTPLUG_CPU
|
|
support.
|
|
|
|
config FORCE_CPEI_RETARGET
|
|
bool "Force assumption that CPEI can be re-targeted"
|
|
depends on PERMIT_BSP_REMOVE
|
|
default n
|
|
help
|
|
Say Y if you need to force the assumption that CPEI can be re-targeted to
|
|
any cpu in the system. This hint is available via ACPI 3.0 specifications.
|
|
Tiger4 systems are capable of re-directing CPEI to any CPU other than BSP.
|
|
This option it useful to enable this feature on older BIOS's as well.
|
|
You can also enable this by using boot command line option force_cpei=1.
|
|
|
|
config ARCH_SELECT_MEMORY_MODEL
|
|
def_bool y
|
|
|
|
config ARCH_FLATMEM_ENABLE
|
|
def_bool y
|
|
|
|
config ARCH_SPARSEMEM_ENABLE
|
|
def_bool y
|
|
select SPARSEMEM_VMEMMAP_ENABLE
|
|
|
|
config ARCH_SPARSEMEM_DEFAULT
|
|
def_bool y
|
|
depends on ARCH_SPARSEMEM_ENABLE
|
|
|
|
config NUMA
|
|
bool "NUMA support"
|
|
depends on !FLATMEM
|
|
select SMP
|
|
select USE_PERCPU_NUMA_NODE_ID
|
|
help
|
|
Say Y to compile the kernel to support NUMA (Non-Uniform Memory
|
|
Access). This option is for configuring high-end multiprocessor
|
|
server systems. If in doubt, say N.
|
|
|
|
config NODES_SHIFT
|
|
int "Max num nodes shift(3-10)"
|
|
range 3 10
|
|
default "10"
|
|
depends on NUMA
|
|
help
|
|
This option specifies the maximum number of nodes in your SSI system.
|
|
MAX_NUMNODES will be 2^(This value).
|
|
If in doubt, use the default.
|
|
|
|
config HAVE_ARCH_NODEDATA_EXTENSION
|
|
def_bool y
|
|
depends on NUMA
|
|
|
|
config HAVE_MEMORYLESS_NODES
|
|
def_bool NUMA
|
|
|
|
config ARCH_PROC_KCORE_TEXT
|
|
def_bool y
|
|
depends on PROC_KCORE
|
|
|
|
config IA64_MCA_RECOVERY
|
|
bool "MCA recovery from errors other than TLB."
|
|
|
|
config IA64_PALINFO
|
|
tristate "/proc/pal support"
|
|
help
|
|
If you say Y here, you are able to get PAL (Processor Abstraction
|
|
Layer) information in /proc/pal. This contains useful information
|
|
about the processors in your systems, such as cache and TLB sizes
|
|
and the PAL firmware version in use.
|
|
|
|
To use this option, you have to ensure that the "/proc file system
|
|
support" (CONFIG_PROC_FS) is enabled, too.
|
|
|
|
config IA64_MC_ERR_INJECT
|
|
tristate "MC error injection support"
|
|
help
|
|
Adds support for MC error injection. If enabled, the kernel
|
|
will provide a sysfs interface for user applications to
|
|
call MC error injection PAL procedures to inject various errors.
|
|
This is a useful tool for MCA testing.
|
|
|
|
If you're unsure, do not select this option.
|
|
|
|
config IA64_ESI
|
|
bool "ESI (Extensible SAL Interface) support"
|
|
help
|
|
If you say Y here, support is built into the kernel to
|
|
make ESI calls. ESI calls are used to support vendor-specific
|
|
firmware extensions, such as the ability to inject memory-errors
|
|
for test-purposes. If you're unsure, say N.
|
|
|
|
config IA64_HP_AML_NFW
|
|
bool "Support ACPI AML calls to native firmware"
|
|
help
|
|
This driver installs a global ACPI Operation Region handler for
|
|
region 0xA1. AML methods can use this OpRegion to call arbitrary
|
|
native firmware functions. The driver installs the OpRegion
|
|
handler if there is an HPQ5001 device or if the user supplies
|
|
the "force" module parameter, e.g., with the "aml_nfw.force"
|
|
kernel command line option.
|
|
|
|
config KEXEC
|
|
bool "kexec system call"
|
|
depends on !SMP || HOTPLUG_CPU
|
|
select KEXEC_CORE
|
|
help
|
|
kexec is a system call that implements the ability to shutdown your
|
|
current kernel, and to start another kernel. It is like a reboot
|
|
but it is independent of the system firmware. And like a reboot
|
|
you can start any kernel with it, not just Linux.
|
|
|
|
The name comes from the similarity to the exec system call.
|
|
|
|
It is an ongoing process to be certain the hardware in a machine
|
|
is properly shutdown, so do not be surprised if this code does not
|
|
initially work for you. As of this writing the exact hardware
|
|
interface is strongly in flux, so no good recommendation can be
|
|
made.
|
|
|
|
config CRASH_DUMP
|
|
bool "kernel crash dumps"
|
|
depends on IA64_MCA_RECOVERY && (!SMP || HOTPLUG_CPU)
|
|
help
|
|
Generate crash dump after being started by kexec.
|
|
|
|
endmenu
|
|
|
|
menu "Power management and ACPI options"
|
|
|
|
source "kernel/power/Kconfig"
|
|
|
|
source "drivers/acpi/Kconfig"
|
|
|
|
if PM
|
|
menu "CPU Frequency scaling"
|
|
source "drivers/cpufreq/Kconfig"
|
|
endmenu
|
|
endif
|
|
|
|
endmenu
|
|
|
|
config MSPEC
|
|
tristate "Memory special operations driver"
|
|
depends on IA64
|
|
select IA64_UNCACHED_ALLOCATOR
|
|
help
|
|
If you have an ia64 and you want to enable memory special
|
|
operations support (formerly known as fetchop), say Y here,
|
|
otherwise say N.
|