所有架构上的功能状态

子系统:核心

功能

Kconfig / 说明

每个架构的状态

cBPF-JIT

HAVE_CBPF_JIT

架构支持 cBPF JIT 优化

  • ok: mips, powerpc sparc

  • TODO: alpha, arc, arm arm64, csky, hexagon loongarch, m68k, microblaze nios2, openrisc, parisc riscv, s390, sh, um, x86 xtensa

eBPF-JIT

HAVE_EBPF_JIT

架构支持 eBPF JIT 优化

  • ok: arm, arm64 loongarch, mips, powerpc riscv, s390, sparc, x86

  • TODO: alpha, arc, csky hexagon, m68k, microblaze nios2, openrisc, parisc, sh um, xtensa

generic-idle-thread

GENERIC_SMP_IDLE_THREAD

架构使用通用的 SMP 空闲线程工具

  • ok: alpha, arc, arm arm64, csky, hexagon loongarch, mips, openrisc parisc, powerpc, riscv s390, sh, sparc, x86 xtensa

  • TODO: m68k, microblaze nios2, um

jump-labels

HAVE_ARCH_JUMP_LABEL

架构支持实时修补、高效率的分支

  • ok: arc, arm, arm64 csky, loongarch, mips parisc, powerpc, riscv s390, sparc, x86, xtensa

  • TODO: alpha, hexagon m68k, microblaze, nios2 openrisc, sh, um

thread-info-in-task

THREAD_INFO_IN_TASK

架构使用核心内核工具将 thread_info 嵌入 task_struct 中

  • ok: arm, arm64, parisc powerpc, riscv, s390, x86

  • TODO: alpha, arc, csky hexagon, loongarch, m68k microblaze, mips, nios2 openrisc, sh, sparc, um xtensa

tracehook

HAVE_ARCH_TRACEHOOK

架构支持 tracehook (ptrace) 寄存器处理 API

  • ok: arc, arm, arm64 csky, hexagon, loongarch mips, nios2, openrisc parisc, powerpc, riscv s390, sh, sparc, x86 xtensa

  • TODO: alpha, m68k microblaze, um

子系统:调试

功能

Kconfig / 说明

每个架构的状态

debug-vm-pgtable

ARCH_HAS_DEBUG_VM_PGTABLE

架构支持用于语义合规性的 pgtable 测试

  • ok: arc, arm64 loongarch, parisc, powerpc riscv, s390, x86, xtensa

  • TODO: alpha, arm, csky hexagon, m68k, microblaze mips, nios2, openrisc, sh sparc, um

gcov-profile-all

ARCH_HAS_GCOV_PROFILE_ALL

架构支持整个内核 GCOV 代码覆盖率分析

  • ok: arm, arm64, csky microblaze, mips, powerpc riscv, s390, sh, um, x86 xtensa

  • TODO: alpha, arc hexagon, loongarch, m68k nios2, openrisc, parisc sparc

KASAN

HAVE_ARCH_KASAN

架构支持 KASAN 运行时内存检查器

  • ok: arm, arm64 loongarch, powerpc, riscv s390, um, x86, xtensa

  • TODO: alpha, arc, csky hexagon, m68k, microblaze mips, nios2, openrisc parisc, sh, sparc

kcov

ARCH_HAS_KCOV

架构支持 kcov 用于覆盖引导的模糊测试

  • ok: arm, arm64 loongarch, mips, powerpc riscv, s390, um, x86 xtensa

  • TODO: alpha, arc, csky hexagon, m68k, microblaze nios2, openrisc, parisc, sh sparc

kgdb

HAVE_ARCH_KGDB

架构支持 kGDB 内核调试器

  • ok: arc, arm, arm64 hexagon, loongarch microblaze, mips, nios2 parisc, powerpc, riscv, sh sparc, x86

  • TODO: alpha, csky, m68k openrisc, s390, um, xtensa

kmemleak

HAVE_DEBUG_KMEMLEAK

架构支持内核内存泄漏检测器

  • ok: arc, arm, arm64 csky, loongarch, microblaze mips, powerpc, riscv, s390 sh, sparc, um, x86, xtensa

  • TODO: alpha, hexagon m68k, nios2, openrisc parisc

kprobes

HAVE_KPROBES

架构支持实时修补的内核探针

  • ok: arc, arm, arm64 csky, loongarch, mips parisc, powerpc, riscv s390, sh, sparc, x86

  • TODO: alpha, hexagon m68k, microblaze, nios2 openrisc, um, xtensa

kprobes-on-ftrace

HAVE_KPROBES_ON_FTRACE

架构支持组合的 kprobes 和 ftrace 实时修补

  • ok: csky, loongarch parisc, powerpc, riscv s390, x86

  • TODO: alpha, arc, arm arm64, hexagon, m68k microblaze, mips, nios2 openrisc, sh, sparc, um xtensa

kretprobes

HAVE_KRETPROBES

架构支持内核函数返回探针

  • ok: arc, arm, arm64 csky, loongarch, mips parisc, powerpc, riscv s390, sh, sparc, x86

  • TODO: alpha, hexagon m68k, microblaze, nios2 openrisc, um, xtensa

optprobes

HAVE_OPTPROBES

架构支持实时修补的 optprobes

  • ok: arm, powerpc, x86

  • TODO: alpha, arc, arm64 csky, hexagon, loongarch m68k, microblaze, mips nios2, openrisc, parisc riscv, s390, sh, sparc, um xtensa

stackprotector

HAVE_STACKPROTECTOR

架构支持编译器驱动的堆栈溢出保护

  • ok: arm, arm64, csky loongarch, mips, powerpc riscv, sh, x86, xtensa

  • TODO: alpha, arc hexagon, m68k, microblaze nios2, openrisc, parisc s390, sparc, um

uprobes

ARCH_SUPPORTS_UPROBES

架构支持实时修补的用户探针

  • ok: arm, arm64, csky loongarch, mips, powerpc riscv, s390, sparc, x86

  • TODO: alpha, arc hexagon, m68k, microblaze nios2, openrisc, parisc, sh um, xtensa

user-ret-profiler

HAVE_USER_RETURN_NOTIFIER

架构支持从系统调用返回的用户空间分析器

  • ok: x86

  • TODO: alpha, arc, arm arm64, csky, hexagon loongarch, m68k, microblaze mips, nios2, openrisc parisc, powerpc, riscv s390, sh, sparc, um, xtensa

子系统:io

功能

Kconfig / 说明

每个架构的状态

dma-contiguous

HAVE_DMA_CONTIGUOUS

架构支持 DMA CMA(连续内存分配器)

  • ok: arm, arm64, csky loongarch, microblaze, mips riscv, s390, x86, xtensa

  • TODO: alpha, arc hexagon, m68k, nios2 openrisc, parisc, powerpc sh, sparc, um

子系统:锁机制

功能

Kconfig / 说明

每个架构的状态

cmpxchg-local

HAVE_CMPXCHG_LOCAL

架构支持 this_cpu_cmpxchg() API

  • ok: arm64, s390, x86

  • TODO: alpha, arc, arm csky, hexagon, loongarch m68k, microblaze, mips nios2, openrisc, parisc powerpc, riscv, sh, sparc um, xtensa

lockdep

LOCKDEP_SUPPORT

架构支持运行时锁正确性调试工具

  • ok: arc, arm, arm64, csky, hexagon, loongarch, microblaze, mips, openrisc, parisc, powerpc, riscv, s390, sh, sparc, um, x86, xtensa

  • TODO: alpha, m68k, nios2

排队读写锁

ARCH_USE_QUEUED_RWLOCKS

架构支持排队读写锁

  • ok: arm64, csky, loongarch, mips, openrisc, powerpc, riscv, sparc, x86, xtensa

  • TODO: alpha, arc, arm, hexagon, m68k, microblaze, nios2, parisc, s390, sh, um

排队自旋锁

ARCH_USE_QUEUED_SPINLOCKS

架构支持排队自旋锁

  • ok: arm64, csky, loongarch, mips, openrisc, powerpc, riscv, sparc, x86, xtensa

  • TODO: alpha, arc, arm, hexagon, m68k, microblaze, nios2, parisc, s390, sh, um

子系统: perf

功能

Kconfig / 说明

每个架构的状态

kprobes-event

HAVE_REGS_AND_STACK_ACCESS_API

架构支持带有 perf 事件的 kprobes

  • ok: arc, arm, arm64, csky, hexagon, loongarch, mips, parisc, powerpc, riscv, s390, sh, sparc, x86

  • TODO: alpha, m68k, microblaze, nios2, openrisc, um, xtensa

perf-regs

HAVE_PERF_REGS

架构支持 perf 事件寄存器访问

  • ok: arm, arm64, csky, loongarch, mips, powerpc, riscv, s390, x86

  • TODO: alpha, arc, hexagon, m68k, microblaze, nios2, openrisc, parisc, sh, sparc, um, xtensa

perf-stackdump

HAVE_PERF_USER_STACK_DUMP

架构支持 perf 事件堆栈转储

  • ok: arm, arm64, csky, loongarch, mips, powerpc, riscv, s390, x86

  • TODO: alpha, arc, hexagon, m68k, microblaze, nios2, openrisc, parisc, sh, sparc, um, xtensa

子系统: sched

功能

Kconfig / 说明

每个架构的状态

membarrier-sync-core

ARCH_HAS_MEMBARRIER_SYNC_CORE

架构支持核心串行化 membarrier

  • ok: arm, arm64, powerpc, riscv, s390, x86

  • TODO: alpha, arc, csky, hexagon, loongarch, m68k, microblaze, mips, nios2, openrisc, parisc, sh, sparc, um, xtensa

numa-balancing

ARCH_SUPPORTS_NUMA_BALANCING

架构支持 NUMA 平衡

  • ok: arm64, loongarch, powerpc, riscv, s390, x86

  • TODO: alpha, mips, sparc

  • 不兼容: arc, arm, csky, hexagon, m68k, microblaze, nios2, openrisc, parisc, sh, um, xtensa

子系统: seccomp

功能

Kconfig / 说明

每个架构的状态

seccomp-filter

HAVE_ARCH_SECCOMP_FILTER

架构支持 seccomp 过滤器

  • ok: arm, arm64, csky, loongarch, m68k, mips, parisc, powerpc, riscv, s390, sh, um, x86, xtensa

  • TODO: alpha, arc, hexagon, microblaze, nios2, openrisc, sparc

子系统: time

功能

Kconfig / 说明

每个架构的状态

arch-tick-broadcast

ARCH_HAS_TICK_BROADCAST

架构提供 tick_broadcast()

  • ok: arm, arm64, loongarch, mips, powerpc, riscv, sh

  • TODO: alpha, arc, csky, hexagon, m68k, microblaze, nios2, openrisc, parisc, s390, sparc, um, x86, xtensa

clockevents

!LEGACY_TIMER_TICK

架构支持通用时钟事件

  • ok: alpha, arc, arm64, csky, hexagon, loongarch, microblaze, mips, nios2, openrisc, powerpc, riscv, s390, sh, sparc, um, x86, xtensa

  • TODO: arm, m68k, parisc

irq-time-acct

HAVE_IRQ_TIME_ACCOUNTING

架构支持精确的 IRQ 时间统计

  • ok: arm, arm64, loongarch, mips, powerpc, riscv, x86, xtensa

  • TODO: arc, csky, hexagon, m68k, microblaze, nios2, openrisc, sh, um

  • 不兼容: alpha, parisc, s390, sparc

user-context-tracking

HAVE_CONTEXT_TRACKING_USER

架构支持 NO_HZ_FULL 的用户上下文跟踪

  • ok: arm, arm64, csky, loongarch, mips, powerpc, riscv, sparc, x86, xtensa

  • TODO: alpha, arc, hexagon, m68k, microblaze, nios2, openrisc, parisc, s390, sh, um

virt-cpuacct

HAVE_VIRT_CPU_ACCOUNTING

架构支持精确的虚拟 CPU 时间统计

  • ok: alpha, arm, arm64, csky, loongarch, mips, parisc, powerpc, s390, sparc, x86, xtensa

  • TODO: arc, hexagon, m68k, microblaze, nios2, openrisc, riscv, sh, um

子系统: vm

功能

Kconfig / 说明

每个架构的状态

batch-unmap-tlb-flush

ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH

架构支持推迟 TLB 刷新,直到多个页面被取消映射

  • ok: arm64, riscv, x86

  • TODO: alpha, arc, arm, csky, hexagon, loongarch, mips, parisc, powerpc, s390, sh, sparc, xtensa

  • 不兼容: m68k, microblaze, nios2, openrisc, um

ELF-ASLR

ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT

架构随机化 ELF 二进制文件的堆栈、堆和二进制映像

  • ok: arm, arm64, csky, loongarch, mips, parisc, powerpc, riscv, s390, x86

  • TODO: alpha, arc, hexagon, m68k, microblaze, nios2, openrisc, sh, sparc, um, xtensa

huge-vmap

HAVE_ARCH_HUGE_VMAP

架构支持 arch_vmap_pud_supported() 和 arch_vmap_pmd_supported() VM API

  • ok: arm64, powerpc, riscv, x86

  • TODO: alpha, arc, arm, csky, hexagon, loongarch, m68k, microblaze, mips, nios2, openrisc, parisc, s390, sh, sparc, um, xtensa

ioremap_prot

HAVE_IOREMAP_PROT

架构具有 ioremap_prot()

  • ok: arc, arm64, loongarch, mips, powerpc, s390, sh, x86

  • TODO: alpha, arm, csky, hexagon, m68k, microblaze, nios2, openrisc, parisc, riscv, sparc, um, xtensa

pte_special

ARCH_HAS_PTE_SPECIAL

架构支持 pte_special()/pte_mkspecial() VM API

  • ok: arc, arm, arm64, loongarch, mips, parisc, powerpc, riscv, s390, sh, sparc, x86

  • TODO: alpha, csky, hexagon, m68k, microblaze, nios2, openrisc, um, xtensa

THP

HAVE_ARCH_TRANSPARENT_HUGEPAGE

架构支持透明大页

  • ok: arc, arm, arm64, loongarch, mips, powerpc, riscv, s390, sparc, x86

  • TODO: alpha, parisc

  • 不兼容: csky, hexagon, m68k, microblaze, nios2, openrisc, sh, um, xtensa