From: Ingo Molnar <mingo@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Josh Triplett <josh@joshtriplett.org>,
Borislav Petkov <bp@alien8.de>, Jonathan Corbet <corbet@lwn.net>,
Peter Zijlstra <peterz@infradead.org>,
Andy Lutomirski <luto@amacapital.net>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-api@vger.kernel.org, linux-kernel@vger.kernel.org,
x86@kernel.org, linux-arch@vger.kernel.org
Subject: Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/
Date: Fri, 15 May 2015 11:37:50 +0200 [thread overview]
Message-ID: <20150515093750.GA4665@gmail.com> (raw)
In-Reply-To: <20150514195925.GA27570@gmail.com>
* Ingo Molnar <mingo@kernel.org> wrote:
> > > This directory structure can be used in the future to add other
> > > files - such as porting guides, testing description, etc.
> >
> > I suppose so. Having a great bunch of directories, each
> > containing a single file is a bit odd.
>
> It's a starting point and nicely extensible. I was thinking about
> one more intermediate level:
>
> Documentation/features/locking/lockdep/
> Documentation/features/locking/rwsem-optimized/
> Documentation/features/locking/queued-rwlocks/
> Documentation/features/locking/queued-spinlocks/
> ...
>
> Documentation/features/vm/PG_uncached/
> Documentation/features/vm/pmdp_splitting_flush/
> Documentation/features/vm/pte_special/
> ...
>
> The advantage of this, beyond more structure, would be that I'd
> probably move most of the Documentation/locking/*.txt files into
> Documentation/features/locking/, for example lockdep-design.txt
> would go into Documentation/features/locking/lockdep/.
>
> I'd keep the hierarchy at a predictable depth though, i.e.:
>
> Documentation/features/<subsystem>/<feature_name>/
So I've implemented this, the high level structure now looks like
this:
triton:~/tip/Documentation/features> ls -l
total 48
-rw-rw-r-- 1 mingo mingo 396 May 15 11:26 arch-support.txt
drwxrwxr-x 6 mingo mingo 4096 May 15 11:26 core
drwxrwxr-x 12 mingo mingo 4096 May 15 11:26 debug
drwxrwxr-x 6 mingo mingo 4096 May 15 11:26 io
drwxrwxr-x 3 mingo mingo 4096 May 15 11:26 lib
-rwxrwxr-x 1 mingo mingo 692 May 15 11:31 list-arch.sh
drwxrwxr-x 7 mingo mingo 4096 May 15 11:26 locking
drwxrwxr-x 5 mingo mingo 4096 May 15 11:26 perf
drwxrwxr-x 3 mingo mingo 4096 May 15 11:26 sched
drwxrwxr-x 3 mingo mingo 4096 May 15 11:26 seccomp
drwxrwxr-x 8 mingo mingo 4096 May 15 11:26 time
drwxrwxr-x 10 mingo mingo 4096 May 15 11:26 vm
triton:~/tip/Documentation/features>
triton:~/tip/Documentation/features> ls -l locking/
total 20
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 cmpxchg-local
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 lockdep
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 queued-rwlocks
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 queued-spinlocks
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 rwsem-optimized
triton:~/tip/Documentation/features> ls -l vm/
total 32
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 ELF-ASLR
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 huge-vmap
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 ioremap_prot
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 numa-memblock
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 PG_uncached
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 pmdp_splitting_flush
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 pte_special
drwxrwxr-x 2 mingo mingo 4096 May 15 11:26 THP
And this structure, beyond making it easier to navigate, can be
utilized to improve the visualization output as well:
triton:~/tip/Documentation/features> ./list-arch.sh
#
# Kernel feature support matrix of the 'x86' architecture:
#
core/ BPF-JIT : ok | HAVE_BPF_JIT # arch supports BPF JIT optimizations
core/ generic-idle-thread : ok | GENERIC_SMP_IDLE_THREAD # arch makes use of the generic SMP idle thread facility
core/ jump-labels : ok | HAVE_ARCH_JUMP_LABEL # arch supports live patched, high efficiency branches
core/ tracehook : ok | HAVE_ARCH_TRACEHOOK # arch supports tracehook (ptrace) register handling APIs
debug/ gcov-profile-all : ok | ARCH_HAS_GCOV_PROFILE_ALL # arch supports whole-kernel GCOV code coverage profiling
debug/ KASAN : ok | HAVE_ARCH_KASAN # arch supports the KASAN runtime memory checker
debug/ kgdb : ok | HAVE_ARCH_KGDB # arch supports the kGDB kernel debugger
debug/ kprobes : ok | HAVE_KPROBES # arch supports live patched kernel probe
debug/ kprobes-on-ftrace : ok | HAVE_KPROBES_ON_FTRACE # arch supports combined kprobes and ftrace live patching
debug/ kretprobes : ok | HAVE_KRETPROBES # arch supports kernel function-return probes
debug/ optprobes : ok | HAVE_OPTPROBES # arch supports live patched optprobes
debug/ stackprotector : ok | HAVE_CC_STACKPROTECTOR # arch supports compiler driven stack overflow protection
debug/ uprobes : ok | ARCH_SUPPORTS_UPROBES # arch supports live patched user probes
debug/ user-ret-profiler : ok | HAVE_USER_RETURN_NOTIFIER # arch supports user-space return from system call profiler
io/ dma-api-debug : ok | HAVE_DMA_API_DEBUG # arch supports DMA debug facilities
io/ dma-contiguous : ok | HAVE_DMA_CONTIGUOUS # arch supports the DMA CMA (continuous memory allocator)
io/ dma_map_attrs : ok | HAVE_DMA_ATTRS # arch provides dma_*map*_attrs() APIs
io/ sg-chain : ok | ARCH_HAS_SG_CHAIN # arch supports chained scatter-gather lists
lib/ strncasecmp : TODO | __HAVE_ARCH_STRNCASECMP # arch provides an optimized strncasecmp() function
locking/ cmpxchg-local : ok | HAVE_CMPXCHG_LOCAL # arch supports the this_cpu_cmpxchg() API
locking/ lockdep : ok | LOCKDEP_SUPPORT # arch supports the runtime locking correctness debug facility
locking/ queued-rwlocks : ok | ARCH_USE_QUEUED_RWLOCKS # arch supports queued rwlocks
locking/ queued-spinlocks : ok | ARCH_USE_QUEUED_SPINLOCKS # arch supports queued spinlocks
locking/ rwsem-optimized : ok | Optimized asm/rwsem.h # arch provides optimized rwsem APIs
perf/ kprobes-event : ok | HAVE_REGS_AND_STACK_ACCESS_API # arch supports kprobes with perf events
perf/ perf-regs : ok | HAVE_PERF_REGS # arch supports perf events register access
perf/ perf-stackdump : ok | HAVE_PERF_USER_STACK_DUMP # arch supports perf events stack dumps
sched/ numa-balancing : ok | ARCH_SUPPORTS_NUMA_BALANCING # arch supports NUMA balancing
seccomp/ seccomp-filter : ok | HAVE_ARCH_SECCOMP_FILTER # arch supports seccomp filters
time/ arch-tick-broadcast : TODO | ARCH_HAS_TICK_BROADCAST # arch provides tick_broadcast()
time/ clockevents : ok | GENERIC_CLOCKEVENTS # arch support generic clock events
time/ context-tracking : ok | HAVE_CONTEXT_TRACKING # arch supports context tracking for NO_HZ_FULL
time/ irq-time-acct : ok | HAVE_IRQ_TIME_ACCOUNTING # arch supports precise IRQ time accounting
time/ modern-timekeeping : ok | !ARCH_USES_GETTIMEOFFSET # arch does not use arch_gettimeoffset() anymore
time/ virt-cpuacct : ok | HAVE_VIRT_CPU_ACCOUNTING # arch supports precise virtual CPU time accounting
vm/ ELF-ASLR : ok | ARCH_HAS_ELF_RANDOMIZE # arch randomizes the stack, heap and binary images of ELF binaries
vm/ huge-vmap : ok | HAVE_ARCH_HUGE_VMAP # arch supports the ioremap_pud_enabled() and ioremap_pmd_enabled() VM APIs
vm/ ioremap_prot : ok | HAVE_IOREMAP_PROT # arch has ioremap_prot()
vm/ numa-memblock : ok | HAVE_MEMBLOCK_NODE_MAP # arch supports NUMA aware memblocks
vm/ PG_uncached : ok | ARCH_USES_PG_UNCACHED # arch supports the PG_uncached page flag
vm/ pmdp_splitting_flush : ok | __HAVE_ARCH_PMDP_SPLITTING_FLUSH # arch supports the pmdp_splitting_flush() VM API
vm/ pte_special : ok | __HAVE_ARCH_PTE_SPECIAL # arch supports the pte_special()/pte_mkspecial() VM APIs
vm/ THP : ok | HAVE_ARCH_TRANSPARENT_HUGEPAGE # arch supports transparent hugepages
See the first column, the subsystem prefixes - this organizes the
feature list in a natural way as well, per subsystem.
Seems to work out well.
Thanks,
Ingo
next prev parent reply other threads:[~2015-05-15 9:38 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-11 19:29 [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic Josh Triplett
2015-05-11 19:29 ` Josh Triplett
2015-05-12 21:22 ` Andrew Morton
2015-05-12 21:38 ` Peter Zijlstra
2015-05-12 21:49 ` Andrew Morton
2015-05-12 21:49 ` Andrew Morton
2015-05-13 8:34 ` [RFC PATCH] Documentation/arch: Add Documentation/arch-TODO Ingo Molnar
2015-05-13 8:34 ` Ingo Molnar
2015-05-13 8:34 ` Ingo Molnar
2015-05-13 8:34 ` Ingo Molnar
2015-05-13 8:56 ` [RFC PATCH v2] " Ingo Molnar
2015-05-13 8:56 ` Ingo Molnar
2015-05-13 8:56 ` Ingo Molnar
2015-05-13 9:24 ` [RFC PATCH v3] " Ingo Molnar
2015-05-13 9:24 ` Ingo Molnar
2015-05-13 9:24 ` Ingo Molnar
2015-05-13 9:24 ` Ingo Molnar
2015-05-13 9:46 ` Ingo Molnar
2015-05-13 9:46 ` Ingo Molnar
2015-05-13 9:46 ` Ingo Molnar
2015-05-13 9:47 ` [RFC PATCH v5] " Ingo Molnar
2015-05-13 9:47 ` Ingo Molnar
2015-05-13 9:47 ` Ingo Molnar
2015-05-13 9:47 ` Ingo Molnar
2015-05-13 13:18 ` Borislav Petkov
2015-05-13 13:48 ` [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt Ingo Molnar
2015-05-13 13:48 ` Ingo Molnar
2015-05-13 13:48 ` Ingo Molnar
2015-05-13 13:48 ` Ingo Molnar
2015-05-13 16:27 ` Josh Triplett
2015-05-13 16:53 ` Josh Triplett
2015-05-13 16:53 ` Josh Triplett
2015-05-14 10:16 ` Ingo Molnar
2015-05-14 10:31 ` Josh Triplett
2015-05-14 10:31 ` Josh Triplett
2015-05-13 22:05 ` Andrew Morton
2015-05-13 22:05 ` Andrew Morton
2015-05-14 10:02 ` Ingo Molnar
2015-05-14 10:02 ` Ingo Molnar
2015-05-14 10:15 ` [PATCH] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ Ingo Molnar
2015-05-14 10:15 ` Ingo Molnar
2015-05-14 10:35 ` [PATCH v2] " Ingo Molnar
2015-05-14 10:35 ` Ingo Molnar
2015-05-14 19:38 ` Andrew Morton
2015-05-14 19:59 ` Ingo Molnar
2015-05-14 22:33 ` Stephen Rothwell
2015-05-14 22:33 ` Stephen Rothwell
2015-05-15 7:38 ` Ingo Molnar
2015-05-15 7:38 ` Ingo Molnar
2015-05-15 7:51 ` Ingo Molnar
2015-05-15 7:51 ` Ingo Molnar
2015-05-15 9:37 ` Ingo Molnar [this message]
2015-05-14 20:34 ` Richard Weinberger
2015-05-14 20:34 ` Richard Weinberger
2015-05-14 22:57 ` Michael Ellerman
2015-05-14 22:57 ` Michael Ellerman
2015-05-15 7:49 ` Ingo Molnar
2015-05-15 7:49 ` Ingo Molnar
2015-05-18 1:37 ` Michael Ellerman
2015-05-18 8:54 ` Ingo Molnar
2015-05-18 8:54 ` Ingo Molnar
2015-05-19 2:02 ` Michael Ellerman
2015-05-19 2:02 ` Michael Ellerman
2015-05-22 15:49 ` Jonathan Corbet
2015-05-22 15:49 ` Jonathan Corbet
2015-05-23 8:07 ` Ingo Molnar
2015-05-23 8:07 ` Ingo Molnar
2015-05-24 18:44 ` Jonathan Corbet
2015-06-03 11:03 ` [GIT PULL] Documentation/features: Add kernel feature descriptions and arch support status files " Ingo Molnar
2015-06-03 11:03 ` Ingo Molnar
2015-06-08 23:08 ` Jonathan Corbet
2015-06-08 23:08 ` Jonathan Corbet
2015-05-14 7:08 ` [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt Ingo Molnar
2015-05-14 3:55 ` Paul Mackerras
2015-05-14 7:02 ` Ingo Molnar
2015-05-13 14:09 ` [RFC PATCH v5] Documentation/arch: Add Documentation/arch-TODO Michele Curti
2015-05-13 14:09 ` Michele Curti
2015-05-13 14:42 ` Geert Uytterhoeven
2015-05-14 7:21 ` H. Peter Anvin
2015-05-14 7:21 ` H. Peter Anvin
2015-05-14 7:21 ` H. Peter Anvin
2015-05-13 0:53 ` [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic josh
2015-05-13 0:53 ` josh-iaAMLnmF4UmaiuxdJuQwMA
2015-05-13 22:56 ` Andrew Morton
2015-05-13 22:56 ` Andrew Morton
2015-05-13 23:25 ` josh
2015-05-13 23:25 ` josh-iaAMLnmF4UmaiuxdJuQwMA
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150515093750.GA4665@gmail.com \
--to=mingo@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=hpa@zytor.com \
--cc=josh@joshtriplett.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.