Feature status on all architectures

Subsystem: core

Feature Kconfig / Description Status per architecture
cBPF-JIT

HAVE_CBPF_JIT

arch supports cBPF JIT optimizations

  • ok: mips, powerpc sparc
  • TODO: alpha, arc, arm arm64, csky, h8300, hexagon ia64, m68k, microblaze nds32, nios2, openrisc parisc, riscv, s390, sh, um x86, xtensa
eBPF-JIT

HAVE_EBPF_JIT

arch supports eBPF JIT optimizations

  • ok: arm, arm64, mips powerpc, riscv, s390, sparc x86
  • TODO: alpha, arc, csky h8300, hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, parisc, sh, um xtensa
generic-idle-thread

GENERIC_SMP_IDLE_THREAD

arch makes use of the generic SMP idle thread facility

  • ok: alpha, arc, arm arm64, csky, hexagon, ia64 mips, openrisc, parisc powerpc, riscv, s390, sh sparc, x86, xtensa
  • TODO: h8300, m68k microblaze, nds32, nios2 um
jump-labels

HAVE_ARCH_JUMP_LABEL

arch supports live patched, high efficiency branches

  • ok: arc, arm, arm64 mips, parisc, powerpc riscv, s390, sparc, x86 xtensa
  • TODO: alpha, csky h8300, hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, sh, um
thread-info-in-task

THREAD_INFO_IN_TASK

arch makes use of the core kernel facility to embedd thread_info in task_struct

  • ok: arm64, nds32 powerpc, riscv, s390, x86
  • TODO: alpha, arc, arm csky, h8300, hexagon, ia64 m68k, microblaze, mips nios2, openrisc, parisc, sh sparc, um, xtensa
tracehook

HAVE_ARCH_TRACEHOOK

arch supports tracehook (ptrace) register handling APIs

  • ok: arc, arm, arm64 csky, hexagon, ia64, mips nds32, nios2, openrisc parisc, powerpc, riscv s390, sh, sparc, x86 xtensa
  • TODO: alpha, h8300 m68k, microblaze, um

Subsystem: debug

Feature Kconfig / Description Status per architecture
debug-vm-pgtable

ARCH_HAS_DEBUG_VM_PGTABLE

arch supports pgtable tests for semantics compliance

  • ok: arc, arm64, powerpc riscv, s390, x86
  • TODO: alpha, arm, csky h8300, hexagon, ia64, m68k microblaze, mips, nds32 nios2, openrisc, parisc, sh sparc, um, xtensa
gcov-profile-all

ARCH_HAS_GCOV_PROFILE_ALL

arch supports whole-kernel GCOV code coverage profiling

  • ok: arm, arm64, csky microblaze, mips, powerpc riscv, s390, sh, x86
  • TODO: alpha, arc, h8300 hexagon, ia64, m68k, nds32 nios2, openrisc, parisc sparc, um, xtensa
KASAN

HAVE_ARCH_KASAN

arch supports the KASAN runtime memory checker

  • ok: arm, arm64, powerpc riscv, s390, x86, xtensa
  • TODO: alpha, arc, csky h8300, hexagon, ia64, m68k microblaze, mips, nds32 nios2, openrisc, parisc, sh sparc, um
kcov

ARCH_HAS_KCOV

arch supports kcov for coverage-guided fuzzing

  • ok: arm, arm64, mips powerpc, riscv, s390, um x86
  • TODO: alpha, arc, csky h8300, hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, parisc, sh, sparc xtensa
kgdb

HAVE_ARCH_KGDB

arch supports the kGDB kernel debugger

  • ok: arc, arm, arm64 h8300, hexagon, microblaze mips, nios2, parisc powerpc, riscv, sh, sparc x86
  • TODO: alpha, csky, ia64 m68k, nds32, openrisc, s390 um, xtensa
kmemleak

HAVE_DEBUG_KMEMLEAK

arch supports the kernel memory leak detector

  • ok: arc, arm, arm64 csky, microblaze, mips nds32, powerpc, riscv, s390 sh, sparc, um, x86, xtensa
  • TODO: alpha, h8300 hexagon, ia64, m68k, nios2 openrisc, parisc
kprobes

HAVE_KPROBES

arch supports live patched kernel probe

  • ok: arc, arm, arm64 csky, ia64, mips, parisc powerpc, riscv, s390, sh sparc, x86
  • TODO: alpha, h8300 hexagon, m68k, microblaze nds32, nios2, openrisc, um xtensa
kprobes-on-ftrace

HAVE_KPROBES_ON_FTRACE

arch supports combined kprobes and ftrace live patching

  • ok: csky, parisc powerpc, riscv, s390, x86
  • TODO: alpha, arc, arm arm64, h8300, hexagon, ia64 m68k, microblaze, mips nds32, nios2, openrisc, sh sparc, um, xtensa
kretprobes

HAVE_KRETPROBES

arch supports kernel function-return probes

  • ok: arc, arm, arm64 csky, ia64, mips, parisc powerpc, riscv, s390, sh sparc, x86
  • TODO: alpha, h8300 hexagon, m68k, microblaze nds32, nios2, openrisc, um xtensa
optprobes

HAVE_OPTPROBES

arch supports live patched optprobes

  • ok: arm, powerpc, x86
  • TODO: alpha, arc, arm64 csky, h8300, hexagon, ia64 m68k, microblaze, mips nds32, nios2, openrisc parisc, riscv, s390, sh sparc, um, xtensa
stackprotector

HAVE_STACKPROTECTOR

arch supports compiler driven stack overflow protection

  • ok: arm, arm64, csky mips, powerpc, riscv, sh x86, xtensa
  • TODO: alpha, arc, h8300 hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, parisc, s390 sparc, um
uprobes

ARCH_SUPPORTS_UPROBES

arch supports live patched user probes

  • ok: arm, arm64, csky mips, powerpc, riscv, s390 sparc, x86
  • TODO: alpha, arc, h8300 hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, parisc, sh, um xtensa
user-ret-profiler

HAVE_USER_RETURN_NOTIFIER

arch supports user-space return from system call profiler

  • ok: x86
  • TODO: alpha, arc, arm arm64, csky, h8300, hexagon ia64, m68k, microblaze mips, nds32, nios2 openrisc, parisc, powerpc riscv, s390, sh, sparc, um xtensa

Subsystem: io

Feature Kconfig / Description Status per architecture
dma-contiguous

HAVE_DMA_CONTIGUOUS

arch supports the DMA CMA (continuous memory allocator)

  • ok: arm, arm64, csky microblaze, mips, riscv s390, x86, xtensa
  • TODO: alpha, arc, h8300 hexagon, ia64, m68k, nds32 nios2, openrisc, parisc powerpc, sh, sparc, um

Subsystem: locking

Feature Kconfig / Description Status per architecture
cmpxchg-local

HAVE_CMPXCHG_LOCAL

arch supports the this_cpu_cmpxchg() API

  • ok: arm64, s390, x86
  • TODO: alpha, arc, arm csky, h8300, hexagon, ia64 m68k, microblaze, mips nds32, nios2, openrisc parisc, powerpc, riscv, sh sparc, um, xtensa
lockdep

LOCKDEP_SUPPORT

arch supports the runtime locking correctness debug facility

  • ok: arc, arm, arm64 csky, hexagon, microblaze mips, nds32, openrisc powerpc, riscv, s390, sh sparc, um, x86, xtensa
  • TODO: alpha, h8300 ia64, m68k, nios2, parisc
queued-rwlocks

ARCH_USE_QUEUED_RWLOCKS

arch supports queued rwlocks

  • ok: arm64, csky, mips openrisc, powerpc, sparc x86, xtensa
  • TODO: alpha, arc, arm h8300, hexagon, ia64, m68k microblaze, nds32, nios2 parisc, riscv, s390, sh, um
queued-spinlocks

ARCH_USE_QUEUED_SPINLOCKS

arch supports queued spinlocks

  • ok: arm64, mips openrisc, powerpc, sparc x86, xtensa
  • TODO: alpha, arc, arm csky, h8300, hexagon, ia64 m68k, microblaze, nds32 nios2, parisc, riscv, s390 sh, um

Subsystem: perf

Feature Kconfig / Description Status per architecture
kprobes-event

HAVE_REGS_AND_STACK_ACCESS_API

arch supports kprobes with perf events

  • ok: arm, arm64, csky hexagon, mips, nds32 parisc, powerpc, riscv s390, sh, sparc, x86
  • TODO: alpha, arc, h8300 ia64, m68k, microblaze nios2, openrisc, um, xtensa
perf-regs

HAVE_PERF_REGS

arch supports perf events register access

  • ok: arm, arm64, csky mips, powerpc, riscv, s390 x86
  • TODO: alpha, arc, h8300 hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, parisc, sh, sparc um, xtensa
perf-stackdump

HAVE_PERF_USER_STACK_DUMP

arch supports perf events stack dumps

  • ok: arm, arm64, csky mips, powerpc, riscv, s390 x86
  • TODO: alpha, arc, h8300 hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, parisc, sh, sparc um, xtensa

Subsystem: sched

Feature Kconfig / Description Status per architecture
membarrier-sync-core

ARCH_HAS_MEMBARRIER_SYNC_CORE

arch supports core serializing membarrier

  • ok: arm, arm64, powerpc x86
  • TODO: alpha, arc, csky h8300, hexagon, ia64, m68k microblaze, mips, nds32 nios2, openrisc, parisc riscv, s390, sh, sparc, um xtensa
numa-balancing

ARCH_SUPPORTS_NUMA_BALANCING

arch supports NUMA balancing

  • ok: arm64, powerpc riscv, s390, x86
  • TODO: alpha, ia64, mips nds32, sparc
  • Not compatible: arc arm, csky, h8300, hexagon m68k, microblaze, nios2 openrisc, parisc, sh, um xtensa

Subsystem: seccomp

Feature Kconfig / Description Status per architecture
seccomp-filter

HAVE_ARCH_SECCOMP_FILTER

arch supports seccomp filters

  • ok: arm, arm64, csky mips, parisc, powerpc riscv, s390, sh, um, x86 xtensa
  • TODO: alpha, arc, h8300 hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, sparc

Subsystem: time

Feature Kconfig / Description Status per architecture
arch-tick-broadcast

ARCH_HAS_TICK_BROADCAST

arch provides tick_broadcast()

  • ok: arm, arm64, mips powerpc, riscv, sh
  • TODO: alpha, arc, csky h8300, hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, parisc, s390 sparc, um, x86, xtensa
clockevents

!LEGACY_TIMER_TICK

arch support generic clock events

  • ok: alpha, arc, arm64 csky, h8300, hexagon microblaze, mips, nds32 nios2, openrisc, powerpc riscv, s390, sh, sparc, um x86, xtensa
  • TODO: arm, ia64, m68k parisc
context-tracking

HAVE_CONTEXT_TRACKING

arch supports context tracking for NO_HZ_FULL

  • ok: arm, arm64, csky mips, powerpc, riscv, sparc x86
  • TODO: alpha, arc, h8300 hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, parisc, s390, sh um, xtensa
irq-time-acct

HAVE_IRQ_TIME_ACCOUNTING

arch supports precise IRQ time accounting

  • ok: arm, arm64, mips powerpc, riscv, x86, xtensa
  • TODO: arc, csky, h8300 hexagon, m68k, microblaze nds32, nios2, openrisc, sh um
  • Not compatible: alpha ia64, parisc, s390, sparc
virt-cpuacct

HAVE_VIRT_CPU_ACCOUNTING

arch supports precise virtual CPU time accounting

  • ok: alpha, arm, arm64 csky, ia64, mips, parisc powerpc, s390, sparc, x86
  • TODO: arc, h8300 hexagon, m68k, microblaze nds32, nios2, openrisc riscv, sh, um, xtensa

Subsystem: vm

Feature Kconfig / Description Status per architecture
batch-unmap-tlb-flush

ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH

arch supports deferral of TLB flush until multiple pages are unmapped

  • ok: x86
  • TODO: alpha, arc, arm csky, hexagon, ia64, mips nds32, parisc, powerpc riscv, s390, sh, sparc xtensa
  • N/A: arm64
  • Not compatible: h8300 m68k, microblaze, nios2 openrisc, um
ELF-ASLR

ARCH_HAS_ELF_RANDOMIZE

arch randomizes the stack, heap and binary images of ELF binaries

  • ok: arm, arm64, mips parisc, powerpc, riscv s390, x86
  • TODO: alpha, arc, csky h8300, hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, sh, sparc, um xtensa
huge-vmap

HAVE_ARCH_HUGE_VMAP

arch supports the arch_vmap_pud_supported() and arch_vmap_pmd_supported() VM APIs

  • ok: arm64, powerpc, x86
  • TODO: alpha, arc, arm csky, h8300, hexagon, ia64 m68k, microblaze, mips nds32, nios2, openrisc parisc, riscv, s390, sh sparc, um, xtensa
ioremap_prot

HAVE_IOREMAP_PROT

arch has ioremap_prot()

  • ok: arc, mips, powerpc s390, sh, x86
  • TODO: alpha, arm, arm64 csky, h8300, hexagon, ia64 m68k, microblaze, nds32 nios2, openrisc, parisc riscv, sparc, um, xtensa
PG_uncached

ARCH_USES_PG_UNCACHED

arch supports the PG_uncached page flag

  • ok: ia64, x86
  • TODO: alpha, arc, arm arm64, csky, h8300, hexagon m68k, microblaze, mips nds32, nios2, openrisc parisc, powerpc, riscv s390, sh, sparc, um, xtensa
pte_special

ARCH_HAS_PTE_SPECIAL

arch supports the pte_special()/pte_mkspecial() VM APIs

  • ok: arc, arm, arm64 mips, powerpc, riscv, s390 sh, sparc, x86
  • TODO: alpha, csky h8300, hexagon, ia64, m68k microblaze, nds32, nios2 openrisc, parisc, um xtensa
THP

HAVE_ARCH_TRANSPARENT_HUGEPAGE

arch supports transparent hugepages

  • ok: arc, arm, arm64 mips, powerpc, riscv, s390 sparc, x86
  • TODO: alpha, ia64 nds32, parisc
  • Not compatible: csky h8300, hexagon, m68k microblaze, nios2, openrisc sh, um, xtensa