Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/

Ingo Molnar
2015-05-15T07:51:31Z

* Ingo Molnar <mingo@kernel.org> wrote:

>
> * Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> > Hi Ingo,
> >
> > Thanks for this. The concept is certainly good.
> >
> > On Thu, 14 May 2015 21:59:25 +0200 Ingo Molnar <mingo@kernel.org> wrote:
> > >
> > > The patch that adds a new architecture to all these files would give
> > > us a good overview about how complete an initial port is.
> >
> > If you want to test how hard that is (and what sort of patch it
> > produces), the h8300 architecture was added to linux-next recently.
>
> I tried this out, this is the resulting feature support matrix for the
> new h8300 architecture:
>
> #
> # Kernel feature support matrix of architecture 'h8300':
> #
> arch-tick-broadcast: | h8300: | TODO |
> BPF-JIT: | h8300: | TODO |

Perhaps the more verbose table is more useful:

#
# Kernel feature support matrix of architecture 'h8300':
#
arch-tick-broadcast: | TODO | ARCH_HAS_TICK_BROADCAST # arch provides tick_broadcast()
BPF-JIT: | TODO | HAVE_BPF_JIT # arch supports BPF JIT optimizations
clockevents: | ok | GENERIC_CLOCKEVENTS # arch support generic clock events
cmpxchg-local: | TODO | HAVE_CMPXCHG_LOCAL # arch supports the this_cpu_cmpxchg() API
context-tracking: | TODO | HAVE_CONTEXT_TRACKING # arch supports context tracking for NO_HZ_FULL
dma-api-debug: | TODO | HAVE_DMA_API_DEBUG # arch supports DMA debug facilities
dma-contiguous: | TODO | HAVE_DMA_CONTIGUOUS # arch supports the DMA CMA (continuous memory allocator)
dma_map_attrs: | ok | HAVE_DMA_ATTRS # arch provides dma_*map*_attrs() APIs
ELF-ASLR: | TODO | ARCH_HAS_ELF_RANDOMIZE # arch randomizes the stack, heap and binary images of ELF binaries
gcov-profile-all: | TODO | ARCH_HAS_GCOV_PROFILE_ALL # arch supports whole-kernel GCOV code coverage profiling
generic-idle-thread: | TODO | GENERIC_SMP_IDLE_THREAD # arch makes use of the generic SMP idle thread facility
huge-vmap: | TODO | HAVE_ARCH_HUGE_VMAP # arch supports the ioremap_pud_enabled() and ioremap_pmd_enabled() VM APIs
ioremap_prot: | TODO | HAVE_IOREMAP_PROT # arch has ioremap_prot()
irq-time-acct: | TODO | HAVE_IRQ_TIME_ACCOUNTING # arch supports precise IRQ time accounting
jump-labels: | TODO | HAVE_ARCH_JUMP_LABEL # arch supports live patched high efficiency branches
KASAN: | TODO | HAVE_ARCH_KASAN # arch supports the KASAN runtime memory checker
kgdb: | TODO | HAVE_ARCH_KGDB # arch supports the kGDB kernel debugger
kprobes: | TODO | HAVE_KPROBES # arch supports live patched kernel probe
kprobes-event: | TODO | HAVE_REGS_AND_STACK_ACCESS_API # arch supports kprobes with perf events
kprobes-on-ftrace: | TODO | HAVE_KPROBES_ON_FTRACE # arch supports combined kprobes and ftrace live patching
kretprobes: | TODO | HAVE_KRETPROBES # arch supports kernel function-return probes
lockdep: | TODO | LOCKDEP_SUPPORT # arch supports the runtime locking correctness debug facility
modern-timekeeping: | ok | !ARCH_USES_GETTIMEOFFSET # arch does not use arch_gettimeoffset() anymore
numa-balancing: | .. | ARCH_SUPPORTS_NUMA_BALANCING && 64BIT && NUMA # arch supports NUMA balancing
numa-memblock: | .. | HAVE_MEMBLOCK_NODE_MAP # arch supports NUMA aware memblocks
optprobes: | TODO | HAVE_OPTPROBES # arch supports live patched optprobes
perf-regs: | TODO | HAVE_PERF_REGS # arch supports perf events register access
perf-stackdump: | TODO | HAVE_PERF_USER_STACK_DUMP # arch supports perf events stack dumps
PG_uncached: | TODO | ARCH_USES_PG_UNCACHED # arch supports the PG_uncached page flag
pmdp_splitting_flush: | TODO | #define __HAVE_ARCH_PMDP_SPLITTING_FLUSH # arch supports the pmdp_splitting_flush() VM API
pte_special: | TODO | #define __HAVE_ARCH_PTE_SPECIAL # arch supports the pte_special()/pte_mkspecial() VM APIs
queued-rwlocks: | TODO | ARCH_USE_QUEUED_RWLOCKS # arch supports queued rwlocks
queued-spinlocks: | TODO | ARCH_USE_QUEUED_SPINLOCKS # arch supports queued spinlocks
rwsem-optimized: | ok | Optimized asm/rwsem.h # arch provides optimized rwsem APIs
seccomp-filter: | TODO | HAVE_ARCH_SECCOMP_FILTER # arch supports seccomp filters
sg-chain: | TODO | ARCH_HAS_SG_CHAIN # arch supports chained scatter-gather lists
stackprotector: | TODO | HAVE_CC_STACKPROTECTOR # arch supports compiler driven stack overflow protection
strncasecmp: | TODO | __HAVE_ARCH_STRNCASECMP # arch provides an optimized strncasecmp() function
THP: | .. | HAVE_ARCH_TRANSPARENT_HUGEPAGE && 64BIT # arch supports transparent hugepages
tracehook: | TODO | HAVE_ARCH_TRACEHOOK # arch supports tracehook (ptrace) register handling APIs
uprobes: | TODO | ARCH_SUPPORTS_UPROBES # arch supports live patched user probes
user-ret-profiler: | TODO | HAVE_USER_RETURN_NOTIFIER # arch supports user-space return from system call profiler
virt-cpuacct: | TODO | HAVE_VIRT_CPU_ACCOUNTING || 64BIT # arch supports precise virtual CPU time accounting

Thanks,

Ingo