Feature status on all architectures

|arch-tick-broadcast |``ARCH_HAS_TICK_BROADCAST`` |- **ok**: arm, arm64 | | | | loongarch, mips, powerpc | | |arch provides tick_broadcast() | riscv, sh | | | |- **TODO**: alpha, arc, csky | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, parisc | | | | s390, sparc, um, x86 | | | | xtensa | +---------------------+-----------------------------------------+------------------------------+ |batch-unmap-tlb-flush|``ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH`` |- **ok**: arm64, riscv, x86 | | | |- **TODO**: alpha, arc, arm | | |arch supports deferral of TLB flush | csky, hexagon, loongarch | | |until multiple pages are unmapped | mips, parisc, powerpc, s390 | | | | sh, sparc, xtensa | | | |- **Not compatible**: m68k | | | | microblaze, nios2, openrisc | | | | um | +---------------------+-----------------------------------------+------------------------------+ |cBPF-JIT |``HAVE_CBPF_JIT`` |- **ok**: mips, powerpc | | | | sparc | | |arch supports cBPF JIT optimizations |- **TODO**: alpha, arc, arm | | | | arm64, csky, hexagon | | | | loongarch, m68k, microblaze | | | | nios2, openrisc, parisc | | | | riscv, s390, sh, um, x86 | | | | xtensa | +---------------------+-----------------------------------------+------------------------------+ |clockevents |``!LEGACY_TIMER_TICK`` |- **ok**: alpha, arc, arm64 | | | | csky, hexagon, loongarch | | |arch support generic clock events | microblaze, mips, nios2 | | | | openrisc, powerpc, riscv | | | | s390, sh, sparc, um, x86 | | | | xtensa | | | |- **TODO**: arm, m68k, parisc | +---------------------+-----------------------------------------+------------------------------+ |cmpxchg-local |``HAVE_CMPXCHG_LOCAL`` |- **ok**: arm64, s390, x86 | | | |- **TODO**: alpha, arc, arm | | |arch supports the this_cpu_cmpxchg() API | csky, hexagon, loongarch | | | | m68k, microblaze, mips | | | | nios2, openrisc, parisc | | | | powerpc, riscv, sh, sparc | | | | um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |debug-vm-pgtable |``ARCH_HAS_DEBUG_VM_PGTABLE`` |- **ok**: arc, arm64, parisc | | | | powerpc, riscv, s390, x86 | | |arch supports pgtable tests for | xtensa | | |semantics compliance |- **TODO**: alpha, arm, csky | | | | hexagon, loongarch, m68k | | | | microblaze, mips, nios2 | | | | openrisc, sh, sparc, um | +---------------------+-----------------------------------------+------------------------------+ |dma-contiguous |``HAVE_DMA_CONTIGUOUS`` |- **ok**: arm, arm64, csky | | | | loongarch, microblaze, mips | | |arch supports the DMA CMA (continuous | riscv, s390, x86, xtensa | | |memory allocator) |- **TODO**: alpha, arc | | | | hexagon, m68k, nios2 | | | | openrisc, parisc, powerpc | | | | sh, sparc, um | +---------------------+-----------------------------------------+------------------------------+ |eBPF-JIT |``HAVE_EBPF_JIT`` |- **ok**: arm, arm64 | | | | loongarch, mips, powerpc | | |arch supports eBPF JIT optimizations | riscv, s390, sparc, x86 | | | |- **TODO**: alpha, arc, csky | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, parisc, sh | | | | um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |ELF-ASLR |``ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT``|- ok: arm, arm64, csky | | | | loongarch, mips, parisc | | |arch randomizes the stack, heap and | powerpc, riscv, s390, x86 | | |binary images of ELF binaries |- **TODO**: alpha, arc | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, sh, sparc | | | | um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |gcov-profile-all |``ARCH_HAS_GCOV_PROFILE_ALL`` |- **ok**: arm, arm64, csky | | | | microblaze, mips, powerpc | | |arch supports whole-kernel GCOV code | riscv, s390, sh, um, x86 | | |coverage profiling | xtensa | | | |- **TODO**: alpha, arc | | | | hexagon, loongarch, m68k | | | | nios2, openrisc, parisc | | | | sparc | +---------------------+-----------------------------------------+------------------------------+ |generic-idle-thread |``GENERIC_SMP_IDLE_THREAD`` |- **ok**: alpha, arc, arm | | | | arm64, csky, hexagon | | |arch makes use of the generic SMP idle | loongarch, mips, openrisc | | |thread facility | parisc, powerpc, riscv | | | | s390, sh, sparc, x86 | | | | xtensa | | | |- **TODO**: m68k, microblaze | | | | nios2, um | +---------------------+-----------------------------------------+------------------------------+ |huge-vmap |``HAVE_ARCH_HUGE_VMAP`` |- **ok**: arm64, powerpc | | | | riscv, x86 | | |arch supports the |- **TODO**: alpha, arc, arm | | |arch_vmap_pud_supported() and | csky, hexagon, loongarch | | |arch_vmap_pmd_supported() VM APIs | m68k, microblaze, mips | | | | nios2, openrisc, parisc | | | | s390, sh, sparc, um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |ioremap_prot |``HAVE_IOREMAP_PROT`` |- **ok**: arc, arm64 | | | | loongarch, mips, powerpc | | |arch has ioremap_prot() | s390, sh, x86 | | | |- **TODO**: alpha, arm, csky | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, parisc | | | | riscv, sparc, um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |irq-time-acct |``HAVE_IRQ_TIME_ACCOUNTING`` |- **ok**: arm, arm64 | | | | loongarch, mips, powerpc | | |arch supports precise IRQ time accounting| riscv, x86, xtensa | | | |- **TODO**: arc, csky | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, sh, um | | | |- **Not compatible**: alpha | | | | parisc, s390, sparc | +---------------------+-----------------------------------------+------------------------------+ |jump-labels |``HAVE_ARCH_JUMP_LABEL`` |- **ok**: arc, arm, arm64 | | | | csky, loongarch, mips | | |arch supports live patched, high | parisc, powerpc, riscv | | |efficiency branches | s390, sparc, x86, xtensa | | | |- **TODO**: alpha, hexagon | | | | m68k, microblaze, nios2 | | | | openrisc, sh, um | +---------------------+-----------------------------------------+------------------------------+ |KASAN |``HAVE_ARCH_KASAN`` |- **ok**: arm, arm64 | | | | loongarch, powerpc, riscv | | |arch supports the KASAN runtime memory | s390, um, x86, xtensa | | |checker |- **TODO**: alpha, arc, csky | | | | hexagon, m68k, microblaze | | | | mips, nios2, openrisc | | | | parisc, sh, sparc | +---------------------+-----------------------------------------+------------------------------+ |kcov |``ARCH_HAS_KCOV`` |- **ok**: arm, arm64 | | | | loongarch, mips, powerpc | | |arch supports kcov for coverage-guided | riscv, s390, um, x86 | | |fuzzing | xtensa | | | |- **TODO**: alpha, arc, csky | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, parisc, sh | | | | sparc | +---------------------+-----------------------------------------+------------------------------+ |kgdb |``HAVE_ARCH_KGDB`` |- **ok**: arc, arm, arm64 | | | | hexagon, loongarch | | |arch supports the kGDB kernel debugger | 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 | | |arch supports the kernel memory leak | mips, powerpc, riscv, s390 | | |detector | sh, sparc, um, x86, xtensa | | | |- **TODO**: alpha, hexagon | | | | m68k, nios2, openrisc | | | | parisc | +---------------------+-----------------------------------------+------------------------------+ |kprobes |``HAVE_KPROBES`` |- **ok**: arc, arm, arm64 | | | | csky, loongarch, mips | | |arch supports live patched kernel probe | parisc, powerpc, riscv | | | | s390, sh, sparc, x86 | | | |- **TODO**: alpha, hexagon | | | | m68k, microblaze, nios2 | | | | openrisc, um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |kprobes-event |``HAVE_REGS_AND_STACK_ACCESS_API`` |- **ok**: arc, arm, arm64 | | | | csky, hexagon, loongarch | | |arch supports kprobes with perf events | mips, parisc, powerpc | | | | riscv, s390, sh, sparc, x86 | | | |- **TODO**: alpha, m68k | | | | microblaze, nios2, openrisc | | | | um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |kprobes-on-ftrace |``HAVE_KPROBES_ON_FTRACE`` |- **ok**: csky, loongarch | | | | parisc, powerpc, riscv | | |arch supports combined kprobes and | s390, x86 | | |ftrace live patching |- **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 | | |arch supports kernel function-return | parisc, powerpc, riscv | | |probes | s390, sh, sparc, x86 | | | |- **TODO**: alpha, hexagon | | | | m68k, microblaze, nios2 | | | | openrisc, um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |lockdep |``LOCKDEP_SUPPORT`` |- **ok**: arc, arm, arm64 | | | | csky, hexagon, loongarch | | |arch supports the runtime locking | microblaze, mips, openrisc | | |correctness debug facility | parisc, powerpc, riscv | | | | s390, sh, sparc, um, x86 | | | | xtensa | | | |- **TODO**: alpha, m68k | | | | nios2 | +---------------------+-----------------------------------------+------------------------------+ |membarrier-sync-core |``ARCH_HAS_MEMBARRIER_SYNC_CORE`` |- **ok**: arm, arm64, powerpc | | | | riscv, s390, x86 | | |arch supports core serializing membarrier|- TODO: alpha, arc, csky | | | | hexagon, loongarch, m68k | | | | microblaze, mips, nios2 | | | | openrisc, parisc, sh, sparc | | | | um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |numa-balancing |``ARCH_SUPPORTS_NUMA_BALANCING`` |- **ok**: arm64, loongarch | | | | powerpc, riscv, s390, x86 | | |arch supports NUMA balancing |- **TODO**: alpha, mips | | | | sparc | | | |- **Not compatible**: arc | | | | arm, csky, hexagon, m68k | | | | microblaze, nios2, openrisc | | | | parisc, sh, um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |optprobes |``HAVE_OPTPROBES`` |- **ok**: arm, powerpc, x86 | | | |- **TODO**: alpha, arc, arm64 | | |arch supports live patched optprobes | csky, hexagon, loongarch | | | | m68k, microblaze, mips | | | | nios2, openrisc, parisc | | | | riscv, s390, sh, sparc, um | | | | xtensa | +---------------------+-----------------------------------------+------------------------------+ |perf-regs |``HAVE_PERF_REGS`` |- **ok**: arm, arm64, csky | | | | loongarch, mips, powerpc | | |arch supports perf events register access| riscv, s390, x86 | | | |- TODO: alpha, arc | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, parisc, sh | | | | sparc, um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |perf-stackdump |HAVE_PERF_USER_STACK_DUMP |- ok: arm, arm64, csky | | | | loongarch, mips, powerpc | | |arch supports perf events stack dumps | riscv, s390, x86 | | | |- TODO: alpha, arc | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, parisc, sh | | | | sparc, um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |PG_uncached |ARCH_USES_PG_UNCACHED |- ok: x86 | | | |- TODO: alpha, arc, arm | | |arch supports the PG_uncached page flag | arm64, csky, hexagon | | | | loongarch, m68k, microblaze | | | | mips, nios2, openrisc | | | | parisc, powerpc, riscv | | | | s390, sh, sparc, um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |pte_special |ARCH_HAS_PTE_SPECIAL |- ok: arc, arm, arm64 | | | | loongarch, mips, parisc | | |arch supports the | powerpc, riscv, s390, sh | | |pte_special()/pte_mkspecial() VM APIs | sparc, x86 | | | |- TODO: alpha, csky | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |queued-rwlocks |ARCH_USE_QUEUED_RWLOCKS |- ok: arm64, csky | | | | loongarch, mips, openrisc | | |arch supports queued rwlocks | powerpc, riscv, sparc, x86 | | | | xtensa | | | |- TODO: alpha, arc, arm | | | | hexagon, m68k, microblaze | | | | nios2, parisc, s390, sh, um | +---------------------+-----------------------------------------+------------------------------+ |queued-spinlocks |ARCH_USE_QUEUED_SPINLOCKS |- ok: arm64, csky | | | | loongarch, mips, openrisc | | |arch supports queued spinlocks | powerpc, sparc, x86, xtensa | | | |- TODO: alpha, arc, arm | | | | hexagon, m68k, microblaze | | | | nios2, parisc, riscv, s390 | | | | sh, um | +---------------------+-----------------------------------------+------------------------------+ |seccomp-filter |HAVE_ARCH_SECCOMP_FILTER |- ok: arm, arm64, csky | | | | loongarch, m68k, mips | | |arch supports seccomp filters | parisc, powerpc, riscv | | | | s390, sh, um, x86, xtensa | | | |- TODO: alpha, arc | | | | hexagon, microblaze, nios2 | | | | openrisc, sparc | +---------------------+-----------------------------------------+------------------------------+ |stackprotector |HAVE_STACKPROTECTOR |- ok: arm, arm64, csky | | | | loongarch, mips, powerpc | | |arch supports compiler driven stack | riscv, sh, x86, xtensa | | |overflow protection |- TODO: alpha, arc | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, parisc | | | | s390, sparc, um | +---------------------+-----------------------------------------+------------------------------+ |THP |HAVE_ARCH_TRANSPARENT_HUGEPAGE |- ok: arc, arm, arm64 | | | | loongarch, mips, powerpc | | |arch supports transparent hugepages | riscv, s390, sparc, x86 | | | |- TODO: alpha, parisc | | | |- Not compatible: csky | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, sh, um | | | | xtensa | +---------------------+-----------------------------------------+------------------------------+ |thread-info-in-task |THREAD_INFO_IN_TASK |- ok: arm, arm64, parisc | | | | powerpc, riscv, s390, x86 | | |arch makes use of the core kernel |- TODO: alpha, arc, csky | | |facility to embed thread_info in | hexagon, loongarch, m68k | | |task_struct | microblaze, mips, nios2 | | | | openrisc, sh, sparc, um | | | | xtensa | +---------------------+-----------------------------------------+------------------------------+ |tracehook |HAVE_ARCH_TRACEHOOK |- ok: arc, arm, arm64 | | | | csky, hexagon, loongarch | | |arch supports tracehook (ptrace) | mips, nios2, openrisc | | |register handling APIs | parisc, powerpc, riscv | | | | s390, sh, sparc, x86 | | | | xtensa | | | |- TODO: alpha, m68k | | | | microblaze, um | +---------------------+-----------------------------------------+------------------------------+ |uprobes |ARCH_SUPPORTS_UPROBES |- ok: arm, arm64, csky | | | | loongarch, mips, powerpc | | |arch supports live patched user probes | riscv, s390, sparc, x86 | | | |- TODO: alpha, arc | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, parisc, sh | | | | um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |user-context-tracking|``HAVE_CONTEXT_TRACKING_USER`` |- ok: arm, arm64, csky | | | | loongarch, mips, powerpc | | |arch supports user context tracking for | riscv, sparc, x86, xtensa | | |NO_HZ_FULL |- TODO: alpha, arc | | | | hexagon, m68k, microblaze | | | | nios2, openrisc, parisc | | | | s390, sh, um | +---------------------+-----------------------------------------+------------------------------+ |user-ret-profiler |HAVE_USER_RETURN_NOTIFIER |- ok: x86 | | | |- TODO: alpha, arc, arm | | |arch supports user-space return from | arm64, csky, hexagon | | |system call profiler | loongarch, m68k, microblaze | | | | mips, nios2, openrisc | | | | parisc, powerpc, riscv | | | | s390, sh, sparc, um, xtensa | +---------------------+-----------------------------------------+------------------------------+ |virt-cpuacct |HAVE_VIRT_CPU_ACCOUNTING |- ok: alpha, arm, arm64 | | | | csky, loongarch, mips | | |arch supports precise virtual CPU time | parisc, powerpc, s390 | | |accounting | sparc, x86, xtensa | | | |- TODO: arc, hexagon | | | | m68k, microblaze, nios2 | | | | openrisc, riscv, sh, um | +---------------------+-----------------------------------------+------------------------------+