* [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic @ 2015-05-11 19:29 Josh Triplett 2015-05-12 21:22 ` Andrew Morton 2015-05-13 22:56 ` Andrew Morton 0 siblings, 2 replies; 46+ messages in thread From: Josh Triplett @ 2015-05-11 19:29 UTC (permalink / raw) To: Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Peter Zijlstra, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A clone with CLONE_SETTLS accepts an argument to set the thread-local storage area for the new thread. sys_clone declares an int argument tls_val in the appropriate point in the argument list (based on the various CLONE_BACKWARDS variants), but doesn't actually use or pass along that argument. Instead, sys_clone calls do_fork, which calls copy_process, which calls the arch-specific copy_thread, and copy_thread pulls the corresponding syscall argument out of the pt_regs captured at kernel entry (knowing what argument of clone that architecture passes tls in). Apart from being awful and inscrutable, that also only works because only one code path into copy_thread can pass the CLONE_SETTLS flag, and that code path comes from sys_clone with its architecture-specific argument-passing order. This prevents introducing a new version of the clone system call without propagating the same architecture-specific position of the tls argument. However, there's no reason to pull the argument out of pt_regs when sys_clone could just pass it down via C function call arguments. Introduce a new CONFIG_HAVE_COPY_THREAD_TLS for architectures to opt into, and a new copy_thread_tls that accepts the tls parameter as an additional unsigned long (syscall-argument-sized) argument. Change sys_clone's tls argument to an unsigned long (which does not change the ABI), and pass that down to copy_thread_tls. Architectures that don't opt into copy_thread_tls will continue to ignore the C argument to sys_clone in favor of the pt_regs captured at kernel entry, and thus will be unable to introduce new versions of the clone syscall. Patch co-authored by Josh Triplett and Thiago Macieira. Signed-off-by: Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org> Acked-by: Andy Lutomirski <luto-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> --- arch/Kconfig | 7 ++++++ include/linux/sched.h | 14 ++++++++++++ include/linux/syscalls.h | 6 +++--- kernel/fork.c | 55 +++++++++++++++++++++++++++++++----------------- 4 files changed, 60 insertions(+), 22 deletions(-) diff --git a/arch/Kconfig b/arch/Kconfig index 05d7a8a..4834a58 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -484,6 +484,13 @@ config HAVE_IRQ_EXIT_ON_IRQ_STACK This spares a stack switch and improves cache usage on softirq processing. +config HAVE_COPY_THREAD_TLS + bool + help + Architecture provides copy_thread_tls to accept tls argument via + normal C parameter passing, rather than extracting the syscall + argument from pt_regs. + # # ABI hall of shame # diff --git a/include/linux/sched.h b/include/linux/sched.h index a419b65..2cc88c6 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2480,8 +2480,22 @@ extern struct mm_struct *mm_access(struct task_struct *task, unsigned int mode); /* Remove the current tasks stale references to the old mm_struct */ extern void mm_release(struct task_struct *, struct mm_struct *); +#ifdef CONFIG_HAVE_COPY_THREAD_TLS +extern int copy_thread_tls(unsigned long, unsigned long, unsigned long, + struct task_struct *, unsigned long); +#else extern int copy_thread(unsigned long, unsigned long, unsigned long, struct task_struct *); + +/* Architectures that haven't opted into copy_thread_tls get the tls argument + * via pt_regs, so ignore the tls argument passed via C. */ +static inline int copy_thread_tls( + unsigned long clone_flags, unsigned long sp, unsigned long arg, + struct task_struct *p, unsigned long tls) +{ + return copy_thread(clone_flags, sp, arg, p); +} +#endif extern void flush_thread(void); extern void exit_thread(void); diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 76d1e38..bb51bec 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h @@ -827,15 +827,15 @@ asmlinkage long sys_syncfs(int fd); asmlinkage long sys_fork(void); asmlinkage long sys_vfork(void); #ifdef CONFIG_CLONE_BACKWARDS -asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, int, +asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, unsigned long, int __user *); #else #ifdef CONFIG_CLONE_BACKWARDS3 asmlinkage long sys_clone(unsigned long, unsigned long, int, int __user *, - int __user *, int); + int __user *, unsigned long); #else asmlinkage long sys_clone(unsigned long, unsigned long, int __user *, - int __user *, int); + int __user *, unsigned long); #endif #endif diff --git a/kernel/fork.c b/kernel/fork.c index cf65139..b3dadf4 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1192,7 +1192,8 @@ static struct task_struct *copy_process(unsigned long clone_flags, unsigned long stack_size, int __user *child_tidptr, struct pid *pid, - int trace) + int trace, + unsigned long tls) { int retval; struct task_struct *p; @@ -1401,7 +1402,7 @@ static struct task_struct *copy_process(unsigned long clone_flags, retval = copy_io(clone_flags, p); if (retval) goto bad_fork_cleanup_namespaces; - retval = copy_thread(clone_flags, stack_start, stack_size, p); + retval = copy_thread_tls(clone_flags, stack_start, stack_size, p, tls); if (retval) goto bad_fork_cleanup_io; @@ -1613,7 +1614,7 @@ static inline void init_idle_pids(struct pid_link *links) struct task_struct *fork_idle(int cpu) { struct task_struct *task; - task = copy_process(CLONE_VM, 0, 0, NULL, &init_struct_pid, 0); + task = copy_process(CLONE_VM, 0, 0, NULL, &init_struct_pid, 0, 0); if (!IS_ERR(task)) { init_idle_pids(task->pids); init_idle(task, cpu); @@ -1628,11 +1629,13 @@ struct task_struct *fork_idle(int cpu) * It copies the process, and if successful kick-starts * it and waits for it to finish using the VM if required. */ -long do_fork(unsigned long clone_flags, - unsigned long stack_start, - unsigned long stack_size, - int __user *parent_tidptr, - int __user *child_tidptr) +static long _do_fork( + unsigned long clone_flags, + unsigned long stack_start, + unsigned long stack_size, + int __user *parent_tidptr, + int __user *child_tidptr, + unsigned long tls) { struct task_struct *p; int trace = 0; @@ -1657,7 +1660,7 @@ long do_fork(unsigned long clone_flags, } p = copy_process(clone_flags, stack_start, stack_size, - child_tidptr, NULL, trace); + child_tidptr, NULL, trace, tls); /* * Do this prior waking up the new thread - the thread pointer * might get invalid after that point, if the thread exits quickly. @@ -1698,20 +1701,34 @@ long do_fork(unsigned long clone_flags, return nr; } +#ifndef CONFIG_HAVE_COPY_THREAD_TLS +/* For compatibility with architectures that call do_fork directly rather than + * using the syscall entry points below. */ +long do_fork(unsigned long clone_flags, + unsigned long stack_start, + unsigned long stack_size, + int __user *parent_tidptr, + int __user *child_tidptr) +{ + return _do_fork(clone_flags, stack_start, stack_size, + parent_tidptr, child_tidptr, 0); +} +#endif + /* * Create a kernel thread. */ pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) { - return do_fork(flags|CLONE_VM|CLONE_UNTRACED, (unsigned long)fn, - (unsigned long)arg, NULL, NULL); + return _do_fork(flags|CLONE_VM|CLONE_UNTRACED, (unsigned long)fn, + (unsigned long)arg, NULL, NULL, 0); } #ifdef __ARCH_WANT_SYS_FORK SYSCALL_DEFINE0(fork) { #ifdef CONFIG_MMU - return do_fork(SIGCHLD, 0, 0, NULL, NULL); + return _do_fork(SIGCHLD, 0, 0, NULL, NULL, 0); #else /* can not support in nommu mode */ return -EINVAL; @@ -1722,8 +1739,8 @@ SYSCALL_DEFINE0(fork) #ifdef __ARCH_WANT_SYS_VFORK SYSCALL_DEFINE0(vfork) { - return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, 0, - 0, NULL, NULL); + return _do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, 0, + 0, NULL, NULL, 0); } #endif @@ -1731,27 +1748,27 @@ SYSCALL_DEFINE0(vfork) #ifdef CONFIG_CLONE_BACKWARDS SYSCALL_DEFINE5(clone, unsigned long, clone_flags, unsigned long, newsp, int __user *, parent_tidptr, - int, tls_val, + unsigned long, tls, int __user *, child_tidptr) #elif defined(CONFIG_CLONE_BACKWARDS2) SYSCALL_DEFINE5(clone, unsigned long, newsp, unsigned long, clone_flags, int __user *, parent_tidptr, int __user *, child_tidptr, - int, tls_val) + unsigned long, tls) #elif defined(CONFIG_CLONE_BACKWARDS3) SYSCALL_DEFINE6(clone, unsigned long, clone_flags, unsigned long, newsp, int, stack_size, int __user *, parent_tidptr, int __user *, child_tidptr, - int, tls_val) + unsigned long, tls) #else SYSCALL_DEFINE5(clone, unsigned long, clone_flags, unsigned long, newsp, int __user *, parent_tidptr, int __user *, child_tidptr, - int, tls_val) + unsigned long, tls) #endif { - return do_fork(clone_flags, newsp, 0, parent_tidptr, child_tidptr); + return _do_fork(clone_flags, newsp, 0, parent_tidptr, child_tidptr, tls); } #endif -- 2.1.4 ^ permalink raw reply related [flat|nested] 46+ messages in thread
* Re: [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic 2015-05-11 19:29 [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic Josh Triplett @ 2015-05-12 21:22 ` Andrew Morton 2015-05-12 21:38 ` Peter Zijlstra [not found] ` <20150512142250.dcb053da81855ae1b5861173-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 2015-05-13 22:56 ` Andrew Morton 1 sibling, 2 replies; 46+ messages in thread From: Andrew Morton @ 2015-05-12 21:22 UTC (permalink / raw) To: Josh Triplett Cc: Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Peter Zijlstra, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86 On Mon, 11 May 2015 12:29:19 -0700 Josh Triplett <josh@joshtriplett.org> wrote: > Introduce a new CONFIG_HAVE_COPY_THREAD_TLS for architectures to opt > into, and a new copy_thread_tls that accepts the tls parameter as an > additional unsigned long (syscall-argument-sized) argument. > Change sys_clone's tls argument to an unsigned long (which does > not change the ABI), and pass that down to copy_thread_tls. > > Architectures that don't opt into copy_thread_tls will continue to > ignore the C argument to sys_clone in favor of the pt_regs captured at > kernel entry, and thus will be unable to introduce new versions of the > clone syscall. What happens quite frequently is that we do something for x86 with the expectation that other architectures will follow along, but this doesn't happen. The arch maintainers simply didn't know about it or nobody nags them. Nothing happens and inconsistencies hang around for years. eg, http://lkml.iu.edu/hypermail/linux/kernel/1504.2/04993.html I'm thinking we should find a way to do this better. One way might be to maintain a Documentation/arch-todo which identifies each item, has a little list of what-to-do instructions and perhaps a list of the not-yet-done architectures. Basically a way for everyone to communicate at the arch maintainers. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic 2015-05-12 21:22 ` Andrew Morton @ 2015-05-12 21:38 ` Peter Zijlstra [not found] ` <20150512213843.GV21418-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> [not found] ` <20150512142250.dcb053da81855ae1b5861173-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 1 sibling, 1 reply; 46+ messages in thread From: Peter Zijlstra @ 2015-05-12 21:38 UTC (permalink / raw) To: Andrew Morton Cc: Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch On Tue, May 12, 2015 at 02:22:50PM -0700, Andrew Morton wrote: > On Mon, 11 May 2015 12:29:19 -0700 Josh Triplett <josh@joshtriplett.org> wrote: > > > Introduce a new CONFIG_HAVE_COPY_THREAD_TLS for architectures to opt > > into, and a new copy_thread_tls that accepts the tls parameter as an > > additional unsigned long (syscall-argument-sized) argument. > > Change sys_clone's tls argument to an unsigned long (which does > > not change the ABI), and pass that down to copy_thread_tls. > > > > Architectures that don't opt into copy_thread_tls will continue to > > ignore the C argument to sys_clone in favor of the pt_regs captured at > > kernel entry, and thus will be unable to introduce new versions of the > > clone syscall. > > What happens quite frequently is that we do something for x86 with the > expectation that other architectures will follow along, but this > doesn't happen. The arch maintainers simply didn't know about it or > nobody nags them. Nothing happens and inconsistencies hang around for > years. eg, http://lkml.iu.edu/hypermail/linux/kernel/1504.2/04993.html > > I'm thinking we should find a way to do this better. One way might be > to maintain a Documentation/arch-todo which identifies each item, has a > little list of what-to-do instructions and perhaps a list of the > not-yet-done architectures. Basically a way for everyone to > communicate at the arch maintainers. If only there was a linux-arch list to which arch maintainers should subscribe... oh wait :-) ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150512213843.GV21418-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>]
* Re: [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic [not found] ` <20150512213843.GV21418-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> @ 2015-05-12 21:49 ` Andrew Morton [not found] ` <20150512144910.0b49c9a7a13336773449db33-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 0 siblings, 1 reply; 46+ messages in thread From: Andrew Morton @ 2015-05-12 21:49 UTC (permalink / raw) To: Peter Zijlstra Cc: Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA On Tue, 12 May 2015 23:38:43 +0200 Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> wrote: > > What happens quite frequently is that we do something for x86 with the > > expectation that other architectures will follow along, but this > > doesn't happen. The arch maintainers simply didn't know about it or > > nobody nags them. Nothing happens and inconsistencies hang around for > > years. eg, http://lkml.iu.edu/hypermail/linux/kernel/1504.2/04993.html > > > > I'm thinking we should find a way to do this better. One way might be > > to maintain a Documentation/arch-todo which identifies each item, has a > > little list of what-to-do instructions and perhaps a list of the > > not-yet-done architectures. Basically a way for everyone to > > communicate at the arch maintainers. > > If only there was a linux-arch list to which arch maintainers should > subscribe... oh wait :-) It was I who got linux-arch established, so I'm fairly familiar with it. (12 years ago, gad). I don't think it's been very successful, particularly for this purpose. A whole pile of randomly cc'ed lkml overflow which we're relying on each individual maintainer to sift through and pluck out particular action items then later remember to implement them. It's disorganized and has too many cracks for things to fall through. ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150512144910.0b49c9a7a13336773449db33-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>]
* [RFC PATCH] Documentation/arch: Add Documentation/arch-TODO [not found] ` <20150512144910.0b49c9a7a13336773449db33-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> @ 2015-05-13 8:34 ` Ingo Molnar 2015-05-13 8:56 ` [RFC PATCH v2] " Ingo Molnar 0 siblings, 1 reply; 46+ messages in thread From: Ingo Molnar @ 2015-05-13 8:34 UTC (permalink / raw) To: Jonathan Corbet Cc: Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA, Andrew Morton, Borislav Petkov * Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> wrote: > On Tue, 12 May 2015 23:38:43 +0200 Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> wrote: > > > > with the expectation that other architectures will follow along, > > > but this doesn't happen. The arch maintainers simply didn't > > > know about it or nobody nags them. Nothing happens and > > > inconsistencies hang around for years. eg, > > > http://lkml.iu.edu/hypermail/linux/kernel/1504.2/04993.html > > > > > > I'm thinking we should find a way to do this better. One way > > > might be to maintain a Documentation/arch-todo which identifies > > > each item, has a little list of what-to-do instructions and > > > perhaps a list of the not-yet-done architectures. Basically a > > > way for everyone to communicate at the arch maintainers. > > > > If only there was a linux-arch list to which arch maintainers > > should subscribe... oh wait :-) > > It was I who got linux-arch established, so I'm fairly familiar with > it. (12 years ago, gad). > > I don't think it's been very successful, particularly for this > purpose. A whole pile of randomly cc'ed lkml overflow which we're > relying on each individual maintainer to sift through and pluck out > particular action items then later remember to implement them. It's > disorganized and has too many cracks for things to fall through. Yes, a mailing list is indeed not a very good TODO list. We need a persistent post-it, and Documentation/arch-TODO (note the capital letters, we might as well shout?) sounds like a good place. I'd suggest making it tabular, as per the patch below. If it gets too large we can split it into multiple tables. I'd like people to have a good look whether I messed up any entry, and I'd be happy to add new items as well. Thanks, Ingo =======================> >From 33a487046b16971564d323079f66fb63aa870f4d Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Date: Wed, 13 May 2015 10:30:11 +0200 Subject: [PATCH] Documentation/arch: Add Documentation/arch-TODO Add a TODO list for missing/incomplete architecture support for generic kernel features. Signed-off-by: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> --- Documentation/arch-TODO | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/Documentation/arch-TODO b/Documentation/arch-TODO new file mode 100644 index 000000000000..bfa289639b1c --- /dev/null +++ b/Documentation/arch-TODO @@ -0,0 +1,47 @@ + +For generic kernel features that need architecture support, this is +the feature support matrix, for all upstream Linux architectures: + + ELF-ASLR:----------------------------------------------------------. + clockevents:---------------------------------------------------. | +modern-timekeeping:--------------------------------------------. | | + kgdb:-------------------------------------. | | | + context-tracking:------------------------------. | | | | + seccomp-filter:-----------------------. | | | | | + jump-labels:----------------. | | | | | | + stackprotector:---------. | | | | | | | + lockdep:--. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + arc | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + arm | ok | ok | ok | ok | ok | ok | TODO | ok | ok | + arm64 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + avr32 | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + blackfin | ok | TODO | TODO | TODO | TODO | ok | TODO | ok | TODO | + c6x | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + hexagon | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + ia64 | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + metag | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + microblaze | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + mips | ok | ok | ok | ok | ok | ok | ok | ok | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + nios2 | TODO | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + openrisc | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + parisc | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + powerpc | ok | TODO | ok | TODO | TODO | ok | ok | ok | ok | + s390 | ok | TODO | ok | ok | TODO | TODO | ok | ok | ok | + score | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + sh | ok | ok | TODO | TODO | TODO | ok | ok | ok | TODO | + sparc | ok | TODO | ok | TODO | ok | ok | ok | ok | TODO | + tile | ok | TODO | TODO | TODO | ok | ok | ok | ok | TODO | + um | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + unicore32 | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | +---------------------------------------------------------------------------------- + ^ permalink raw reply related [flat|nested] 46+ messages in thread
* [RFC PATCH v2] Documentation/arch: Add Documentation/arch-TODO 2015-05-13 8:34 ` [RFC PATCH] Documentation/arch: Add Documentation/arch-TODO Ingo Molnar @ 2015-05-13 8:56 ` Ingo Molnar [not found] ` <20150513085636.GA11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 46+ messages in thread From: Ingo Molnar @ 2015-05-13 8:56 UTC (permalink / raw) To: Andrew Morton, Jonathan Corbet Cc: Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch, Borislav Petkov Added a second table with more features listed. Thanks, Ingo =======================> >From 32acc8a058a166d177346cfe59b6bc930f9e6471 Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo@kernel.org> Date: Wed, 13 May 2015 10:30:11 +0200 Subject: [PATCH] Documentation/arch: Add Documentation/arch-TODO Add a TODO list for missing/incomplete architecture support for generic kernel features. Signed-off-by: Ingo Molnar <mingo@kernel.org> --- Documentation/arch-TODO | 89 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/Documentation/arch-TODO b/Documentation/arch-TODO new file mode 100644 index 000000000000..adf05e4c353f --- /dev/null +++ b/Documentation/arch-TODO @@ -0,0 +1,89 @@ + +For generic kernel features that need architecture support, this is +the feature support matrix, for all upstream Linux architectures: + + ELF-ASLR:---------------------------------------------------------. + clockevents:--------------------------------------------------. | + modern-timekeeping:-------------------------------------------. | | + kgdb:------------------------------------. | | | + context-tracking:-----------------------------. | | | | + seccomp-filter:----------------------. | | | | | + jump-labels:---------------. | | | | | | + stackprotector:--------. | | | | | | | + lockdep:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + arc | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + arm | ok | ok | ok | ok | ok | ok | TODO | ok | ok | + arm64 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + avr32 | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + blackfin | ok | TODO | TODO | TODO | TODO | ok | TODO | ok | TODO | + c6x | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + hexagon | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + ia64 | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + metag | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + microblaze | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + mips | ok | ok | ok | ok | ok | ok | ok | ok | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + nios2 | TODO | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + openrisc | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + parisc | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + powerpc | ok | TODO | ok | TODO | TODO | ok | ok | ok | ok | + s390 | ok | TODO | ok | ok | TODO | TODO | ok | ok | ok | + score | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + sh | ok | ok | TODO | TODO | TODO | ok | ok | ok | TODO | + sparc | ok | TODO | ok | TODO | ok | ok | ok | ok | TODO | + tile | ok | TODO | TODO | TODO | ok | ok | ok | ok | TODO | + um | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + unicore32 | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | +---------------------------------------------------------------------------------- + + tracehook:---------------------------------------------------------. + ioremap_prot():--------------------------------------------------. | + user-ret-profiler:-------------------------------------------. | | + kretprobes:------------------------------------. | | | + uprobes:-----------------------------. | | | | + kprobes-on-ftrace:----------------------. | | | | | + optprobes:---------------. | | | | | | + kprobes:--------. | | | | | | | +arch-tick-broadcast:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + arc | TODO | ok | TODO | TODO | TODO | ok | TODO | ok | ok | + arm | ok | ok | ok | TODO | ok | ok | TODO | TODO | ok | + arm64 | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + avr32 | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + blackfin | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + c6x | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + hexagon | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + ia64 | TODO | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + metag | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + microblaze | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + mips | ok | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + nios2 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + openrisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + parisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + powerpc | ok | ok | TODO | TODO | ok | ok | TODO | ok | ok | + s390 | TODO | ok | TODO | TODO | ok | ok | TODO | TODO | ok | + score | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + sh | TODO | ok | TODO | TODO | TODO | ok | TODO | ok | ok | + sparc | TODO | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + tile | TODO | ok | ok | TODO | TODO | ok | ok | ok | ok | + um | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + unicore32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + x86 | TODO | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | +---------------------------------------------------------------------------------- ^ permalink raw reply related [flat|nested] 46+ messages in thread
[parent not found: <20150513085636.GA11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* [RFC PATCH v3] Documentation/arch: Add Documentation/arch-TODO [not found] ` <20150513085636.GA11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-05-13 9:24 ` Ingo Molnar 2015-05-13 9:46 ` Ingo Molnar 0 siblings, 1 reply; 46+ messages in thread From: Ingo Molnar @ 2015-05-13 9:24 UTC (permalink / raw) To: Andrew Morton, Jonathan Corbet Cc: Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA, Borislav Petkov The feature support matrix now includes a third table as well. Thanks, Ingo ======================> >From c6170954222f839b039f202bea46a85491b0c067 Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Date: Wed, 13 May 2015 10:30:11 +0200 Subject: [PATCH] Documentation/arch: Add Documentation/arch-TODO Add a TODO list for missing/incomplete architecture support for generic kernel features. Signed-off-by: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> --- Documentation/arch-TODO | 134 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/Documentation/arch-TODO b/Documentation/arch-TODO new file mode 100644 index 000000000000..a577b185c293 --- /dev/null +++ b/Documentation/arch-TODO @@ -0,0 +1,134 @@ + +For generic kernel features that need architecture support, this is +the feature support matrix, for all upstream Linux architectures: + + ELF-ASLR:---------------------------------------------------------. + clockevents:--------------------------------------------------. | + modern-timekeeping:-------------------------------------------. | | + kgdb:------------------------------------. | | | + context-tracking:-----------------------------. | | | | + seccomp-filter:----------------------. | | | | | + jump-labels:---------------. | | | | | | + stackprotector:--------. | | | | | | | + lockdep:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + arc | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + arm | ok | ok | ok | ok | ok | ok | TODO | ok | ok | + arm64 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + avr32 | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + blackfin | ok | TODO | TODO | TODO | TODO | ok | TODO | ok | TODO | + c6x | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + hexagon | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + ia64 | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + metag | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + microblaze | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + mips | ok | ok | ok | ok | ok | ok | ok | ok | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + nios2 | TODO | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + openrisc | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + parisc | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + powerpc | ok | TODO | ok | TODO | TODO | ok | ok | ok | ok | + s390 | ok | TODO | ok | ok | TODO | TODO | ok | ok | ok | + score | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + sh | ok | ok | TODO | TODO | TODO | ok | ok | ok | TODO | + sparc | ok | TODO | ok | TODO | ok | ok | ok | ok | TODO | + tile | ok | TODO | TODO | TODO | ok | ok | ok | ok | TODO | + um | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + unicore32 | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | +---------------------------------------------------------------------------------- + + tracehook:---------------------------------------------------------. + ioremap_prot():--------------------------------------------------. | + user-ret-profiler:-------------------------------------------. | | + kretprobes:------------------------------------. | | | + uprobes:-----------------------------. | | | | + kprobes-on-ftrace:----------------------. | | | | | + optprobes:---------------. | | | | | | + kprobes:--------. | | | | | | | +arch-tick-broadcast:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + arc | TODO | ok | TODO | TODO | TODO | ok | TODO | ok | ok | + arm | ok | ok | ok | TODO | ok | ok | TODO | TODO | ok | + arm64 | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + avr32 | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + blackfin | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + c6x | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + hexagon | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + ia64 | TODO | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + metag | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + microblaze | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + mips | ok | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + nios2 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + openrisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + parisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + powerpc | ok | ok | TODO | TODO | ok | ok | TODO | ok | ok | + s390 | TODO | ok | TODO | TODO | ok | ok | TODO | TODO | ok | + score | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + sh | TODO | ok | TODO | TODO | TODO | ok | TODO | ok | ok | + sparc | TODO | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + tile | TODO | ok | ok | TODO | TODO | ok | ok | ok | ok | + um | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + unicore32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + x86 | TODO | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | +---------------------------------------------------------------------------------- + + + + virt-cpuacct:---------------------------------------------------------. + cmpxchg-local:--------------------------------------------------. | + perf-stackdump:-------------------------------------------. | | + perf-regs:------------------------------------. | | | + dma-api-debug:-----------------------------. | | | | + kprobes-event:----------------------. | | | | | + dma-contiguous:---------------. | | | | | | + dma_*map*_attrs():--------. | | | | | | | +generic-idle-thread:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | ok | ok | TODO | TODO | TODO | TODO | TODO | TODO | ok | + arc | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + arm | ok | ok | ok | ok | ok | ok | ok | TODO | ok | + arm64 | ok | ok | ok | TODO | ok | ok | ok | TODO | ok | + avr32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + blackfin | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + c6x | TODO | TODO | TODO | TODO | ok | TODO | TODO | TODO | TODO | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + hexagon | ok | ok | TODO | ok | TODO | TODO | TODO | TODO | TODO | + ia64 | ok | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + metag | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + microblaze | TODO | ok | TODO | TODO | ok | TODO | TODO | TODO | TODO | + mips | ok | ok | ok | TODO | ok | TODO | TODO | TODO | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + nios2 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + openrisc | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + parisc | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + powerpc | ok | ok | TODO | ok | ok | TODO | TODO | TODO | ok | + s390 | ok | ok | TODO | ok | ok | TODO | TODO | ok | ok | + score | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + sh | ok | ok | TODO | ok | ok | TODO | TODO | TODO | TODO | + sparc | ok | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | + tile | TODO | ok | TODO | ok | ok | TODO | TODO | TODO | ok | + um | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + unicore32 | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | +---------------------------------------------------------------------------------- ^ permalink raw reply related [flat|nested] 46+ messages in thread
* Re: [RFC PATCH v3] Documentation/arch: Add Documentation/arch-TODO 2015-05-13 9:24 ` [RFC PATCH v3] " Ingo Molnar @ 2015-05-13 9:46 ` Ingo Molnar [not found] ` <20150513094622.GC11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 46+ messages in thread From: Ingo Molnar @ 2015-05-13 9:46 UTC (permalink / raw) To: Andrew Morton, Jonathan Corbet Cc: Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch, Borislav Petkov So this is the final version for now: - add a fourth table - fix errors in earlier tables, in particular I missed some PowerPC Kconfigs - introduce the '..' denotion (in the final table) to show features that cannot be supported by an architecture due to hardware dependencies: gcov-profile-all:---------------. THP:--------. | irq-time-acct:-. | | | | | ---------------------------------------- alpha | TODO | TODO | TODO | arc | TODO | .. | TODO | arm | ok | ok | ok | arm64 | TODO | ok | ok | avr32 | TODO | .. | TODO | blackfin | TODO | .. | TODO | c6x | TODO | .. | TODO | so in the 'THP' column, if an architecture could in theory support THP, it's listed as 'TODO', if it cannot, it's listed as '..'. Please let me know about errors in these tables, and I can also add more features/facilities as well if I missed any. Thanks, Ingo ==========================> >From a44b9e91788a2628e1223d143024de4572a924c3 Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo@kernel.org> Date: Wed, 13 May 2015 10:30:11 +0200 Subject: [PATCH] Documentation/arch: Add Documentation/arch-TODO Add a TODO list for missing/incomplete architecture support for generic kernel features. Signed-off-by: Ingo Molnar <mingo@kernel.org> --- Documentation/arch-TODO | 169 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) diff --git a/Documentation/arch-TODO b/Documentation/arch-TODO new file mode 100644 index 000000000000..0880914e1eaf --- /dev/null +++ b/Documentation/arch-TODO @@ -0,0 +1,169 @@ + +For generic kernel features that need architecture support, this is +the feature support matrix, for all upstream Linux architectures: + + ELF-ASLR:---------------------------------------------------------. + clockevents:--------------------------------------------------. | + modern-timekeeping:-------------------------------------------. | | + kgdb:------------------------------------. | | | + context-tracking:-----------------------------. | | | | + seccomp-filter:----------------------. | | | | | + jump-labels:---------------. | | | | | | + stackprotector:--------. | | | | | | | + lockdep:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + arc | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + arm | ok | ok | ok | ok | ok | ok | TODO | ok | ok | + arm64 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + avr32 | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + blackfin | ok | TODO | TODO | TODO | TODO | ok | TODO | ok | TODO | + c6x | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + hexagon | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + ia64 | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + metag | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + microblaze | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + mips | ok | ok | ok | ok | ok | ok | ok | ok | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + nios2 | TODO | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + openrisc | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + parisc | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + powerpc | ok | TODO | ok | TODO | ok | ok | ok | ok | ok | + s390 | ok | TODO | ok | ok | TODO | TODO | ok | ok | ok | + score | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + sh | ok | ok | TODO | TODO | TODO | ok | ok | ok | TODO | + sparc | ok | TODO | ok | TODO | ok | ok | ok | ok | TODO | + tile | ok | TODO | TODO | TODO | ok | ok | ok | ok | TODO | + um | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + unicore32 | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | +---------------------------------------------------------------------------------- + + tracehook:---------------------------------------------------------. + ioremap_prot():--------------------------------------------------. | + user-ret-profiler:-------------------------------------------. | | + kretprobes:------------------------------------. | | | + uprobes:-----------------------------. | | | | + kprobes-on-ftrace:----------------------. | | | | | + optprobes:---------------. | | | | | | + kprobes:--------. | | | | | | | +arch-tick-broadcast:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + arc | TODO | ok | TODO | TODO | TODO | ok | TODO | ok | ok | + arm | ok | ok | ok | TODO | ok | ok | TODO | TODO | ok | + arm64 | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + avr32 | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + blackfin | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + c6x | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + hexagon | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + ia64 | TODO | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + metag | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + microblaze | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + mips | ok | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + nios2 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + openrisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + parisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + powerpc | ok | ok | TODO | TODO | ok | ok | TODO | ok | ok | + s390 | TODO | ok | TODO | TODO | ok | ok | TODO | TODO | ok | + score | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + sh | TODO | ok | TODO | TODO | TODO | ok | TODO | ok | ok | + sparc | TODO | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + tile | TODO | ok | ok | TODO | TODO | ok | ok | ok | ok | + um | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + unicore32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + x86 | TODO | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | +---------------------------------------------------------------------------------- + + virt-cpuacct:---------------------------------------------------------. + cmpxchg-local:--------------------------------------------------. | + perf-stackdump:-------------------------------------------. | | + perf-regs:------------------------------------. | | | + dma-api-debug:-----------------------------. | | | | + kprobes-event:----------------------. | | | | | + dma-contiguous:---------------. | | | | | | + dma_*map*_attrs():--------. | | | | | | | +generic-idle-thread:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | ok | ok | TODO | TODO | TODO | TODO | TODO | TODO | ok | + arc | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + arm | ok | ok | ok | ok | ok | ok | ok | TODO | ok | + arm64 | ok | ok | ok | TODO | ok | ok | ok | TODO | ok | + avr32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + blackfin | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + c6x | TODO | TODO | TODO | TODO | ok | TODO | TODO | TODO | TODO | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + hexagon | ok | ok | TODO | ok | TODO | TODO | TODO | TODO | TODO | + ia64 | ok | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + metag | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + microblaze | TODO | ok | TODO | TODO | ok | TODO | TODO | TODO | TODO | + mips | ok | ok | ok | TODO | ok | TODO | TODO | TODO | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + nios2 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + openrisc | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + parisc | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + powerpc | ok | ok | TODO | ok | ok | TODO | TODO | TODO | ok | + s390 | ok | ok | TODO | ok | ok | TODO | TODO | ok | ok | + score | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + sh | ok | ok | TODO | ok | ok | TODO | TODO | TODO | TODO | + sparc | ok | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | + tile | TODO | ok | TODO | ok | ok | TODO | TODO | TODO | ok | + um | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + unicore32 | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | +---------------------------------------------------------------------------------- + + gcov-profile-all:---------------. + THP:--------. | + irq-time-acct:-. | | + | | | +---------------------------------------- + alpha | TODO | TODO | TODO | + arc | TODO | .. | TODO | + arm | ok | ok | ok | + arm64 | TODO | ok | ok | + avr32 | TODO | .. | TODO | + blackfin | TODO | .. | TODO | + c6x | TODO | .. | TODO | + cris | TODO | .. | TODO | + frv | TODO | .. | TODO | + hexagon | TODO | .. | TODO | + ia64 | TODO | TODO | TODO | + m32r | TODO | .. | TODO | + m68k | TODO | .. | TODO | + metag | TODO | .. | TODO | + microblaze | TODO | .. | ok | + mips | ok | ok | TODO | + mn10300 | TODO | .. | TODO | + nios2 | TODO | .. | TODO | + openrisc | TODO | .. | TODO | + parisc | TODO | TODO | TODO | + powerpc | TODO | ok | ok | + s390 | TODO | ok | ok | + score | TODO | .. | TODO | + sh | TODO | .. | ok | + sparc | TODO | ok | TODO | + tile | TODO | TODO | TODO | + um | TODO | .. | TODO | + unicore32 | TODO | .. | TODO | + x86 | ok | ok | ok | + xtensa | ok | .. | TODO | +---------------------------------------- ^ permalink raw reply related [flat|nested] 46+ messages in thread
[parent not found: <20150513094622.GC11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* [RFC PATCH v5] Documentation/arch: Add Documentation/arch-TODO [not found] ` <20150513094622.GC11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-05-13 9:47 ` Ingo Molnar 2015-05-13 13:18 ` Borislav Petkov [not found] ` <20150513094756.GD11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 2 replies; 46+ messages in thread From: Ingo Molnar @ 2015-05-13 9:47 UTC (permalink / raw) To: Andrew Morton, Jonathan Corbet Cc: Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA, Borislav Petkov (fixed the subject.) So this is the final version for now: - add a fourth table - fix errors in earlier tables, in particular I missed some PowerPC Kconfigs - introduce the '..' denotion (in the final table) to show features that cannot be supported by an architecture due to hardware dependencies: gcov-profile-all:---------------. THP:--------. | irq-time-acct:-. | | | | | ---------------------------------------- alpha | TODO | TODO | TODO | arc | TODO | .. | TODO | arm | ok | ok | ok | arm64 | TODO | ok | ok | avr32 | TODO | .. | TODO | blackfin | TODO | .. | TODO | c6x | TODO | .. | TODO | so in the 'THP' column, if an architecture could in theory support THP, it's listed as 'TODO', if it cannot, it's listed as '..'. Please let me know about errors in these tables, and I can also add more features/facilities as well if I missed any. Thanks, Ingo ==========================> >From a44b9e91788a2628e1223d143024de4572a924c3 Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Date: Wed, 13 May 2015 10:30:11 +0200 Subject: [PATCH] Documentation/arch: Add Documentation/arch-TODO Add a TODO list for missing/incomplete architecture support for generic kernel features. Signed-off-by: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> --- Documentation/arch-TODO | 169 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) diff --git a/Documentation/arch-TODO b/Documentation/arch-TODO new file mode 100644 index 000000000000..0880914e1eaf --- /dev/null +++ b/Documentation/arch-TODO @@ -0,0 +1,169 @@ + +For generic kernel features that need architecture support, this is +the feature support matrix, for all upstream Linux architectures: + + ELF-ASLR:---------------------------------------------------------. + clockevents:--------------------------------------------------. | + modern-timekeeping:-------------------------------------------. | | + kgdb:------------------------------------. | | | + context-tracking:-----------------------------. | | | | + seccomp-filter:----------------------. | | | | | + jump-labels:---------------. | | | | | | + stackprotector:--------. | | | | | | | + lockdep:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + arc | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + arm | ok | ok | ok | ok | ok | ok | TODO | ok | ok | + arm64 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + avr32 | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + blackfin | ok | TODO | TODO | TODO | TODO | ok | TODO | ok | TODO | + c6x | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + hexagon | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + ia64 | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + metag | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + microblaze | ok | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + mips | ok | ok | ok | ok | ok | ok | ok | ok | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + nios2 | TODO | TODO | TODO | TODO | TODO | ok | ok | ok | TODO | + openrisc | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + parisc | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | TODO | + powerpc | ok | TODO | ok | TODO | ok | ok | ok | ok | ok | + s390 | ok | TODO | ok | ok | TODO | TODO | ok | ok | ok | + score | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + sh | ok | ok | TODO | TODO | TODO | ok | ok | ok | TODO | + sparc | ok | TODO | ok | TODO | ok | ok | ok | ok | TODO | + tile | ok | TODO | TODO | TODO | ok | ok | ok | ok | TODO | + um | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + unicore32 | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | TODO | +---------------------------------------------------------------------------------- + + tracehook:---------------------------------------------------------. + ioremap_prot():--------------------------------------------------. | + user-ret-profiler:-------------------------------------------. | | + kretprobes:------------------------------------. | | | + uprobes:-----------------------------. | | | | + kprobes-on-ftrace:----------------------. | | | | | + optprobes:---------------. | | | | | | + kprobes:--------. | | | | | | | +arch-tick-broadcast:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + arc | TODO | ok | TODO | TODO | TODO | ok | TODO | ok | ok | + arm | ok | ok | ok | TODO | ok | ok | TODO | TODO | ok | + arm64 | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + avr32 | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + blackfin | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + c6x | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + hexagon | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + ia64 | TODO | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + metag | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + microblaze | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + mips | ok | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + nios2 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + openrisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + parisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + powerpc | ok | ok | TODO | TODO | ok | ok | TODO | ok | ok | + s390 | TODO | ok | TODO | TODO | ok | ok | TODO | TODO | ok | + score | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + sh | TODO | ok | TODO | TODO | TODO | ok | TODO | ok | ok | + sparc | TODO | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | + tile | TODO | ok | ok | TODO | TODO | ok | ok | ok | ok | + um | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + unicore32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + x86 | TODO | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | +---------------------------------------------------------------------------------- + + virt-cpuacct:---------------------------------------------------------. + cmpxchg-local:--------------------------------------------------. | + perf-stackdump:-------------------------------------------. | | + perf-regs:------------------------------------. | | | + dma-api-debug:-----------------------------. | | | | + kprobes-event:----------------------. | | | | | + dma-contiguous:---------------. | | | | | | + dma_*map*_attrs():--------. | | | | | | | +generic-idle-thread:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | ok | ok | TODO | TODO | TODO | TODO | TODO | TODO | ok | + arc | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + arm | ok | ok | ok | ok | ok | ok | ok | TODO | ok | + arm64 | ok | ok | ok | TODO | ok | ok | ok | TODO | ok | + avr32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + blackfin | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + c6x | TODO | TODO | TODO | TODO | ok | TODO | TODO | TODO | TODO | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + hexagon | ok | ok | TODO | ok | TODO | TODO | TODO | TODO | TODO | + ia64 | ok | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + metag | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + microblaze | TODO | ok | TODO | TODO | ok | TODO | TODO | TODO | TODO | + mips | ok | ok | ok | TODO | ok | TODO | TODO | TODO | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + nios2 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + openrisc | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + parisc | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + powerpc | ok | ok | TODO | ok | ok | TODO | TODO | TODO | ok | + s390 | ok | ok | TODO | ok | ok | TODO | TODO | ok | ok | + score | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + sh | ok | ok | TODO | ok | ok | TODO | TODO | TODO | TODO | + sparc | ok | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | + tile | TODO | ok | TODO | ok | ok | TODO | TODO | TODO | ok | + um | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + unicore32 | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | +---------------------------------------------------------------------------------- + + gcov-profile-all:---------------. + THP:--------. | + irq-time-acct:-. | | + | | | +---------------------------------------- + alpha | TODO | TODO | TODO | + arc | TODO | .. | TODO | + arm | ok | ok | ok | + arm64 | TODO | ok | ok | + avr32 | TODO | .. | TODO | + blackfin | TODO | .. | TODO | + c6x | TODO | .. | TODO | + cris | TODO | .. | TODO | + frv | TODO | .. | TODO | + hexagon | TODO | .. | TODO | + ia64 | TODO | TODO | TODO | + m32r | TODO | .. | TODO | + m68k | TODO | .. | TODO | + metag | TODO | .. | TODO | + microblaze | TODO | .. | ok | + mips | ok | ok | TODO | + mn10300 | TODO | .. | TODO | + nios2 | TODO | .. | TODO | + openrisc | TODO | .. | TODO | + parisc | TODO | TODO | TODO | + powerpc | TODO | ok | ok | + s390 | TODO | ok | ok | + score | TODO | .. | TODO | + sh | TODO | .. | ok | + sparc | TODO | ok | TODO | + tile | TODO | TODO | TODO | + um | TODO | .. | TODO | + unicore32 | TODO | .. | TODO | + x86 | ok | ok | ok | + xtensa | ok | .. | TODO | +---------------------------------------- ^ permalink raw reply related [flat|nested] 46+ messages in thread
* Re: [RFC PATCH v5] Documentation/arch: Add Documentation/arch-TODO 2015-05-13 9:47 ` [RFC PATCH v5] " Ingo Molnar @ 2015-05-13 13:18 ` Borislav Petkov [not found] ` <20150513131835.GJ1517-fF5Pk5pvG8Y@public.gmane.org> [not found] ` <20150513094756.GD11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 1 sibling, 1 reply; 46+ messages in thread From: Borislav Petkov @ 2015-05-13 13:18 UTC (permalink / raw) To: Ingo Molnar Cc: Andrew Morton, Jonathan Corbet, Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch On Wed, May 13, 2015 at 11:47:56AM +0200, Ingo Molnar wrote: > - introduce the '..' denotion (in the final table) to show features > that cannot be supported by an architecture due to hardware > dependencies: > > gcov-profile-all:---------------. > THP:--------. | > irq-time-acct:-. | | > | | | > ---------------------------------------- > alpha | TODO | TODO | TODO | > arc | TODO | .. | TODO | > arm | ok | ok | ok | > arm64 | TODO | ok | ok | > avr32 | TODO | .. | TODO | > blackfin | TODO | .. | TODO | > c6x | TODO | .. | TODO | > > so in the 'THP' column, if an architecture could in theory support > THP, it's listed as 'TODO', if it cannot, it's listed as '..'. Shouldn't exactly that explanation be in the text file itself too? Also, how about s/TODO//g for less clutter: +---------------------------------------------------------------------------------- + alpha | | | | | | | ok | ok | | + arc | ok | | | | | ok | ok | ok | | + arm | ok | ok | ok | ok | ok | ok | | ok | ok | ... -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. -- ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150513131835.GJ1517-fF5Pk5pvG8Y@public.gmane.org>]
* [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt [not found] ` <20150513131835.GJ1517-fF5Pk5pvG8Y@public.gmane.org> @ 2015-05-13 13:48 ` Ingo Molnar 2015-05-13 16:27 ` Josh Triplett 2015-05-14 3:55 ` Paul Mackerras 0 siblings, 2 replies; 46+ messages in thread From: Ingo Molnar @ 2015-05-13 13:48 UTC (permalink / raw) To: Borislav Petkov Cc: Andrew Morton, Jonathan Corbet, Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA * Borislav Petkov <bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org> wrote: > On Wed, May 13, 2015 at 11:47:56AM +0200, Ingo Molnar wrote: > > - introduce the '..' denotion (in the final table) to show features > > that cannot be supported by an architecture due to hardware > > dependencies: > > > > gcov-profile-all:---------------. > > THP:--------. | > > irq-time-acct:-. | | > > | | | > > ---------------------------------------- > > alpha | TODO | TODO | TODO | > > arc | TODO | .. | TODO | > > arm | ok | ok | ok | > > arm64 | TODO | ok | ok | > > avr32 | TODO | .. | TODO | > > blackfin | TODO | .. | TODO | > > c6x | TODO | .. | TODO | > > > > so in the 'THP' column, if an architecture could in theory support > > THP, it's listed as 'TODO', if it cannot, it's listed as '..'. > > Shouldn't exactly that explanation be in the text file itself too? Yeah, indeed, added it. > Also, how about s/TODO//g for less clutter: No, I'd like there to be a very visible 'TODO' item for missing features. The 'clutter' shows how badly our generic kernel features are propagating :-/ We hope to reduce this clutter in the future. Updated patch attached - I've added a few more features to the last table, and restructured the explanations, now every feature description also lists the Kconfig variable that it's tracking, e.g.: irq time acct: HAVE_IRQ_TIME_ACCOUNTING THP: HAVE_ARCH_TRANSPARENT_HUGEPAGE && 64BIT gcov profile all: ARCH_HAS_GCOV_PROFILE_ALL rwsem optimized: Optimized asm/rwsem.h queued spinlocks: ARCH_USE_QUEUED_SPINLOCKS queued rwlocks: ARCH_USE_QUEUED_RWLOCKS numa balancing: ARCH_SUPPORTS_NUMA_BALANCING && 64BIT && NUMA Thanks, Ingo =========================================> >From 93f6bd67b4348bf4bf27cbac8ffa9f1def4fa6aa Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Date: Wed, 13 May 2015 10:30:11 +0200 Subject: [PATCH] Documentation/arch: Add Documentation/arch-features.txt Add a support matrix for various generic kernel features that need architecture support. Signed-off-by: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> --- Documentation/arch-features.txt | 222 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 222 insertions(+) diff --git a/Documentation/arch-features.txt b/Documentation/arch-features.txt new file mode 100644 index 000000000000..4f6430bc552b --- /dev/null +++ b/Documentation/arch-features.txt @@ -0,0 +1,222 @@ + +For generic kernel features that need architecture support, this is +the feature support matrix, for all upstream Linux architectures. + +Meaning of entries in the tables: + + ' ok ': feature supported by the architecture + 'TODO': feature not yet supported by the architecture + ' .. ': feature cannot be supported by the hardware + + + + lockdep: LOCKDEP_SUPPORT + stackprotector: HAVE_CC_STACKPROTECTOR + jump labels: HAVE_ARCH_JUMP_LABEL + seccomp filter: HAVE_ARCH_SECCOMP_FILTER + context tracking: HAVE_CONTEXT_TRACKING + kgdb: HAVE_ARCH_KGDB + modern timekeeping: !ARCH_USES_GETTIMEOFFSET + clockevents: GENERIC_CLOCKEVENTS + ELF ASLR: ARCH_HAS_ELF_RANDOMIZE + + lockdep:---------------------------------------------------------. + stackprotector:--------------------------------------------------. | + jump labels:-------------------------------------------. | | + seccomp filter:------------------------------------. | | | + context tracking:-----------------------------. | | | | + kgdb:----------------------. | | | | | + modern timekeeping:---------------. | | | | | | + clockevents:--------. | | | | | | | + ELF ASLR:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | TODO | + arc | TODO | ok | ok | ok | TODO | TODO | TODO | TODO | ok | + arm | ok | ok | TODO | ok | ok | ok | ok | ok | ok | + arm64 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + avr32 | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | + blackfin | TODO | ok | TODO | ok | TODO | TODO | TODO | TODO | ok | + c6x | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | TODO | + cris | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + frv | TODO | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | + hexagon | TODO | ok | ok | ok | TODO | TODO | TODO | TODO | ok | + ia64 | TODO | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + metag | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | + microblaze | TODO | ok | ok | ok | TODO | TODO | TODO | TODO | ok | + mips | ok | ok | ok | ok | ok | ok | ok | ok | ok | + mn10300 | TODO | ok | ok | ok | TODO | TODO | TODO | TODO | TODO | + nios2 | TODO | ok | ok | ok | TODO | TODO | TODO | TODO | TODO | + openrisc | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | TODO | + parisc | TODO | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | + powerpc | ok | ok | ok | ok | ok | TODO | ok | TODO | ok | + s390 | ok | ok | ok | TODO | TODO | ok | ok | TODO | ok | + score | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | + sh | TODO | ok | ok | ok | TODO | TODO | TODO | ok | ok | + sparc | TODO | ok | ok | ok | ok | TODO | ok | TODO | ok | + tile | TODO | ok | ok | ok | ok | TODO | TODO | TODO | ok | + um | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | + unicore32 | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | +---------------------------------------------------------------------------------- + + +arch tick broadcast: ARCH_HAS_TICK_BROADCAST + kprobes: HAVE_KPROBES + optprobes: HAVE_OPTPROBES + kprobes on ftrace: HAVE_KPROBES_ON_FTRACE + uprobes: ARCH_SUPPORTS_UPROBES + kretprobes: HAVE_KRETPROBES + user ret profiler: HAVE_USER_RETURN_NOTIFIER + ioremap_prot(): HAVE_IOREMAP_PROT + tracehook: HAVE_ARCH_TRACEHOOK + +arch tick broadcast:---------------------------------------------------------. + kprobes:--------------------------------------------------. | + optprobes:-------------------------------------------. | | + kprobes on ftrace:------------------------------------. | | | + uprobes:-----------------------------. | | | | + kretprobes:----------------------. | | | | | + user ret profiler:---------------. | | | | | | + ioremap_prot():--------. | | | | | | | + tracehook:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + arc | ok | ok | TODO | ok | TODO | TODO | TODO | ok | TODO | + arm | ok | TODO | TODO | ok | ok | TODO | ok | ok | ok | + arm64 | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + avr32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + blackfin | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + c6x | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + frv | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + hexagon | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + ia64 | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | TODO | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + metag | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + microblaze | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + mips | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | ok | + mn10300 | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + nios2 | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + openrisc | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + parisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + powerpc | ok | ok | TODO | ok | ok | TODO | TODO | ok | ok | + s390 | ok | TODO | TODO | ok | ok | TODO | TODO | ok | TODO | + score | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + sh | ok | ok | TODO | ok | TODO | TODO | TODO | ok | TODO | + sparc | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | TODO | + tile | ok | ok | ok | ok | TODO | TODO | ok | ok | TODO | + um | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + unicore32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + x86 | ok | ok | ok | ok | ok | ok | ok | ok | TODO | + xtensa | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | +---------------------------------------------------------------------------------- + + +generic idle thread: GENERIC_SMP_IDLE_THREAD + dma_*map*_attrs(): HAVE_DMA_ATTRS + dma contiguous: HAVE_DMA_CONTIGUOUS + kprobes event: HAVE_REGS_AND_STACK_ACCESS_API + dma api debug: HAVE_DMA_API_DEBUG + perf regs: HAVE_PERF_REGS + perf stackdump: HAVE_PERF_USER_STACK_DUMP + cmpxchg local: HAVE_CMPXCHG_LOCAL + virt cpuacct: HAVE_VIRT_CPU_ACCOUNTING || 64BIT + +generic idle thread:---------------------------------------------------------. + dma_*map*_attrs():--------------------------------------------------. | + dma contiguous:-------------------------------------------. | | + kprobes event:------------------------------------. | | | + dma api debug:-----------------------------. | | | | + perf regs:----------------------. | | | | | + perf stackdump:---------------. | | | | | | + cmpxchg local:--------. | | | | | | | + virt cpuacct:-. | | | | | | | | + | | | | | | | | | +---------------------------------------------------------------------------------- + alpha | ok | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | + arc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + arm | ok | TODO | ok | ok | ok | ok | ok | ok | ok | + arm64 | ok | TODO | ok | ok | ok | TODO | ok | ok | ok | + avr32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + blackfin | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + c6x | TODO | TODO | TODO | TODO | ok | TODO | TODO | TODO | TODO | + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + frv | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + hexagon | TODO | TODO | TODO | TODO | TODO | ok | TODO | ok | ok | + ia64 | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | ok | + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + metag | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + microblaze | TODO | TODO | TODO | TODO | ok | TODO | TODO | ok | TODO | + mips | ok | TODO | TODO | TODO | ok | TODO | ok | ok | ok | + mn10300 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + nios2 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + openrisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + parisc | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | + powerpc | ok | TODO | TODO | TODO | ok | ok | TODO | ok | ok | + s390 | ok | ok | TODO | TODO | ok | ok | TODO | ok | ok | + score | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + sh | TODO | TODO | TODO | TODO | ok | ok | TODO | ok | ok | + sparc | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | ok | + tile | ok | TODO | TODO | TODO | ok | ok | TODO | ok | TODO | + um | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + unicore32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | + xtensa | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | +---------------------------------------------------------------------------------- + + + irq time acct: HAVE_IRQ_TIME_ACCOUNTING + THP: HAVE_ARCH_TRANSPARENT_HUGEPAGE && 64BIT + gcov profile all: ARCH_HAS_GCOV_PROFILE_ALL + rwsem optimized: Optimized asm/rwsem.h + queued spinlocks: ARCH_USE_QUEUED_SPINLOCKS + queued rwlocks: ARCH_USE_QUEUED_RWLOCKS + numa balancing: ARCH_SUPPORTS_NUMA_BALANCING && 64BIT && NUMA + + irq time acct:-------------------------------------------. + THP:------------------------------------. | + gcov profile all:-----------------------------. | | + rwsem optimized:----------------------. | | | + queued spinlocks:---------------. | | | | + queued rwlocks:--------. | | | | | + numa balancing:-. | | | | | | + | | | | | | | +-------------------------------------------------------------------- + alpha | TODO | TODO | TODO | ok | TODO | TODO | TODO | + arc | .. | TODO | TODO | TODO | TODO | .. | TODO | + arm | .. | TODO | TODO | TODO | ok | ok | ok | + arm64 | .. | TODO | TODO | TODO | ok | ok | TODO | + avr32 | .. | TODO | TODO | TODO | TODO | .. | TODO | + blackfin | .. | TODO | TODO | TODO | TODO | .. | TODO | + c6x | .. | TODO | TODO | TODO | TODO | .. | TODO | + cris | .. | TODO | TODO | TODO | TODO | .. | TODO | + frv | .. | TODO | TODO | TODO | TODO | .. | TODO | + hexagon | .. | TODO | TODO | TODO | TODO | .. | TODO | + ia64 | TODO | TODO | TODO | ok | TODO | TODO | TODO | + m32r | .. | TODO | TODO | TODO | TODO | .. | TODO | + m68k | .. | TODO | TODO | TODO | TODO | .. | TODO | + metag | .. | TODO | TODO | TODO | TODO | .. | TODO | + microblaze | .. | TODO | TODO | TODO | ok | .. | TODO | + mips | TODO | TODO | TODO | TODO | TODO | ok | ok | + mn10300 | .. | TODO | TODO | TODO | TODO | .. | TODO | + nios2 | .. | TODO | TODO | TODO | TODO | .. | TODO | + openrisc | .. | TODO | TODO | TODO | TODO | .. | TODO | + parisc | .. | TODO | TODO | TODO | TODO | TODO | TODO | + powerpc | ok | TODO | TODO | TODO | ok | ok | TODO | + s390 | .. | TODO | TODO | ok | ok | ok | TODO | + score | .. | TODO | TODO | TODO | TODO | .. | TODO | + sh | .. | TODO | TODO | ok | ok | .. | TODO | + sparc | TODO | TODO | TODO | ok | TODO | ok | TODO | + tile | TODO | TODO | TODO | TODO | TODO | TODO | TODO | + um | .. | TODO | TODO | TODO | TODO | .. | TODO | + unicore32 | .. | TODO | TODO | TODO | TODO | .. | TODO | + x86 | ok | ok | ok | ok | ok | ok | ok | + xtensa | .. | TODO | TODO | ok | TODO | .. | ok | +-------------------------------------------------------------------- ^ permalink raw reply related [flat|nested] 46+ messages in thread
* Re: [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt 2015-05-13 13:48 ` [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt Ingo Molnar @ 2015-05-13 16:27 ` Josh Triplett 2015-05-13 16:53 ` Josh Triplett ` (2 more replies) 2015-05-14 3:55 ` Paul Mackerras 1 sibling, 3 replies; 46+ messages in thread From: Josh Triplett @ 2015-05-13 16:27 UTC (permalink / raw) To: Ingo Molnar Cc: Borislav Petkov, Andrew Morton, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch On Wed, May 13, 2015 at 03:48:42PM +0200, Ingo Molnar wrote: > From 93f6bd67b4348bf4bf27cbac8ffa9f1def4fa6aa Mon Sep 17 00:00:00 2001 > From: Ingo Molnar <mingo@kernel.org> > Date: Wed, 13 May 2015 10:30:11 +0200 > Subject: [PATCH] Documentation/arch: Add Documentation/arch-features.txt > > Add a support matrix for various generic kernel features that need > architecture support. > > Signed-off-by: Ingo Molnar <mingo@kernel.org> Could you add a column for the bpf JIT? Should this file track syscalls not wired up on architectures? How likely is this to get out of date? Are people going to remember to patch this when they add a feature to their architecture? If they found out they had work to do by reading this file, which is the goal, then they'll likely remember to edit the file; however, if they find the feature and fix it without knowing about the file, will someone notice? Is there any way we can *generate* this file from Kconfig? Can we extract the necessary "this is possible to enable" or "this arch selects this symbol" information from Kconfig, and together with the list of symbols for features needing architecture support, generate the table? If we can't generate this, then the ASCII-art style and right-aligned feature names seems *really* likely to produce spurious conflicts, especially when adding a feature to the list. Even though it would produce a much longer file, would you consider dropping the tables and just having a section per feature? That also avoids the need to abbreviate as much. For instance: Transparent huge pages HAVE_ARCH_TRANSPARENT_HUGEPAGE && 64BIT alpha TODO arc .. arm ok arm64 ok avr32 .. blackfin .. c6x .. cris .. frv .. hexagon .. ia64 TODO m32r .. m68k .. metag .. microblaze .. mips ok mn10300 .. nios2 .. openrisc .. parisc TODO powerpc ok s390 ok score .. sh .. sparc ok tile TODO um .. unicore32 .. x86 ok xtensa .. Or alternatively: Transparent huge pages HAVE_ARCH_TRANSPARENT_HUGEPAGE && 64BIT TODO: alpha ia64 parisc tile Done: arm arm64 mips powerpc s390 sparc x86 Not possible: arc avr32 blackfin c6x cris frv hexagon m32r m68k metag microblaze mn10300 nios2 openrisc score sh um unicore32 xtensa After all, the point of this document isn't to look at, it's to use as a TODO list and actively edit. So anything that makes it prettier but more painful to edit seems like a bug. > Documentation/arch-features.txt | 222 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 222 insertions(+) > > diff --git a/Documentation/arch-features.txt b/Documentation/arch-features.txt > new file mode 100644 > index 000000000000..4f6430bc552b > --- /dev/null > +++ b/Documentation/arch-features.txt > @@ -0,0 +1,222 @@ > + > +For generic kernel features that need architecture support, this is > +the feature support matrix, for all upstream Linux architectures. > + > +Meaning of entries in the tables: > + > + ' ok ': feature supported by the architecture > + 'TODO': feature not yet supported by the architecture > + ' .. ': feature cannot be supported by the hardware > + > + > + > + lockdep: LOCKDEP_SUPPORT > + stackprotector: HAVE_CC_STACKPROTECTOR > + jump labels: HAVE_ARCH_JUMP_LABEL > + seccomp filter: HAVE_ARCH_SECCOMP_FILTER > + context tracking: HAVE_CONTEXT_TRACKING > + kgdb: HAVE_ARCH_KGDB > + modern timekeeping: !ARCH_USES_GETTIMEOFFSET > + clockevents: GENERIC_CLOCKEVENTS > + ELF ASLR: ARCH_HAS_ELF_RANDOMIZE > + > + lockdep:---------------------------------------------------------. > + stackprotector:--------------------------------------------------. | > + jump labels:-------------------------------------------. | | > + seccomp filter:------------------------------------. | | | > + context tracking:-----------------------------. | | | | > + kgdb:----------------------. | | | | | > + modern timekeeping:---------------. | | | | | | > + clockevents:--------. | | | | | | | > + ELF ASLR:-. | | | | | | | | > + | | | | | | | | | > +---------------------------------------------------------------------------------- > + alpha | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | TODO | > + arc | TODO | ok | ok | ok | TODO | TODO | TODO | TODO | ok | > + arm | ok | ok | TODO | ok | ok | ok | ok | ok | ok | > + arm64 | ok | ok | ok | ok | ok | ok | ok | ok | ok | > + avr32 | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | > + blackfin | TODO | ok | TODO | ok | TODO | TODO | TODO | TODO | ok | > + c6x | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | TODO | > + cris | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + frv | TODO | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | > + hexagon | TODO | ok | ok | ok | TODO | TODO | TODO | TODO | ok | > + ia64 | TODO | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | > + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + m68k | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + metag | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | > + microblaze | TODO | ok | ok | ok | TODO | TODO | TODO | TODO | ok | > + mips | ok | ok | ok | ok | ok | ok | ok | ok | ok | > + mn10300 | TODO | ok | ok | ok | TODO | TODO | TODO | TODO | TODO | > + nios2 | TODO | ok | ok | ok | TODO | TODO | TODO | TODO | TODO | > + openrisc | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | TODO | > + parisc | TODO | TODO | ok | TODO | TODO | TODO | TODO | TODO | TODO | > + powerpc | ok | ok | ok | ok | ok | TODO | ok | TODO | ok | > + s390 | ok | ok | ok | TODO | TODO | ok | ok | TODO | ok | > + score | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | > + sh | TODO | ok | ok | ok | TODO | TODO | TODO | ok | ok | > + sparc | TODO | ok | ok | ok | ok | TODO | ok | TODO | ok | > + tile | TODO | ok | ok | ok | ok | TODO | TODO | TODO | ok | > + um | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | > + unicore32 | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | > + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | > + xtensa | TODO | ok | ok | TODO | TODO | TODO | TODO | TODO | ok | > +---------------------------------------------------------------------------------- > + > + > +arch tick broadcast: ARCH_HAS_TICK_BROADCAST > + kprobes: HAVE_KPROBES > + optprobes: HAVE_OPTPROBES > + kprobes on ftrace: HAVE_KPROBES_ON_FTRACE > + uprobes: ARCH_SUPPORTS_UPROBES > + kretprobes: HAVE_KRETPROBES > + user ret profiler: HAVE_USER_RETURN_NOTIFIER > + ioremap_prot(): HAVE_IOREMAP_PROT > + tracehook: HAVE_ARCH_TRACEHOOK > + > +arch tick broadcast:---------------------------------------------------------. > + kprobes:--------------------------------------------------. | > + optprobes:-------------------------------------------. | | > + kprobes on ftrace:------------------------------------. | | | > + uprobes:-----------------------------. | | | | > + kretprobes:----------------------. | | | | | > + user ret profiler:---------------. | | | | | | > + ioremap_prot():--------. | | | | | | | > + tracehook:-. | | | | | | | | > + | | | | | | | | | > +---------------------------------------------------------------------------------- > + alpha | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + arc | ok | ok | TODO | ok | TODO | TODO | TODO | ok | TODO | > + arm | ok | TODO | TODO | ok | ok | TODO | ok | ok | ok | > + arm64 | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | > + avr32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | > + blackfin | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + c6x | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + frv | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + hexagon | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + ia64 | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | TODO | > + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + metag | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + microblaze | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + mips | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | ok | > + mn10300 | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + nios2 | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + openrisc | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + parisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + powerpc | ok | ok | TODO | ok | ok | TODO | TODO | ok | ok | > + s390 | ok | TODO | TODO | ok | ok | TODO | TODO | ok | TODO | > + score | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + sh | ok | ok | TODO | ok | TODO | TODO | TODO | ok | TODO | > + sparc | ok | TODO | TODO | ok | TODO | TODO | TODO | ok | TODO | > + tile | ok | ok | ok | ok | TODO | TODO | ok | ok | TODO | > + um | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + unicore32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + x86 | ok | ok | ok | ok | ok | ok | ok | ok | TODO | > + xtensa | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > +---------------------------------------------------------------------------------- > + > + > +generic idle thread: GENERIC_SMP_IDLE_THREAD > + dma_*map*_attrs(): HAVE_DMA_ATTRS > + dma contiguous: HAVE_DMA_CONTIGUOUS > + kprobes event: HAVE_REGS_AND_STACK_ACCESS_API > + dma api debug: HAVE_DMA_API_DEBUG > + perf regs: HAVE_PERF_REGS > + perf stackdump: HAVE_PERF_USER_STACK_DUMP > + cmpxchg local: HAVE_CMPXCHG_LOCAL > + virt cpuacct: HAVE_VIRT_CPU_ACCOUNTING || 64BIT > + > +generic idle thread:---------------------------------------------------------. > + dma_*map*_attrs():--------------------------------------------------. | > + dma contiguous:-------------------------------------------. | | > + kprobes event:------------------------------------. | | | > + dma api debug:-----------------------------. | | | | > + perf regs:----------------------. | | | | | > + perf stackdump:---------------. | | | | | | > + cmpxchg local:--------. | | | | | | | > + virt cpuacct:-. | | | | | | | | > + | | | | | | | | | > +---------------------------------------------------------------------------------- > + alpha | ok | TODO | TODO | TODO | TODO | TODO | TODO | ok | ok | > + arc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | > + arm | ok | TODO | ok | ok | ok | ok | ok | ok | ok | > + arm64 | ok | TODO | ok | ok | ok | TODO | ok | ok | ok | > + avr32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + blackfin | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | > + c6x | TODO | TODO | TODO | TODO | ok | TODO | TODO | TODO | TODO | > + cris | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + frv | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + hexagon | TODO | TODO | TODO | TODO | TODO | ok | TODO | ok | ok | > + ia64 | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | ok | > + m32r | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + m68k | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + metag | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | > + microblaze | TODO | TODO | TODO | TODO | ok | TODO | TODO | ok | TODO | > + mips | ok | TODO | TODO | TODO | ok | TODO | ok | ok | ok | > + mn10300 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + nios2 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + openrisc | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | > + parisc | ok | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | > + powerpc | ok | TODO | TODO | TODO | ok | ok | TODO | ok | ok | > + s390 | ok | ok | TODO | TODO | ok | ok | TODO | ok | ok | > + score | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + sh | TODO | TODO | TODO | TODO | ok | ok | TODO | ok | ok | > + sparc | ok | TODO | TODO | TODO | ok | TODO | TODO | ok | ok | > + tile | ok | TODO | TODO | TODO | ok | ok | TODO | ok | TODO | > + um | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + unicore32 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | TODO | > + x86 | ok | ok | ok | ok | ok | ok | ok | ok | ok | > + xtensa | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | > +---------------------------------------------------------------------------------- > + > + > + irq time acct: HAVE_IRQ_TIME_ACCOUNTING > + THP: HAVE_ARCH_TRANSPARENT_HUGEPAGE && 64BIT > + gcov profile all: ARCH_HAS_GCOV_PROFILE_ALL > + rwsem optimized: Optimized asm/rwsem.h > + queued spinlocks: ARCH_USE_QUEUED_SPINLOCKS > + queued rwlocks: ARCH_USE_QUEUED_RWLOCKS > + numa balancing: ARCH_SUPPORTS_NUMA_BALANCING && 64BIT && NUMA > + > + irq time acct:-------------------------------------------. > + THP:------------------------------------. | > + gcov profile all:-----------------------------. | | > + rwsem optimized:----------------------. | | | > + queued spinlocks:---------------. | | | | > + queued rwlocks:--------. | | | | | > + numa balancing:-. | | | | | | > + | | | | | | | > +-------------------------------------------------------------------- > + alpha | TODO | TODO | TODO | ok | TODO | TODO | TODO | > + arc | .. | TODO | TODO | TODO | TODO | .. | TODO | > + arm | .. | TODO | TODO | TODO | ok | ok | ok | > + arm64 | .. | TODO | TODO | TODO | ok | ok | TODO | > + avr32 | .. | TODO | TODO | TODO | TODO | .. | TODO | > + blackfin | .. | TODO | TODO | TODO | TODO | .. | TODO | > + c6x | .. | TODO | TODO | TODO | TODO | .. | TODO | > + cris | .. | TODO | TODO | TODO | TODO | .. | TODO | > + frv | .. | TODO | TODO | TODO | TODO | .. | TODO | > + hexagon | .. | TODO | TODO | TODO | TODO | .. | TODO | > + ia64 | TODO | TODO | TODO | ok | TODO | TODO | TODO | > + m32r | .. | TODO | TODO | TODO | TODO | .. | TODO | > + m68k | .. | TODO | TODO | TODO | TODO | .. | TODO | > + metag | .. | TODO | TODO | TODO | TODO | .. | TODO | > + microblaze | .. | TODO | TODO | TODO | ok | .. | TODO | > + mips | TODO | TODO | TODO | TODO | TODO | ok | ok | > + mn10300 | .. | TODO | TODO | TODO | TODO | .. | TODO | > + nios2 | .. | TODO | TODO | TODO | TODO | .. | TODO | > + openrisc | .. | TODO | TODO | TODO | TODO | .. | TODO | > + parisc | .. | TODO | TODO | TODO | TODO | TODO | TODO | > + powerpc | ok | TODO | TODO | TODO | ok | ok | TODO | > + s390 | .. | TODO | TODO | ok | ok | ok | TODO | > + score | .. | TODO | TODO | TODO | TODO | .. | TODO | > + sh | .. | TODO | TODO | ok | ok | .. | TODO | > + sparc | TODO | TODO | TODO | ok | TODO | ok | TODO | > + tile | TODO | TODO | TODO | TODO | TODO | TODO | TODO | > + um | .. | TODO | TODO | TODO | TODO | .. | TODO | > + unicore32 | .. | TODO | TODO | TODO | TODO | .. | TODO | > + x86 | ok | ok | ok | ok | ok | ok | ok | > + xtensa | .. | TODO | TODO | ok | TODO | .. | ok | > +-------------------------------------------------------------------- ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt 2015-05-13 16:27 ` Josh Triplett @ 2015-05-13 16:53 ` Josh Triplett 2015-05-14 10:16 ` Ingo Molnar 2015-05-13 22:05 ` Andrew Morton 2015-05-14 7:08 ` [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt Ingo Molnar 2 siblings, 1 reply; 46+ messages in thread From: Josh Triplett @ 2015-05-13 16:53 UTC (permalink / raw) To: Ingo Molnar Cc: Borislav Petkov, Andrew Morton, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA On Wed, May 13, 2015 at 09:27:57AM -0700, Josh Triplett wrote: > How likely is this to get out of date? Are people going to remember to > patch this when they add a feature to their architecture? If > they found out they had work to do by reading this file, which is the > goal, then they'll likely remember to edit the file; however, if they > find the feature and fix it without knowing about the file, will someone > notice? > > Is there any way we can *generate* this file from Kconfig? Can we > extract the necessary "this is possible to enable" or "this arch selects > this symbol" information from Kconfig, and together with the list of > symbols for features needing architecture support, generate the table? Just tried this. Looks like it's pretty trivial for most of these features: just make ARCH=thearch allyesconfig, then look for the config symbol in the result. For instance, after doing "make ARCH=alpha allyesconfig": ~/src/linux$ grep -x 'CONFIG_ARCH_HAS_ELF_RANDOMIZE=y' .config || echo TODO TODO ~/src/linux$ grep -x 'CONFIG_GENERIC_CLOCKEVENTS=y' .config || echo TODO CONFIG_GENERIC_CLOCKEVENTS=y This seems easy to turn into a shell script or Python script, given a list of feature descriptions and corresponding config symbols, as well as a list of architectures. - Josh Triplett ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt 2015-05-13 16:53 ` Josh Triplett @ 2015-05-14 10:16 ` Ingo Molnar [not found] ` <20150514101615.GB27550-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 46+ messages in thread From: Ingo Molnar @ 2015-05-14 10:16 UTC (permalink / raw) To: Josh Triplett Cc: Borislav Petkov, Andrew Morton, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch * Josh Triplett <josh@joshtriplett.org> wrote: > On Wed, May 13, 2015 at 09:27:57AM -0700, Josh Triplett wrote: > > > How likely is this to get out of date? Are people going to > > remember to patch this when they add a feature to their > > architecture? If they found out they had work to do by reading > > this file, which is the goal, then they'll likely remember to edit > > the file; however, if they find the feature and fix it without > > knowing about the file, will someone notice? > > > > Is there any way we can *generate* this file from Kconfig? Can we > > extract the necessary "this is possible to enable" or "this arch > > selects this symbol" information from Kconfig, and together with > > the list of symbols for features needing architecture support, > > generate the table? > > Just tried this. Looks like it's pretty trivial for most of these > features: just make ARCH=thearch allyesconfig, then look for the > config symbol in the result. No, that's not nearly enough to do a correct support matrix, for example due to subarchitectures that aren't included in an allyesconfig. There are also many #define driven features. Thanks, Ingo ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150514101615.GB27550-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt [not found] ` <20150514101615.GB27550-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-05-14 10:31 ` Josh Triplett 0 siblings, 0 replies; 46+ messages in thread From: Josh Triplett @ 2015-05-14 10:31 UTC (permalink / raw) To: Ingo Molnar Cc: Borislav Petkov, Andrew Morton, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA On Thu, May 14, 2015 at 12:16:15PM +0200, Ingo Molnar wrote: > > * Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org> wrote: > > > On Wed, May 13, 2015 at 09:27:57AM -0700, Josh Triplett wrote: > > > > > How likely is this to get out of date? Are people going to > > > remember to patch this when they add a feature to their > > > architecture? If they found out they had work to do by reading > > > this file, which is the goal, then they'll likely remember to edit > > > the file; however, if they find the feature and fix it without > > > knowing about the file, will someone notice? > > > > > > Is there any way we can *generate* this file from Kconfig? Can we > > > extract the necessary "this is possible to enable" or "this arch > > > selects this symbol" information from Kconfig, and together with > > > the list of symbols for features needing architecture support, > > > generate the table? > > > > Just tried this. Looks like it's pretty trivial for most of these > > features: just make ARCH=thearch allyesconfig, then look for the > > config symbol in the result. > > No, that's not nearly enough to do a correct support matrix, for > example due to subarchitectures that aren't included in an > allyesconfig. Still feasible to automate with a bit more scripting. > There are also many #define driven features. It'd be nice to move those over to Kconfig. - Josh Triplett ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt 2015-05-13 16:27 ` Josh Triplett 2015-05-13 16:53 ` Josh Triplett @ 2015-05-13 22:05 ` Andrew Morton [not found] ` <20150513150523.ddd65d7cd51f820b78f0c8e3-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 2015-05-14 7:08 ` [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt Ingo Molnar 2 siblings, 1 reply; 46+ messages in thread From: Andrew Morton @ 2015-05-13 22:05 UTC (permalink / raw) To: Josh Triplett Cc: Ingo Molnar, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA On Wed, 13 May 2015 09:27:57 -0700 Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org> wrote: > If we can't generate this, then the ASCII-art style and right-aligned > feature names seems *really* likely to produce spurious conflicts, > especially when adding a feature to the list. Even though it would > produce a much longer file, would you consider dropping the tables and > just having a section per feature? me2. The patch conflicts are going to be pretty bad. I'd also prefer a format which allows us to add useful notes - it's a bit hostile to say "thou shalt implement X" without providing any info about how to do so. Where do we tell maintainers that there's a handy test app in tools/testing/selftests which they should use? This way, I can bug patch submitters with "hey, you forgot to update Documentation/arch-features.txt" and they will add useful info while it's all still hot in their minds. And there's a ton of stuff which can go in here, much of it not immediately apparent. Just grepping 9 months worth of the stuff I've handled, I'm seeing things like HAVE_ARCH_KASAN __HAVE_ARCH_PMDP_SPLITTING_FLUSH __HAVE_ARCH_PTE_SPECIAL __HAVE_ARCH_GATE_AREA ARCH_HAVE_ELF_ASLR ARCH_HAS_GCOV_PROFILE_ALL CONFIG_ARCH_USE_BUILTIN_BSWAP HAVE_ARCH_HUGE_VMAP ARCH_HAS_SG_CHAIN __HAVE_ARCH_STRNCASECMP ARCH_HAS_ELF_RANDOMIZE CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT CONFIG_ARCH_USES_PG_UNCACHED CONFIG_ARCH_HAS_WALK_MEMORY and things which don't contain ARCH HAVE_GENERIC_RCU_GUP HAVE_RCU_TABLE_FREE HAVE_GENERIC_RCU_GUP CONFIG_HAVE_CLK CONFIG_HAVE_IOREMAP_PROT CONFIG_HAVE_MEMBLOCK_NODE_MAP And then there's the increasingly common arch/include/asm/foo.h: static inline void wibble(...) { ... } #define wibble wibble include/linux/foo.h: #ifndef wibble static inline void wibble(...) { ... } #define wibble #endif which is going to be hard to grep for.... ugh, this thing's going to be enormous. People will go insane reading it, so each section should have a sentence describing what the feature does so maintainers can make quick decisions about whether they should bother. ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150513150523.ddd65d7cd51f820b78f0c8e3-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>]
* Re: [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt [not found] ` <20150513150523.ddd65d7cd51f820b78f0c8e3-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> @ 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 1 sibling, 0 replies; 46+ messages in thread From: Ingo Molnar @ 2015-05-14 10:02 UTC (permalink / raw) To: Andrew Morton Cc: Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA * Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> wrote: > On Wed, 13 May 2015 09:27:57 -0700 Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org> wrote: > > > If we can't generate this, then the ASCII-art style and right-aligned > > feature names seems *really* likely to produce spurious conflicts, > > especially when adding a feature to the list. Even though it would > > produce a much longer file, would you consider dropping the tables and > > just having a section per feature? > > me2. The patch conflicts are going to be pretty bad. > > I'd also prefer a format which allows us to add useful notes - it's > a bit hostile to say "thou shalt implement X" without providing any > info about how to do so. Where do we tell maintainers that there's > a handy test app in tools/testing/selftests which they should use? > > This way, I can bug patch submitters with "hey, you forgot to update > Documentation/arch-features.txt" and they will add useful info while > it's all still hot in their minds. Ok, agreed, I've solved these problems by creating a per feature broken out directory hieararchy, see my next patch submission. > And there's a ton of stuff which can go in here, much of it not > immediately apparent. Yes. > Just grepping 9 months worth of the stuff I've handled, I'm seeing > things like > > HAVE_ARCH_KASAN Ok, added. > __HAVE_ARCH_PMDP_SPLITTING_FLUSH Ok, added. > __HAVE_ARCH_PTE_SPECIAL Ok, added. > __HAVE_ARCH_GATE_AREA So this does not appear to be a feature per se: architectures that don't define __HAVE_ARCH_GATE_AREA fall back to the generic one. Or is it expected for every architecture to provide its own? > ARCH_HAVE_ELF_ASLR Does not seem to be upstream. > ARCH_HAS_GCOV_PROFILE_ALL Yeah, that's already included in v6. > CONFIG_ARCH_USE_BUILTIN_BSWAP So AFAICS this feature is an arch opt-in, on the basis of whether GCC does the right thing or not. We'd need a separate config switch: ARCH_DONT_USE_BUILTIN_BSWAP to make a distinction between architectures that have made an informed decision to not support it, versus architectures that have not bothered so far. > HAVE_ARCH_HUGE_VMAP Ok, added. > ARCH_HAS_SG_CHAIN Ok, added. > __HAVE_ARCH_STRNCASECMP So, no architecture supports this yet- but added. > ARCH_HAS_ELF_RANDOMIZE Agreed and v6 already includes this. > CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID So this isn't really a feature, but a facility that an architecture might have to provide if it has a quirk. Only ia64 has that at the moment. > ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT Not upstream yet it appears. > CONFIG_ARCH_USES_PG_UNCACHED Ok, added. > CONFIG_ARCH_HAS_WALK_MEMORY So this too is a quirk, for PowerPC, which does not maintain the memory layout in the resource tree. > and things which don't contain ARCH > > HAVE_GENERIC_RCU_GUP So this is a generic, RCU based fast-GUP facility - but architectures may implement their own get_user_pages_fast() facilites, such as x86 which does it lock-less. So I'm not sure what to flag here: perhaps architectures that don't offer get_user_pages_fast() at all? > HAVE_RCU_TABLE_FREE So this is related to HAVE_GENERIC_RCU_GUP: architectures that do RCU based GUP will want to use HAVE_RCU_TABLE_FREE. > HAVE_GENERIC_RCU_GUP double ;-) > CONFIG_HAVE_CLK So I think the generic clock framework first needs to be integrated with core timekeeping before we start requiring it from architectures. > CONFIG_HAVE_IOREMAP_PROT Agreed - already in -v6. > CONFIG_HAVE_MEMBLOCK_NODE_MAP Ok, added. > And then there's the increasingly common > > arch/include/asm/foo.h: > > static inline void wibble(...) > { > ... > } > #define wibble wibble > > include/linux/foo.h: > > #ifndef wibble > static inline void wibble(...) > { > ... > } > #define wibble > #endif > > which is going to be hard to grep for.... Hm, yes. If you give me a rough list then I can try to map them out as well. Once we have the initial feature collection done it will be a lot easier going forward: anything missing or inaccurate can be added to or fixed in its own file. > ugh, this thing's going to be enormous. People will go insane > reading it, so each section should have a sentence describing what > the feature does so maintainers can make quick decisions about > whether they should bother. I hope you'll like the structure of -v7 better :-) Thanks, Ingo ^ permalink raw reply [flat|nested] 46+ messages in thread
* [PATCH] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <20150513150523.ddd65d7cd51f820b78f0c8e3-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 2015-05-14 10:02 ` Ingo Molnar @ 2015-05-14 10:15 ` Ingo Molnar [not found] ` <20150514101518.GA27550-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 1 sibling, 1 reply; 46+ messages in thread From: Ingo Molnar @ 2015-05-14 10:15 UTC (permalink / raw) To: Andrew Morton Cc: Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA Add arch support matrices for more than 40 generic kernel features that need per architecture support. Each feature has its own directory under Documentation/features/feature_name/, and the arch-support.txt file shows its current arch porting status. For example, lockdep support is shown the following way: triton:~/tip> cat Documentation/features/lockdep/arch-support.txt # # Feature name: lockdep # Kconfig: LOCKDEP_SUPPORT # description: arch supports the runtime locking correctness debug facility # ----------------------- | arch |status| ----------------------- | alpha: | TODO | | arc: | ok | | arm: | ok | | arm64: | ok | | avr32: | ok | | blackfin: | ok | | c6x: | TODO | | cris: | TODO | | frv: | TODO | | hexagon: | ok | | ia64: | TODO | | m32r: | TODO | | m68k: | TODO | | metag: | ok | | microblaze: | ok | | mips: | ok | | mn10300: | TODO | | nios2: | TODO | | openrisc: | TODO | | parisc: | TODO | | powerpc: | ok | | s390: | ok | | score: | ok | | sh: | ok | | sparc: | ok | | tile: | ok | | um: | ok | | unicore32: | ok | | x86: | ok | | xtensa: | ok | ----------------------- For generic kernel features that need architecture support, the arch-support.txt file in each feature directory shows the arch support matrix, for all upstream Linux architectures. The meaning of entries in the tables is: | ok | # feature supported by the architecture |TODO| # feature not yet supported by the architecture | .. | # feature cannot be supported by the hardware This directory structure can be used in the future to add other files - such as porting guides, testing description, etc. The Documentation/features/ hierarchy may also include generic kernel features that works on every architecture, in that case the arch-support.txt file will list every architecture as supported. To list an architecture's unsupported features, just do something like: $ git grep -lE 'x86.*TODO' Documentation/features/*/arch-support.txt Documentation/features/arch-tick-broadcast/arch-support.txt Documentation/features/strncasecmp/arch-support.txt which prints the list of features not yet supported by the architecture. Signed-off-by: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> --- Documentation/features/BPF-JIT/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/ELF-ASLR/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/KASAN/arch-support.txt | 39 ++++++++++++++++++++++ .../features/PG_uncached/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/THP/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/arch-support.txt | 11 ++++++ .../features/arch-tick-broadcast/arch-support.txt | 39 ++++++++++++++++++++++ .../features/clockevents/arch-support.txt | 39 ++++++++++++++++++++++ .../features/cmpxchg-local/arch-support.txt | 39 ++++++++++++++++++++++ .../features/context-tracking/arch-support.txt | 39 ++++++++++++++++++++++ .../features/dma-api-debug/arch-support.txt | 39 ++++++++++++++++++++++ .../features/dma-contiguous/arch-support.txt | 39 ++++++++++++++++++++++ .../features/dma_map_attrs/arch-support.txt | 39 ++++++++++++++++++++++ .../features/gcov-profile-all/arch-support.txt | 39 ++++++++++++++++++++++ .../features/generic-idle-thread/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/huge-vmap/arch-support.txt | 39 ++++++++++++++++++++++ .../features/ioremap_prot/arch-support.txt | 39 ++++++++++++++++++++++ .../features/irq-time-acct/arch-support.txt | 39 ++++++++++++++++++++++ .../features/jump-labels/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/kgdb/arch-support.txt | 39 ++++++++++++++++++++++ .../features/kprobes-event/arch-support.txt | 39 ++++++++++++++++++++++ .../features/kprobes-on-ftrace/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/kprobes/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/kretprobes/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/lockdep/arch-support.txt | 39 ++++++++++++++++++++++ .../features/modern-timekeeping/arch-support.txt | 39 ++++++++++++++++++++++ .../features/numa-balancing/arch-support.txt | 39 ++++++++++++++++++++++ .../features/numa-memblock/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/optprobes/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/perf-regs/arch-support.txt | 39 ++++++++++++++++++++++ .../features/perf-stackdump/arch-support.txt | 39 ++++++++++++++++++++++ .../features/pmdp_splitting_flush/arch-support.txt | 39 ++++++++++++++++++++++ .../features/pte_special/arch-support.txt | 39 ++++++++++++++++++++++ .../features/queued-rwlocks/arch-support.txt | 39 ++++++++++++++++++++++ .../features/queued-spinlocks/arch-support.txt | 39 ++++++++++++++++++++++ .../features/rwsem-optimized/arch-support.txt | 39 ++++++++++++++++++++++ .../features/seccomp-filter/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/sg-chain/arch-support.txt | 39 ++++++++++++++++++++++ .../features/stackprotector/arch-support.txt | 39 ++++++++++++++++++++++ .../features/strncasecmp/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/tracehook/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/uprobes/arch-support.txt | 39 ++++++++++++++++++++++ .../features/user-ret-profiler/arch-support.txt | 39 ++++++++++++++++++++++ .../features/virt-cpuacct/arch-support.txt | 39 ++++++++++++++++++++++ 44 files changed, 1688 insertions(+) diff --git a/Documentation/features/BPF-JIT/arch-support.txt b/Documentation/features/BPF-JIT/arch-support.txt new file mode 100644 index 000000000000..e412c18cc87e --- /dev/null +++ b/Documentation/features/BPF-JIT/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: BPF-JIT +# Kconfig: HAVE_BPF_JIT +# description: arch supports BPF JIT optimizations +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/ELF-ASLR/arch-support.txt b/Documentation/features/ELF-ASLR/arch-support.txt new file mode 100644 index 000000000000..1b7322b15ca0 --- /dev/null +++ b/Documentation/features/ELF-ASLR/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: ELF-ASLR +# Kconfig: ARCH_HAS_ELF_RANDOMIZE +# description: arch randomizes the stack, heap and binary images of ELF binaries +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/KASAN/arch-support.txt b/Documentation/features/KASAN/arch-support.txt new file mode 100644 index 000000000000..90d82cbc5f02 --- /dev/null +++ b/Documentation/features/KASAN/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: KASAN +# Kconfig: HAVE_ARCH_KASAN +# description: arch supports the KASAN runtime memory checker +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/PG_uncached/arch-support.txt b/Documentation/features/PG_uncached/arch-support.txt new file mode 100644 index 000000000000..a3a0ecf49788 --- /dev/null +++ b/Documentation/features/PG_uncached/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: PG_uncached +# Kconfig: ARCH_USES_PG_UNCACHED +# description: arch supports the PG_uncached page flag +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/THP/arch-support.txt b/Documentation/features/THP/arch-support.txt new file mode 100644 index 000000000000..88da2621216b --- /dev/null +++ b/Documentation/features/THP/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: THP +# Kconfig: HAVE_ARCH_TRANSPARENT_HUGEPAGE && 64BIT +# description: arch supports transparent hugepages +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | .. | + | arm: | ok | + | arm64: | ok | + | avr32: | .. | + | blackfin: | .. | + | c6x: | .. | + | cris: | .. | + | frv: | .. | + | hexagon: | .. | + | ia64: | TODO | + | m32r: | .. | + | m68k: | .. | + | metag: | .. | + | microblaze: | .. | + | mips: | ok | + | mn10300: | .. | + | nios2: | .. | + | openrisc: | .. | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | .. | + | sh: | .. | + | sparc: | ok | + | tile: | TODO | + | um: | .. | + | unicore32: | .. | + | x86: | ok | + | xtensa: | .. | + ----------------------- diff --git a/Documentation/features/arch-support.txt b/Documentation/features/arch-support.txt new file mode 100644 index 000000000000..d22a1095e661 --- /dev/null +++ b/Documentation/features/arch-support.txt @@ -0,0 +1,11 @@ + +For generic kernel features that need architecture support, the +arch-support.txt file in each feature directory shows the arch +support matrix, for all upstream Linux architectures. + +The meaning of entries in the tables is: + + | ok | # feature supported by the architecture + |TODO| # feature not yet supported by the architecture + | .. | # feature cannot be supported by the hardware + diff --git a/Documentation/features/arch-tick-broadcast/arch-support.txt b/Documentation/features/arch-tick-broadcast/arch-support.txt new file mode 100644 index 000000000000..d6798417428b --- /dev/null +++ b/Documentation/features/arch-tick-broadcast/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: arch-tick-broadcast +# Kconfig: ARCH_HAS_TICK_BROADCAST +# description: arch provides tick_broadcast() +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | TODO | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/clockevents/arch-support.txt b/Documentation/features/clockevents/arch-support.txt new file mode 100644 index 000000000000..8ba7fb83825b --- /dev/null +++ b/Documentation/features/clockevents/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: clockevents +# Kconfig: GENERIC_CLOCKEVENTS +# description: arch support generic clock events +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | ok | + | blackfin: | ok | + | c6x: | ok | + | cris: | ok | + | frv: | TODO | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | ok | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | ok | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | ok | + | unicore32: | ok | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/cmpxchg-local/arch-support.txt b/Documentation/features/cmpxchg-local/arch-support.txt new file mode 100644 index 000000000000..364482dc1340 --- /dev/null +++ b/Documentation/features/cmpxchg-local/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: cmpxchg-local +# Kconfig: HAVE_CMPXCHG_LOCAL +# description: arch supports the this_cpu_cmpxchg() API +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/context-tracking/arch-support.txt b/Documentation/features/context-tracking/arch-support.txt new file mode 100644 index 000000000000..47a15d997694 --- /dev/null +++ b/Documentation/features/context-tracking/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: context-tracking +# Kconfig: HAVE_CONTEXT_TRACKING +# description: arch supports context tracking for NO_HZ_FULL +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/dma-api-debug/arch-support.txt b/Documentation/features/dma-api-debug/arch-support.txt new file mode 100644 index 000000000000..cfd6bcf41b8a --- /dev/null +++ b/Documentation/features/dma-api-debug/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: dma-api-debug +# Kconfig: HAVE_DMA_API_DEBUG +# description: arch supports DMA debug facilities +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | ok | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/dma-contiguous/arch-support.txt b/Documentation/features/dma-contiguous/arch-support.txt new file mode 100644 index 000000000000..a775a06ed2af --- /dev/null +++ b/Documentation/features/dma-contiguous/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: dma-contiguous +# Kconfig: HAVE_DMA_CONTIGUOUS +# description: arch supports the DMA CMA (continuous memory allocator) +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/dma_map_attrs/arch-support.txt b/Documentation/features/dma_map_attrs/arch-support.txt new file mode 100644 index 000000000000..c6296a6354ac --- /dev/null +++ b/Documentation/features/dma_map_attrs/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: dma_map_attrs +# Kconfig: HAVE_DMA_ATTRS +# description: arch provides dma_*map*_attrs() APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | ok | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | ok | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/gcov-profile-all/arch-support.txt b/Documentation/features/gcov-profile-all/arch-support.txt new file mode 100644 index 000000000000..27961d93b4f7 --- /dev/null +++ b/Documentation/features/gcov-profile-all/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: gcov-profile-all +# Kconfig: ARCH_HAS_GCOV_PROFILE_ALL +# description: arch supports whole-kernel GCOV code coverage profiling +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/generic-idle-thread/arch-support.txt b/Documentation/features/generic-idle-thread/arch-support.txt new file mode 100644 index 000000000000..30315627905d --- /dev/null +++ b/Documentation/features/generic-idle-thread/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: generic-idle-thread +# Kconfig: GENERIC_SMP_IDLE_THREAD +# description: arch makes use of the generic SMP idle thread facility +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | ok | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/huge-vmap/arch-support.txt b/Documentation/features/huge-vmap/arch-support.txt new file mode 100644 index 000000000000..8784e30b1734 --- /dev/null +++ b/Documentation/features/huge-vmap/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: huge-vmap +# Kconfig: HAVE_ARCH_HUGE_VMAP +# description: arch supports the ioremap_pud_enabled() and ioremap_pmd_enabled() VM APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/ioremap_prot/arch-support.txt b/Documentation/features/ioremap_prot/arch-support.txt new file mode 100644 index 000000000000..2094b77d924b --- /dev/null +++ b/Documentation/features/ioremap_prot/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: ioremap_prot +# Kconfig: HAVE_IOREMAP_PROT +# description: arch has ioremap_prot() +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/irq-time-acct/arch-support.txt b/Documentation/features/irq-time-acct/arch-support.txt new file mode 100644 index 000000000000..15a85ecb7700 --- /dev/null +++ b/Documentation/features/irq-time-acct/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: irq-time-acct +# Kconfig: HAVE_IRQ_TIME_ACCOUNTING +# description: arch supports precise IRQ time accounting +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/jump-labels/arch-support.txt b/Documentation/features/jump-labels/arch-support.txt new file mode 100644 index 000000000000..f1c1c72653d6 --- /dev/null +++ b/Documentation/features/jump-labels/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: jump-labels +# Kconfig: HAVE_ARCH_JUMP_LABEL +# description: arch supports live patched high efficiency branches +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/kgdb/arch-support.txt b/Documentation/features/kgdb/arch-support.txt new file mode 100644 index 000000000000..f384b75f1251 --- /dev/null +++ b/Documentation/features/kgdb/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: kgdb +# Kconfig: HAVE_ARCH_KGDB +# description: arch supports the kGDB kernel debugger +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | ok | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/kprobes-event/arch-support.txt b/Documentation/features/kprobes-event/arch-support.txt new file mode 100644 index 000000000000..f8cf1d54d100 --- /dev/null +++ b/Documentation/features/kprobes-event/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: kprobes-event +# Kconfig: HAVE_REGS_AND_STACK_ACCESS_API +# description: arch supports kprobes with perf events +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/kprobes-on-ftrace/arch-support.txt b/Documentation/features/kprobes-on-ftrace/arch-support.txt new file mode 100644 index 000000000000..0f4a8c8df472 --- /dev/null +++ b/Documentation/features/kprobes-on-ftrace/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: kprobes-on-ftrace +# Kconfig: HAVE_KPROBES_ON_FTRACE +# description: arch supports combined kprobes and ftrace live patching +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/kprobes/arch-support.txt b/Documentation/features/kprobes/arch-support.txt new file mode 100644 index 000000000000..d5518f7fc567 --- /dev/null +++ b/Documentation/features/kprobes/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: kprobes +# Kconfig: HAVE_KPROBES +# description: arch supports live patched kernel probe +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | TODO | + | avr32: | ok | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/kretprobes/arch-support.txt b/Documentation/features/kretprobes/arch-support.txt new file mode 100644 index 000000000000..13960c4cbe61 --- /dev/null +++ b/Documentation/features/kretprobes/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: kretprobes +# Kconfig: HAVE_KRETPROBES +# description: arch supports kernel function-return probes +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/lockdep/arch-support.txt b/Documentation/features/lockdep/arch-support.txt new file mode 100644 index 000000000000..5bfbb7d64fe0 --- /dev/null +++ b/Documentation/features/lockdep/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: lockdep +# Kconfig: LOCKDEP_SUPPORT +# description: arch supports the runtime locking correctness debug facility +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | ok | + | blackfin: | ok | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | ok | + | unicore32: | ok | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/modern-timekeeping/arch-support.txt b/Documentation/features/modern-timekeeping/arch-support.txt new file mode 100644 index 000000000000..14422649183d --- /dev/null +++ b/Documentation/features/modern-timekeeping/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: modern-timekeeping +# Kconfig: !ARCH_USES_GETTIMEOFFSET +# description: arch does not use arch_gettimeoffset() anymore +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | ok | + | arm: | TODO | + | arm64: | ok | + | avr32: | ok | + | blackfin: | TODO | + | c6x: | ok | + | cris: | TODO | + | frv: | ok | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | ok | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | ok | + | unicore32: | ok | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/numa-balancing/arch-support.txt b/Documentation/features/numa-balancing/arch-support.txt new file mode 100644 index 000000000000..791ceb82b16a --- /dev/null +++ b/Documentation/features/numa-balancing/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: numa-balancing +# Kconfig: ARCH_SUPPORTS_NUMA_BALANCING && 64BIT && NUMA +# description: arch supports NUMA balancing +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | .. | + | arm: | .. | + | arm64: | .. | + | avr32: | .. | + | blackfin: | .. | + | c6x: | .. | + | cris: | .. | + | frv: | .. | + | hexagon: | .. | + | ia64: | TODO | + | m32r: | .. | + | m68k: | .. | + | metag: | .. | + | microblaze: | .. | + | mips: | TODO | + | mn10300: | .. | + | nios2: | .. | + | openrisc: | .. | + | parisc: | .. | + | powerpc: | ok | + | s390: | .. | + | score: | .. | + | sh: | .. | + | sparc: | TODO | + | tile: | TODO | + | um: | .. | + | unicore32: | .. | + | x86: | ok | + | xtensa: | .. | + ----------------------- diff --git a/Documentation/features/numa-memblock/arch-support.txt b/Documentation/features/numa-memblock/arch-support.txt new file mode 100644 index 000000000000..477df392fee1 --- /dev/null +++ b/Documentation/features/numa-memblock/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: numa-memblock +# Kconfig: HAVE_MEMBLOCK_NODE_MAP +# description: arch supports NUMA aware memblocks +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | .. | + | arm: | .. | + | arm64: | .. | + | avr32: | .. | + | blackfin: | .. | + | c6x: | .. | + | cris: | .. | + | frv: | .. | + | hexagon: | .. | + | ia64: | ok | + | m32r: | TODO | + | m68k: | .. | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | .. | + | openrisc: | .. | + | parisc: | .. | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | TODO | + | um: | .. | + | unicore32: | .. | + | x86: | ok | + | xtensa: | .. | + ----------------------- diff --git a/Documentation/features/optprobes/arch-support.txt b/Documentation/features/optprobes/arch-support.txt new file mode 100644 index 000000000000..33907b6f5775 --- /dev/null +++ b/Documentation/features/optprobes/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: optprobes +# Kconfig: HAVE_OPTPROBES +# description: arch supports live patched optprobes +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/perf-regs/arch-support.txt b/Documentation/features/perf-regs/arch-support.txt new file mode 100644 index 000000000000..c820ebab4328 --- /dev/null +++ b/Documentation/features/perf-regs/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: perf-regs +# Kconfig: HAVE_PERF_REGS +# description: arch supports perf events register access +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/perf-stackdump/arch-support.txt b/Documentation/features/perf-stackdump/arch-support.txt new file mode 100644 index 000000000000..cf42a6fab4e2 --- /dev/null +++ b/Documentation/features/perf-stackdump/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: perf-stackdump +# Kconfig: HAVE_PERF_USER_STACK_DUMP +# description: arch supports perf events stack dumps +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/pmdp_splitting_flush/arch-support.txt b/Documentation/features/pmdp_splitting_flush/arch-support.txt new file mode 100644 index 000000000000..930c6f0095e7 --- /dev/null +++ b/Documentation/features/pmdp_splitting_flush/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: pmdp_splitting_flush +# Kconfig: #define __HAVE_ARCH_PMDP_SPLITTING_FLUSH +# description: arch supports the pmdp_splitting_flush() VM API +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/pte_special/arch-support.txt b/Documentation/features/pte_special/arch-support.txt new file mode 100644 index 000000000000..0ca26d144c04 --- /dev/null +++ b/Documentation/features/pte_special/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: pte_special +# Kconfig: #define __HAVE_ARCH_PTE_SPECIAL +# description: arch supports the pte_special()/pte_mkspecial() VM APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/queued-rwlocks/arch-support.txt b/Documentation/features/queued-rwlocks/arch-support.txt new file mode 100644 index 000000000000..abaffd1b3b84 --- /dev/null +++ b/Documentation/features/queued-rwlocks/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: queued-rwlocks +# Kconfig: ARCH_USE_QUEUED_RWLOCKS +# description: arch supports queued rwlocks +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/queued-spinlocks/arch-support.txt b/Documentation/features/queued-spinlocks/arch-support.txt new file mode 100644 index 000000000000..480e9e657039 --- /dev/null +++ b/Documentation/features/queued-spinlocks/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: queued-spinlocks +# Kconfig: ARCH_USE_QUEUED_SPINLOCKS +# description: arch supports queued spinlocks +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/rwsem-optimized/arch-support.txt b/Documentation/features/rwsem-optimized/arch-support.txt new file mode 100644 index 000000000000..1572c7a75bb0 --- /dev/null +++ b/Documentation/features/rwsem-optimized/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: rwsem-optimized +# Kconfig: Optimized asm/rwsem.h +# description: arch provides optimized rwsem APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | ok | + | blackfin: | ok | + | c6x: | ok | + | cris: | ok | + | frv: | ok | + | hexagon: | ok | + | ia64: | ok | + | m32r: | ok | + | m68k: | ok | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | ok | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | ok | + | unicore32: | ok | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/seccomp-filter/arch-support.txt b/Documentation/features/seccomp-filter/arch-support.txt new file mode 100644 index 000000000000..1d242a40f195 --- /dev/null +++ b/Documentation/features/seccomp-filter/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: seccomp-filter +# Kconfig: HAVE_ARCH_SECCOMP_FILTER +# description: arch supports seccomp filters +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/sg-chain/arch-support.txt b/Documentation/features/sg-chain/arch-support.txt new file mode 100644 index 000000000000..8aff17488ae0 --- /dev/null +++ b/Documentation/features/sg-chain/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: sg-chain +# Kconfig: ARCH_HAS_SG_CHAIN +# description: arch supports chained scatter-gather lists +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/stackprotector/arch-support.txt b/Documentation/features/stackprotector/arch-support.txt new file mode 100644 index 000000000000..543b41d36520 --- /dev/null +++ b/Documentation/features/stackprotector/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: stackprotector +# Kconfig: HAVE_CC_STACKPROTECTOR +# description: arch supports compiler driven stack overflow protection +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/strncasecmp/arch-support.txt b/Documentation/features/strncasecmp/arch-support.txt new file mode 100644 index 000000000000..9ea6e4d4baed --- /dev/null +++ b/Documentation/features/strncasecmp/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: strncasecmp +# Kconfig: __HAVE_ARCH_STRNCASECMP +# description: arch provides an optimized strncasecmp() function +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | TODO | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/tracehook/arch-support.txt b/Documentation/features/tracehook/arch-support.txt new file mode 100644 index 000000000000..05e9de795733 --- /dev/null +++ b/Documentation/features/tracehook/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: tracehook +# Kconfig: HAVE_ARCH_TRACEHOOK +# description: arch supports tracehook (ptrace) register handling APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | ok | + | c6x: | ok | + | cris: | TODO | + | frv: | ok | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | ok | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/uprobes/arch-support.txt b/Documentation/features/uprobes/arch-support.txt new file mode 100644 index 000000000000..7c633b846f65 --- /dev/null +++ b/Documentation/features/uprobes/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: uprobes +# Kconfig: ARCH_SUPPORTS_UPROBES +# description: arch supports live patched user probes +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/user-ret-profiler/arch-support.txt b/Documentation/features/user-ret-profiler/arch-support.txt new file mode 100644 index 000000000000..6ba4d07ff641 --- /dev/null +++ b/Documentation/features/user-ret-profiler/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: user-ret-profiler +# Kconfig: HAVE_USER_RETURN_NOTIFIER +# description: arch supports user-space return from system call profiler +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/virt-cpuacct/arch-support.txt b/Documentation/features/virt-cpuacct/arch-support.txt new file mode 100644 index 000000000000..c9374d33b8ac --- /dev/null +++ b/Documentation/features/virt-cpuacct/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: virt-cpuacct +# Kconfig: HAVE_VIRT_CPU_ACCOUNTING || 64BIT +# description: arch supports precise virtual CPU time accounting +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- ^ permalink raw reply related [flat|nested] 46+ messages in thread
[parent not found: <20150514101518.GA27550-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <20150514101518.GA27550-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-05-14 10:35 ` Ingo Molnar 2015-05-14 19:38 ` Andrew Morton [not found] ` <20150514103544.GA7027-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 2 replies; 46+ messages in thread From: Ingo Molnar @ 2015-05-14 10:35 UTC (permalink / raw) To: Andrew Morton Cc: Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA * Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote: > To list an architecture's unsupported features, just do something > like: > > $ git grep -lE 'x86.*TODO' Documentation/features/*/arch-support.txt > > Documentation/features/arch-tick-broadcast/arch-support.txt > Documentation/features/strncasecmp/arch-support.txt > > which prints the list of features not yet supported by the > architecture. Another way to visualize the feature support status of an architecture, would be to use the simple script I've put into Documentation/features/list-arch.sh: triton:~/tip> Documentation/features/list-arch.sh # # Kernel feature support matrix of architecture 'x86': # arch-tick-broadcast: | x86: | TODO | BPF-JIT: | x86: | ok | clockevents: | x86: | ok | cmpxchg-local: | x86: | ok | context-tracking: | x86: | ok | dma-api-debug: | x86: | ok | dma-contiguous: | x86: | ok | dma_map_attrs: | x86: | ok | ELF-ASLR: | x86: | ok | gcov-profile-all: | x86: | ok | generic-idle-thread: | x86: | ok | huge-vmap: | x86: | ok | ioremap_prot: | x86: | ok | irq-time-acct: | x86: | ok | jump-labels: | x86: | ok | KASAN: | x86: | ok | kgdb: | x86: | ok | kprobes: | x86: | ok | kprobes-event: | x86: | ok | kprobes-on-ftrace: | x86: | ok | kretprobes: | x86: | ok | lockdep: | x86: | ok | modern-timekeeping: | x86: | ok | numa-balancing: | x86: | ok | numa-memblock: | x86: | ok | optprobes: | x86: | ok | perf-regs: | x86: | ok | perf-stackdump: | x86: | ok | PG_uncached: | x86: | ok | pmdp_splitting_flush: | x86: | ok | pte_special: | x86: | ok | queued-rwlocks: | x86: | ok | queued-spinlocks: | x86: | ok | rwsem-optimized: | x86: | ok | seccomp-filter: | x86: | ok | sg-chain: | x86: | ok | stackprotector: | x86: | ok | strncasecmp: | x86: | TODO | THP: | x86: | ok | tracehook: | x86: | ok | uprobes: | x86: | ok | user-ret-profiler: | x86: | ok | virt-cpuacct: | x86: | ok | Updated patch attached. This way we can avoid the conflicts by generating the visualization on the fly. Thanks, Ingo ===============================> From: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Date: Thu, 14 May 2015 12:04:00 +0200 Subject: [PATCH] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ Add arch support matrices for more than 40 generic kernel features that need per architecture support. Each feature has its own directory under Documentation/features/feature_name/, and the arch-support.txt file shows its current arch porting status. For example, lockdep support is shown the following way: triton:~/tip> cat Documentation/features/lockdep/arch-support.txt # # Feature name: lockdep # Kconfig: LOCKDEP_SUPPORT # description: arch supports the runtime locking correctness debug facility # ----------------------- | arch |status| ----------------------- | alpha: | TODO | | arc: | ok | | arm: | ok | | arm64: | ok | | avr32: | ok | | blackfin: | ok | | c6x: | TODO | | cris: | TODO | | frv: | TODO | | hexagon: | ok | | ia64: | TODO | | m32r: | TODO | | m68k: | TODO | | metag: | ok | | microblaze: | ok | | mips: | ok | | mn10300: | TODO | | nios2: | TODO | | openrisc: | TODO | | parisc: | TODO | | powerpc: | ok | | s390: | ok | | score: | ok | | sh: | ok | | sparc: | ok | | tile: | ok | | um: | ok | | unicore32: | ok | | x86: | ok | | xtensa: | ok | ----------------------- For generic kernel features that need architecture support, the arch-support.txt file in each feature directory shows the arch support matrix, for all upstream Linux architectures. The meaning of entries in the tables is: | ok | # feature supported by the architecture |TODO| # feature not yet supported by the architecture | .. | # feature cannot be supported by the hardware This directory structure can be used in the future to add other files - such as porting guides, testing description, etc. The Documentation/features/ hierarchy may also include generic kernel features that works on every architecture, in that case the arch-support.txt file will list every architecture as supported. To list an architecture's unsupported features, just do something like: $ git grep -lE 'x86.*TODO' Documentation/features/*/arch-support.txt Documentation/features/arch-tick-broadcast/arch-support.txt Documentation/features/strncasecmp/arch-support.txt which will print the list of not yet supported features. The Documentation/features/list-arch.sh script will print the current support matrix of one architecture: triton:~/tip> Documentation/features/list-arch.sh # # Kernel feature support matrix of architecture 'x86': # arch-tick-broadcast: | x86: | TODO | BPF-JIT: | x86: | ok | clockevents: | x86: | ok | cmpxchg-local: | x86: | ok | context-tracking: | x86: | ok | dma-api-debug: | x86: | ok | dma-contiguous: | x86: | ok | dma_map_attrs: | x86: | ok | ELF-ASLR: | x86: | ok | gcov-profile-all: | x86: | ok | generic-idle-thread: | x86: | ok | huge-vmap: | x86: | ok | ioremap_prot: | x86: | ok | irq-time-acct: | x86: | ok | jump-labels: | x86: | ok | KASAN: | x86: | ok | kgdb: | x86: | ok | kprobes: | x86: | ok | kprobes-event: | x86: | ok | kprobes-on-ftrace: | x86: | ok | kretprobes: | x86: | ok | lockdep: | x86: | ok | modern-timekeeping: | x86: | ok | numa-balancing: | x86: | ok | numa-memblock: | x86: | ok | optprobes: | x86: | ok | perf-regs: | x86: | ok | perf-stackdump: | x86: | ok | PG_uncached: | x86: | ok | pmdp_splitting_flush: | x86: | ok | pte_special: | x86: | ok | queued-rwlocks: | x86: | ok | queued-spinlocks: | x86: | ok | rwsem-optimized: | x86: | ok | seccomp-filter: | x86: | ok | sg-chain: | x86: | ok | stackprotector: | x86: | ok | strncasecmp: | x86: | TODO | THP: | x86: | ok | tracehook: | x86: | ok | uprobes: | x86: | ok | user-ret-profiler: | x86: | ok | virt-cpuacct: | x86: | ok | Signed-off-by: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> --- Documentation/features/BPF-JIT/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/ELF-ASLR/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/KASAN/arch-support.txt | 39 ++++++++++++++++++++++ .../features/PG_uncached/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/THP/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/arch-support.txt | 11 ++++++ .../features/arch-tick-broadcast/arch-support.txt | 39 ++++++++++++++++++++++ .../features/clockevents/arch-support.txt | 39 ++++++++++++++++++++++ .../features/cmpxchg-local/arch-support.txt | 39 ++++++++++++++++++++++ .../features/context-tracking/arch-support.txt | 39 ++++++++++++++++++++++ .../features/dma-api-debug/arch-support.txt | 39 ++++++++++++++++++++++ .../features/dma-contiguous/arch-support.txt | 39 ++++++++++++++++++++++ .../features/dma_map_attrs/arch-support.txt | 39 ++++++++++++++++++++++ .../features/gcov-profile-all/arch-support.txt | 39 ++++++++++++++++++++++ .../features/generic-idle-thread/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/huge-vmap/arch-support.txt | 39 ++++++++++++++++++++++ .../features/ioremap_prot/arch-support.txt | 39 ++++++++++++++++++++++ .../features/irq-time-acct/arch-support.txt | 39 ++++++++++++++++++++++ .../features/jump-labels/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/kgdb/arch-support.txt | 39 ++++++++++++++++++++++ .../features/kprobes-event/arch-support.txt | 39 ++++++++++++++++++++++ .../features/kprobes-on-ftrace/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/kprobes/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/kretprobes/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/list-arch.sh | 21 ++++++++++++ Documentation/features/lockdep/arch-support.txt | 39 ++++++++++++++++++++++ .../features/modern-timekeeping/arch-support.txt | 39 ++++++++++++++++++++++ .../features/numa-balancing/arch-support.txt | 39 ++++++++++++++++++++++ .../features/numa-memblock/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/optprobes/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/perf-regs/arch-support.txt | 39 ++++++++++++++++++++++ .../features/perf-stackdump/arch-support.txt | 39 ++++++++++++++++++++++ .../features/pmdp_splitting_flush/arch-support.txt | 39 ++++++++++++++++++++++ .../features/pte_special/arch-support.txt | 39 ++++++++++++++++++++++ .../features/queued-rwlocks/arch-support.txt | 39 ++++++++++++++++++++++ .../features/queued-spinlocks/arch-support.txt | 39 ++++++++++++++++++++++ .../features/rwsem-optimized/arch-support.txt | 39 ++++++++++++++++++++++ .../features/seccomp-filter/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/sg-chain/arch-support.txt | 39 ++++++++++++++++++++++ .../features/stackprotector/arch-support.txt | 39 ++++++++++++++++++++++ .../features/strncasecmp/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/tracehook/arch-support.txt | 39 ++++++++++++++++++++++ Documentation/features/uprobes/arch-support.txt | 39 ++++++++++++++++++++++ .../features/user-ret-profiler/arch-support.txt | 39 ++++++++++++++++++++++ .../features/virt-cpuacct/arch-support.txt | 39 ++++++++++++++++++++++ 45 files changed, 1709 insertions(+) diff --git a/Documentation/features/BPF-JIT/arch-support.txt b/Documentation/features/BPF-JIT/arch-support.txt new file mode 100644 index 000000000000..e412c18cc87e --- /dev/null +++ b/Documentation/features/BPF-JIT/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: BPF-JIT +# Kconfig: HAVE_BPF_JIT +# description: arch supports BPF JIT optimizations +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/ELF-ASLR/arch-support.txt b/Documentation/features/ELF-ASLR/arch-support.txt new file mode 100644 index 000000000000..1b7322b15ca0 --- /dev/null +++ b/Documentation/features/ELF-ASLR/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: ELF-ASLR +# Kconfig: ARCH_HAS_ELF_RANDOMIZE +# description: arch randomizes the stack, heap and binary images of ELF binaries +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/KASAN/arch-support.txt b/Documentation/features/KASAN/arch-support.txt new file mode 100644 index 000000000000..90d82cbc5f02 --- /dev/null +++ b/Documentation/features/KASAN/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: KASAN +# Kconfig: HAVE_ARCH_KASAN +# description: arch supports the KASAN runtime memory checker +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/PG_uncached/arch-support.txt b/Documentation/features/PG_uncached/arch-support.txt new file mode 100644 index 000000000000..a3a0ecf49788 --- /dev/null +++ b/Documentation/features/PG_uncached/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: PG_uncached +# Kconfig: ARCH_USES_PG_UNCACHED +# description: arch supports the PG_uncached page flag +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/THP/arch-support.txt b/Documentation/features/THP/arch-support.txt new file mode 100644 index 000000000000..88da2621216b --- /dev/null +++ b/Documentation/features/THP/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: THP +# Kconfig: HAVE_ARCH_TRANSPARENT_HUGEPAGE && 64BIT +# description: arch supports transparent hugepages +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | .. | + | arm: | ok | + | arm64: | ok | + | avr32: | .. | + | blackfin: | .. | + | c6x: | .. | + | cris: | .. | + | frv: | .. | + | hexagon: | .. | + | ia64: | TODO | + | m32r: | .. | + | m68k: | .. | + | metag: | .. | + | microblaze: | .. | + | mips: | ok | + | mn10300: | .. | + | nios2: | .. | + | openrisc: | .. | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | .. | + | sh: | .. | + | sparc: | ok | + | tile: | TODO | + | um: | .. | + | unicore32: | .. | + | x86: | ok | + | xtensa: | .. | + ----------------------- diff --git a/Documentation/features/arch-support.txt b/Documentation/features/arch-support.txt new file mode 100644 index 000000000000..d22a1095e661 --- /dev/null +++ b/Documentation/features/arch-support.txt @@ -0,0 +1,11 @@ + +For generic kernel features that need architecture support, the +arch-support.txt file in each feature directory shows the arch +support matrix, for all upstream Linux architectures. + +The meaning of entries in the tables is: + + | ok | # feature supported by the architecture + |TODO| # feature not yet supported by the architecture + | .. | # feature cannot be supported by the hardware + diff --git a/Documentation/features/arch-tick-broadcast/arch-support.txt b/Documentation/features/arch-tick-broadcast/arch-support.txt new file mode 100644 index 000000000000..d6798417428b --- /dev/null +++ b/Documentation/features/arch-tick-broadcast/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: arch-tick-broadcast +# Kconfig: ARCH_HAS_TICK_BROADCAST +# description: arch provides tick_broadcast() +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | TODO | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/clockevents/arch-support.txt b/Documentation/features/clockevents/arch-support.txt new file mode 100644 index 000000000000..8ba7fb83825b --- /dev/null +++ b/Documentation/features/clockevents/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: clockevents +# Kconfig: GENERIC_CLOCKEVENTS +# description: arch support generic clock events +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | ok | + | blackfin: | ok | + | c6x: | ok | + | cris: | ok | + | frv: | TODO | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | ok | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | ok | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | ok | + | unicore32: | ok | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/cmpxchg-local/arch-support.txt b/Documentation/features/cmpxchg-local/arch-support.txt new file mode 100644 index 000000000000..364482dc1340 --- /dev/null +++ b/Documentation/features/cmpxchg-local/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: cmpxchg-local +# Kconfig: HAVE_CMPXCHG_LOCAL +# description: arch supports the this_cpu_cmpxchg() API +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/context-tracking/arch-support.txt b/Documentation/features/context-tracking/arch-support.txt new file mode 100644 index 000000000000..47a15d997694 --- /dev/null +++ b/Documentation/features/context-tracking/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: context-tracking +# Kconfig: HAVE_CONTEXT_TRACKING +# description: arch supports context tracking for NO_HZ_FULL +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/dma-api-debug/arch-support.txt b/Documentation/features/dma-api-debug/arch-support.txt new file mode 100644 index 000000000000..cfd6bcf41b8a --- /dev/null +++ b/Documentation/features/dma-api-debug/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: dma-api-debug +# Kconfig: HAVE_DMA_API_DEBUG +# description: arch supports DMA debug facilities +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | ok | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/dma-contiguous/arch-support.txt b/Documentation/features/dma-contiguous/arch-support.txt new file mode 100644 index 000000000000..a775a06ed2af --- /dev/null +++ b/Documentation/features/dma-contiguous/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: dma-contiguous +# Kconfig: HAVE_DMA_CONTIGUOUS +# description: arch supports the DMA CMA (continuous memory allocator) +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/dma_map_attrs/arch-support.txt b/Documentation/features/dma_map_attrs/arch-support.txt new file mode 100644 index 000000000000..c6296a6354ac --- /dev/null +++ b/Documentation/features/dma_map_attrs/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: dma_map_attrs +# Kconfig: HAVE_DMA_ATTRS +# description: arch provides dma_*map*_attrs() APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | ok | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | ok | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/gcov-profile-all/arch-support.txt b/Documentation/features/gcov-profile-all/arch-support.txt new file mode 100644 index 000000000000..27961d93b4f7 --- /dev/null +++ b/Documentation/features/gcov-profile-all/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: gcov-profile-all +# Kconfig: ARCH_HAS_GCOV_PROFILE_ALL +# description: arch supports whole-kernel GCOV code coverage profiling +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/generic-idle-thread/arch-support.txt b/Documentation/features/generic-idle-thread/arch-support.txt new file mode 100644 index 000000000000..30315627905d --- /dev/null +++ b/Documentation/features/generic-idle-thread/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: generic-idle-thread +# Kconfig: GENERIC_SMP_IDLE_THREAD +# description: arch makes use of the generic SMP idle thread facility +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | ok | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/huge-vmap/arch-support.txt b/Documentation/features/huge-vmap/arch-support.txt new file mode 100644 index 000000000000..8784e30b1734 --- /dev/null +++ b/Documentation/features/huge-vmap/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: huge-vmap +# Kconfig: HAVE_ARCH_HUGE_VMAP +# description: arch supports the ioremap_pud_enabled() and ioremap_pmd_enabled() VM APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/ioremap_prot/arch-support.txt b/Documentation/features/ioremap_prot/arch-support.txt new file mode 100644 index 000000000000..2094b77d924b --- /dev/null +++ b/Documentation/features/ioremap_prot/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: ioremap_prot +# Kconfig: HAVE_IOREMAP_PROT +# description: arch has ioremap_prot() +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/irq-time-acct/arch-support.txt b/Documentation/features/irq-time-acct/arch-support.txt new file mode 100644 index 000000000000..15a85ecb7700 --- /dev/null +++ b/Documentation/features/irq-time-acct/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: irq-time-acct +# Kconfig: HAVE_IRQ_TIME_ACCOUNTING +# description: arch supports precise IRQ time accounting +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/jump-labels/arch-support.txt b/Documentation/features/jump-labels/arch-support.txt new file mode 100644 index 000000000000..f1c1c72653d6 --- /dev/null +++ b/Documentation/features/jump-labels/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: jump-labels +# Kconfig: HAVE_ARCH_JUMP_LABEL +# description: arch supports live patched high efficiency branches +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/kgdb/arch-support.txt b/Documentation/features/kgdb/arch-support.txt new file mode 100644 index 000000000000..f384b75f1251 --- /dev/null +++ b/Documentation/features/kgdb/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: kgdb +# Kconfig: HAVE_ARCH_KGDB +# description: arch supports the kGDB kernel debugger +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | ok | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/kprobes-event/arch-support.txt b/Documentation/features/kprobes-event/arch-support.txt new file mode 100644 index 000000000000..f8cf1d54d100 --- /dev/null +++ b/Documentation/features/kprobes-event/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: kprobes-event +# Kconfig: HAVE_REGS_AND_STACK_ACCESS_API +# description: arch supports kprobes with perf events +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/kprobes-on-ftrace/arch-support.txt b/Documentation/features/kprobes-on-ftrace/arch-support.txt new file mode 100644 index 000000000000..0f4a8c8df472 --- /dev/null +++ b/Documentation/features/kprobes-on-ftrace/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: kprobes-on-ftrace +# Kconfig: HAVE_KPROBES_ON_FTRACE +# description: arch supports combined kprobes and ftrace live patching +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/kprobes/arch-support.txt b/Documentation/features/kprobes/arch-support.txt new file mode 100644 index 000000000000..d5518f7fc567 --- /dev/null +++ b/Documentation/features/kprobes/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: kprobes +# Kconfig: HAVE_KPROBES +# description: arch supports live patched kernel probe +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | TODO | + | avr32: | ok | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/kretprobes/arch-support.txt b/Documentation/features/kretprobes/arch-support.txt new file mode 100644 index 000000000000..13960c4cbe61 --- /dev/null +++ b/Documentation/features/kretprobes/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: kretprobes +# Kconfig: HAVE_KRETPROBES +# description: arch supports kernel function-return probes +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/list-arch.sh b/Documentation/features/list-arch.sh new file mode 100755 index 000000000000..aa53da231a26 --- /dev/null +++ b/Documentation/features/list-arch.sh @@ -0,0 +1,21 @@ +# +# Small script that visualizes the kernel feature support status +# of an architecture. +# +# (If no arguments are given then it will print the host architecture's status.) +# + +[ $# = 0 ] && ARCH=$(arch | sed 's/x86_64/x86/' | sed 's/i386/x86/') + +cd $(dirname $0) +echo "#" +echo "# Kernel feature support matrix of architecture '$ARCH':" +echo "#" + +for F in */arch-support.txt; do + N=$(git grep -h "Feature name" $F | cut -d: -f2) + S=$(git grep -hw $ARCH $F) + + printf "%30s: %s\n" "$N" "$S" +done + diff --git a/Documentation/features/lockdep/arch-support.txt b/Documentation/features/lockdep/arch-support.txt new file mode 100644 index 000000000000..5bfbb7d64fe0 --- /dev/null +++ b/Documentation/features/lockdep/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: lockdep +# Kconfig: LOCKDEP_SUPPORT +# description: arch supports the runtime locking correctness debug facility +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | ok | + | blackfin: | ok | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | ok | + | unicore32: | ok | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/modern-timekeeping/arch-support.txt b/Documentation/features/modern-timekeeping/arch-support.txt new file mode 100644 index 000000000000..14422649183d --- /dev/null +++ b/Documentation/features/modern-timekeeping/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: modern-timekeeping +# Kconfig: !ARCH_USES_GETTIMEOFFSET +# description: arch does not use arch_gettimeoffset() anymore +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | ok | + | arm: | TODO | + | arm64: | ok | + | avr32: | ok | + | blackfin: | TODO | + | c6x: | ok | + | cris: | TODO | + | frv: | ok | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | ok | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | ok | + | unicore32: | ok | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/numa-balancing/arch-support.txt b/Documentation/features/numa-balancing/arch-support.txt new file mode 100644 index 000000000000..791ceb82b16a --- /dev/null +++ b/Documentation/features/numa-balancing/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: numa-balancing +# Kconfig: ARCH_SUPPORTS_NUMA_BALANCING && 64BIT && NUMA +# description: arch supports NUMA balancing +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | .. | + | arm: | .. | + | arm64: | .. | + | avr32: | .. | + | blackfin: | .. | + | c6x: | .. | + | cris: | .. | + | frv: | .. | + | hexagon: | .. | + | ia64: | TODO | + | m32r: | .. | + | m68k: | .. | + | metag: | .. | + | microblaze: | .. | + | mips: | TODO | + | mn10300: | .. | + | nios2: | .. | + | openrisc: | .. | + | parisc: | .. | + | powerpc: | ok | + | s390: | .. | + | score: | .. | + | sh: | .. | + | sparc: | TODO | + | tile: | TODO | + | um: | .. | + | unicore32: | .. | + | x86: | ok | + | xtensa: | .. | + ----------------------- diff --git a/Documentation/features/numa-memblock/arch-support.txt b/Documentation/features/numa-memblock/arch-support.txt new file mode 100644 index 000000000000..477df392fee1 --- /dev/null +++ b/Documentation/features/numa-memblock/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: numa-memblock +# Kconfig: HAVE_MEMBLOCK_NODE_MAP +# description: arch supports NUMA aware memblocks +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | .. | + | arm: | .. | + | arm64: | .. | + | avr32: | .. | + | blackfin: | .. | + | c6x: | .. | + | cris: | .. | + | frv: | .. | + | hexagon: | .. | + | ia64: | ok | + | m32r: | TODO | + | m68k: | .. | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | .. | + | openrisc: | .. | + | parisc: | .. | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | TODO | + | um: | .. | + | unicore32: | .. | + | x86: | ok | + | xtensa: | .. | + ----------------------- diff --git a/Documentation/features/optprobes/arch-support.txt b/Documentation/features/optprobes/arch-support.txt new file mode 100644 index 000000000000..33907b6f5775 --- /dev/null +++ b/Documentation/features/optprobes/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: optprobes +# Kconfig: HAVE_OPTPROBES +# description: arch supports live patched optprobes +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/perf-regs/arch-support.txt b/Documentation/features/perf-regs/arch-support.txt new file mode 100644 index 000000000000..c820ebab4328 --- /dev/null +++ b/Documentation/features/perf-regs/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: perf-regs +# Kconfig: HAVE_PERF_REGS +# description: arch supports perf events register access +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/perf-stackdump/arch-support.txt b/Documentation/features/perf-stackdump/arch-support.txt new file mode 100644 index 000000000000..cf42a6fab4e2 --- /dev/null +++ b/Documentation/features/perf-stackdump/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: perf-stackdump +# Kconfig: HAVE_PERF_USER_STACK_DUMP +# description: arch supports perf events stack dumps +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/pmdp_splitting_flush/arch-support.txt b/Documentation/features/pmdp_splitting_flush/arch-support.txt new file mode 100644 index 000000000000..930c6f0095e7 --- /dev/null +++ b/Documentation/features/pmdp_splitting_flush/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: pmdp_splitting_flush +# Kconfig: #define __HAVE_ARCH_PMDP_SPLITTING_FLUSH +# description: arch supports the pmdp_splitting_flush() VM API +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/pte_special/arch-support.txt b/Documentation/features/pte_special/arch-support.txt new file mode 100644 index 000000000000..0ca26d144c04 --- /dev/null +++ b/Documentation/features/pte_special/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: pte_special +# Kconfig: #define __HAVE_ARCH_PTE_SPECIAL +# description: arch supports the pte_special()/pte_mkspecial() VM APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/queued-rwlocks/arch-support.txt b/Documentation/features/queued-rwlocks/arch-support.txt new file mode 100644 index 000000000000..abaffd1b3b84 --- /dev/null +++ b/Documentation/features/queued-rwlocks/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: queued-rwlocks +# Kconfig: ARCH_USE_QUEUED_RWLOCKS +# description: arch supports queued rwlocks +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/queued-spinlocks/arch-support.txt b/Documentation/features/queued-spinlocks/arch-support.txt new file mode 100644 index 000000000000..480e9e657039 --- /dev/null +++ b/Documentation/features/queued-spinlocks/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: queued-spinlocks +# Kconfig: ARCH_USE_QUEUED_SPINLOCKS +# description: arch supports queued spinlocks +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/rwsem-optimized/arch-support.txt b/Documentation/features/rwsem-optimized/arch-support.txt new file mode 100644 index 000000000000..1572c7a75bb0 --- /dev/null +++ b/Documentation/features/rwsem-optimized/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: rwsem-optimized +# Kconfig: Optimized asm/rwsem.h +# description: arch provides optimized rwsem APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | ok | + | blackfin: | ok | + | c6x: | ok | + | cris: | ok | + | frv: | ok | + | hexagon: | ok | + | ia64: | ok | + | m32r: | ok | + | m68k: | ok | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | ok | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | ok | + | unicore32: | ok | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/seccomp-filter/arch-support.txt b/Documentation/features/seccomp-filter/arch-support.txt new file mode 100644 index 000000000000..1d242a40f195 --- /dev/null +++ b/Documentation/features/seccomp-filter/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: seccomp-filter +# Kconfig: HAVE_ARCH_SECCOMP_FILTER +# description: arch supports seccomp filters +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/sg-chain/arch-support.txt b/Documentation/features/sg-chain/arch-support.txt new file mode 100644 index 000000000000..8aff17488ae0 --- /dev/null +++ b/Documentation/features/sg-chain/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: sg-chain +# Kconfig: ARCH_HAS_SG_CHAIN +# description: arch supports chained scatter-gather lists +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/stackprotector/arch-support.txt b/Documentation/features/stackprotector/arch-support.txt new file mode 100644 index 000000000000..543b41d36520 --- /dev/null +++ b/Documentation/features/stackprotector/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: stackprotector +# Kconfig: HAVE_CC_STACKPROTECTOR +# description: arch supports compiler driven stack overflow protection +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/strncasecmp/arch-support.txt b/Documentation/features/strncasecmp/arch-support.txt new file mode 100644 index 000000000000..9ea6e4d4baed --- /dev/null +++ b/Documentation/features/strncasecmp/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: strncasecmp +# Kconfig: __HAVE_ARCH_STRNCASECMP +# description: arch provides an optimized strncasecmp() function +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | TODO | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/tracehook/arch-support.txt b/Documentation/features/tracehook/arch-support.txt new file mode 100644 index 000000000000..05e9de795733 --- /dev/null +++ b/Documentation/features/tracehook/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: tracehook +# Kconfig: HAVE_ARCH_TRACEHOOK +# description: arch supports tracehook (ptrace) register handling APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | ok | + | c6x: | ok | + | cris: | TODO | + | frv: | ok | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | ok | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/uprobes/arch-support.txt b/Documentation/features/uprobes/arch-support.txt new file mode 100644 index 000000000000..7c633b846f65 --- /dev/null +++ b/Documentation/features/uprobes/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: uprobes +# Kconfig: ARCH_SUPPORTS_UPROBES +# description: arch supports live patched user probes +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/user-ret-profiler/arch-support.txt b/Documentation/features/user-ret-profiler/arch-support.txt new file mode 100644 index 000000000000..6ba4d07ff641 --- /dev/null +++ b/Documentation/features/user-ret-profiler/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: user-ret-profiler +# Kconfig: HAVE_USER_RETURN_NOTIFIER +# description: arch supports user-space return from system call profiler +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/virt-cpuacct/arch-support.txt b/Documentation/features/virt-cpuacct/arch-support.txt new file mode 100644 index 000000000000..c9374d33b8ac --- /dev/null +++ b/Documentation/features/virt-cpuacct/arch-support.txt @@ -0,0 +1,39 @@ +# +# Feature name: virt-cpuacct +# Kconfig: HAVE_VIRT_CPU_ACCOUNTING || 64BIT +# description: arch supports precise virtual CPU time accounting +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- ^ permalink raw reply related [flat|nested] 46+ messages in thread
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ 2015-05-14 10:35 ` [PATCH v2] " Ingo Molnar @ 2015-05-14 19:38 ` Andrew Morton 2015-05-14 19:59 ` Ingo Molnar [not found] ` <20150514123835.1bf436bc35d711f8dbf9bc0f-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> [not found] ` <20150514103544.GA7027-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 1 sibling, 2 replies; 46+ messages in thread From: Andrew Morton @ 2015-05-14 19:38 UTC (permalink / raw) To: Ingo Molnar Cc: Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch > Add arch support matrices for more than 40 generic kernel features > that need per architecture support. > > Each feature has its own directory under Documentation/features/feature_name/, > and the arch-support.txt file shows its current arch porting status. > > For example, lockdep support is shown the following way: > > triton:~/tip> cat Documentation/features/lockdep/arch-support.txt > # > # Feature name: lockdep > # Kconfig: LOCKDEP_SUPPORT > # description: arch supports the runtime locking correctness debug facility > # > ----------------------- > | arch |status| > ----------------------- > ... > | xtensa: | ok | > ----------------------- > > For generic kernel features that need architecture support, the > arch-support.txt file in each feature directory shows the arch > support matrix, for all upstream Linux architectures. > > The meaning of entries in the tables is: > > | ok | # feature supported by the architecture > |TODO| # feature not yet supported by the architecture > | .. | # feature cannot be supported by the hardware Presumably there will be instances where the maintainer decides "we shall not implement that". > 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 would be nice to provide people with commit IDs to look at, but the IDs won't be known at the time the documentation file is created. We could provide patch titles. But still, let's not overdo it - get something in there, see how well it works, evolve it over time. I don't think we've heard from any (non-x86) arch maintainers? Do they consider this useful at all? Poke. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ 2015-05-14 19:38 ` Andrew Morton @ 2015-05-14 19:59 ` Ingo Molnar [not found] ` <20150514195925.GA27570-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-05-15 9:37 ` Ingo Molnar [not found] ` <20150514123835.1bf436bc35d711f8dbf9bc0f-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 1 sibling, 2 replies; 46+ messages in thread From: Ingo Molnar @ 2015-05-14 19:59 UTC (permalink / raw) To: Andrew Morton Cc: Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch * Andrew Morton <akpm@linux-foundation.org> wrote: > > Add arch support matrices for more than 40 generic kernel features > > that need per architecture support. > > > > Each feature has its own directory under Documentation/features/feature_name/, > > and the arch-support.txt file shows its current arch porting status. > > > > For example, lockdep support is shown the following way: > > > > triton:~/tip> cat Documentation/features/lockdep/arch-support.txt > > # > > # Feature name: lockdep > > # Kconfig: LOCKDEP_SUPPORT > > # description: arch supports the runtime locking correctness debug facility > > # > > ----------------------- > > | arch |status| > > ----------------------- > > ... > > | xtensa: | ok | > > ----------------------- > > > > For generic kernel features that need architecture support, the > > arch-support.txt file in each feature directory shows the arch > > support matrix, for all upstream Linux architectures. > > > > The meaning of entries in the tables is: > > > > | ok | # feature supported by the architecture > > |TODO| # feature not yet supported by the architecture > > | .. | # feature cannot be supported by the hardware > > Presumably there will be instances where the maintainer decides "we > shall not implement that". So I tried to limit the list of features to those that represent the overall progress of the generic kernel and are recommended on all architectures that are able to support it. There are certainly features that are opt-in. We could still list them here as well, because this is a convenient central index, but would mark them not with 'TODO' but with a low-key '..' marking? On the other end of the spectrum we could also define 'must have' features for new architectures. For example modern-timekeeping and clockevents. The patch that adds a new architecture to all these files would give us a good overview about how complete an initial port is. > > 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>/ > It would be nice to provide people with commit IDs to look at, but > the IDs won't be known at the time the documentation file is > created. We could provide patch titles. Ok. > But still, let's not overdo it - get something in there, see how > well it works, evolve it over time. Yeah. > I don't think we've heard from any (non-x86) arch maintainers? Do > they consider this useful at all? Poke. I think we god some feedback from the PowerPC side, but yeah, would be nice to get more reactions. Thanks, Ingo ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150514195925.GA27570-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <20150514195925.GA27570-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-05-14 22:33 ` Stephen Rothwell [not found] ` <20150515083334.535ad43e-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org> 0 siblings, 1 reply; 46+ messages in thread From: Stephen Rothwell @ 2015-05-14 22:33 UTC (permalink / raw) To: Ingo Molnar Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA, Yoshinori Sato [-- Attachment #1: Type: text/plain, Size: 537 bytes --] Hi Ingo, Thanks for this. The concept is certainly good. On Thu, 14 May 2015 21:59:25 +0200 Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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. -- Cheers, Stephen Rothwell sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150515083334.535ad43e-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org>]
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <20150515083334.535ad43e-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org> @ 2015-05-15 7:38 ` Ingo Molnar [not found] ` <20150515073805.GA14993-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 46+ messages in thread From: Ingo Molnar @ 2015-05-15 7:38 UTC (permalink / raw) To: Stephen Rothwell Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA, Yoshinori Sato * Stephen Rothwell <sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org> wrote: > Hi Ingo, > > Thanks for this. The concept is certainly good. > > On Thu, 14 May 2015 21:59:25 +0200 Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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 | clockevents: | h8300: | ok | cmpxchg-local: | h8300: | TODO | context-tracking: | h8300: | TODO | dma-api-debug: | h8300: | TODO | dma-contiguous: | h8300: | TODO | dma_map_attrs: | h8300: | ok | ELF-ASLR: | h8300: | TODO | gcov-profile-all: | h8300: | TODO | generic-idle-thread: | h8300: | TODO | huge-vmap: | h8300: | TODO | ioremap_prot: | h8300: | TODO | irq-time-acct: | h8300: | TODO | jump-labels: | h8300: | TODO | KASAN: | h8300: | TODO | kgdb: | h8300: | TODO | kprobes: | h8300: | TODO | kprobes-event: | h8300: | TODO | kprobes-on-ftrace: | h8300: | TODO | kretprobes: | h8300: | TODO | lockdep: | h8300: | TODO | modern-timekeeping: | h8300: | ok | numa-balancing: | h8300: | .. | numa-memblock: | h8300: | .. | optprobes: | h8300: | TODO | perf-regs: | h8300: | TODO | perf-stackdump: | h8300: | TODO | PG_uncached: | h8300: | TODO | pmdp_splitting_flush: | h8300: | TODO | pte_special: | h8300: | TODO | queued-rwlocks: | h8300: | TODO | queued-spinlocks: | h8300: | TODO | rwsem-optimized: | h8300: | ok | seccomp-filter: | h8300: | TODO | sg-chain: | h8300: | TODO | stackprotector: | h8300: | TODO | strncasecmp: | h8300: | TODO | THP: | h8300: | .. | tracehook: | h8300: | TODO | uprobes: | h8300: | TODO | user-ret-profiler: | h8300: | TODO | virt-cpuacct: | h8300: | TODO | Thanks, Ingo ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150515073805.GA14993-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <20150515073805.GA14993-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-05-15 7:51 ` Ingo Molnar 0 siblings, 0 replies; 46+ messages in thread From: Ingo Molnar @ 2015-05-15 7:51 UTC (permalink / raw) To: Stephen Rothwell Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA, Yoshinori Sato * Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote: > > * Stephen Rothwell <sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org> wrote: > > > Hi Ingo, > > > > Thanks for this. The concept is certainly good. > > > > On Thu, 14 May 2015 21:59:25 +0200 Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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 ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ 2015-05-14 19:59 ` Ingo Molnar [not found] ` <20150514195925.GA27570-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-05-15 9:37 ` Ingo Molnar 1 sibling, 0 replies; 46+ messages in thread From: Ingo Molnar @ 2015-05-15 9:37 UTC (permalink / raw) To: Andrew Morton Cc: Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch * 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 ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150514123835.1bf436bc35d711f8dbf9bc0f-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>]
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <20150514123835.1bf436bc35d711f8dbf9bc0f-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> @ 2015-05-14 20:34 ` Richard Weinberger 2015-05-14 22:57 ` Michael Ellerman 1 sibling, 0 replies; 46+ messages in thread From: Richard Weinberger @ 2015-05-14 20:34 UTC (permalink / raw) To: Andrew Morton Cc: Ingo Molnar, Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, open list:ABI/API, LKML, x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, Linux-Arch On Thu, May 14, 2015 at 9:38 PM, Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> wrote: > I don't think we've heard from any (non-x86) arch maintainers? Do they > consider this useful at all? Poke. I like it. :-) -- Thanks, //richard ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <20150514123835.1bf436bc35d711f8dbf9bc0f-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 2015-05-14 20:34 ` Richard Weinberger @ 2015-05-14 22:57 ` Michael Ellerman [not found] ` <1431644248.2981.1.camel-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org> 1 sibling, 1 reply; 46+ messages in thread From: Michael Ellerman @ 2015-05-14 22:57 UTC (permalink / raw) To: Andrew Morton Cc: Ingo Molnar, Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA On Thu, 2015-05-14 at 12:38 -0700, Andrew Morton wrote: > > Add arch support matrices for more than 40 generic kernel features > > that need per architecture support. > > > > Each feature has its own directory under Documentation/features/feature_name/, > > and the arch-support.txt file shows its current arch porting status. > > It would be nice to provide people with commit IDs to look at, but the > IDs won't be known at the time the documentation file is created. We > could provide patch titles. +1 on patch titles. > But still, let's not overdo it - get something in there, see how well > it works, evolve it over time. > > I don't think we've heard from any (non-x86) arch maintainers? Do they > consider this useful at all? Poke. Yes it is. I have my own version I've cobbled together for powerpc, but this is much better. I'd like to see more description in the individual files of what the feature is, and preferably some pointers to what's needed to implement it. The kconfig for HAVE_ARCH_SECCOMP_FILTER is a good example of what I mean. I realise retrofitting that for all these existing features is quite time consuming, but for new features hopefully the bar can be raised a little in terms of that description. cheers ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <1431644248.2981.1.camel-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org>]
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <1431644248.2981.1.camel-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org> @ 2015-05-15 7:49 ` Ingo Molnar 2015-05-18 1:37 ` Michael Ellerman 0 siblings, 1 reply; 46+ messages in thread From: Ingo Molnar @ 2015-05-15 7:49 UTC (permalink / raw) To: Michael Ellerman Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA * Michael Ellerman <mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org> wrote: > On Thu, 2015-05-14 at 12:38 -0700, Andrew Morton wrote: > > > Add arch support matrices for more than 40 generic kernel features > > > that need per architecture support. > > > > > > Each feature has its own directory under Documentation/features/feature_name/, > > > and the arch-support.txt file shows its current arch porting status. > > > > It would be nice to provide people with commit IDs to look at, but the > > IDs won't be known at the time the documentation file is created. We > > could provide patch titles. > > +1 on patch titles. Ok, I'll solve this. > > But still, let's not overdo it - get something in there, see how > > well it works, evolve it over time. > > > > I don't think we've heard from any (non-x86) arch maintainers? Do > > they consider this useful at all? Poke. > > Yes it is. I have my own version I've cobbled together for powerpc, > but this is much better. Please double check the PowerPC support matrix for correctness (if you haven't yet): # # Kernel feature support matrix of architecture 'powerpc': # arch-tick-broadcast: | ok | ARCH_HAS_TICK_BROADCAST # arch provides tick_broadcast() BPF-JIT: | ok | 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: | ok | HAVE_CONTEXT_TRACKING # arch supports context tracking for NO_HZ_FULL dma-api-debug: | ok | 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: | ok | ARCH_HAS_ELF_RANDOMIZE # arch randomizes the stack, heap and binary images of ELF binaries gcov-profile-all: | ok | ARCH_HAS_GCOV_PROFILE_ALL # arch supports whole-kernel GCOV code coverage profiling generic-idle-thread: | ok | 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: | ok | HAVE_IOREMAP_PROT # arch has ioremap_prot() irq-time-acct: | ok | HAVE_IRQ_TIME_ACCOUNTING # arch supports precise IRQ time accounting jump-labels: | ok | HAVE_ARCH_JUMP_LABEL # arch supports live patched high efficiency branches KASAN: | TODO | HAVE_ARCH_KASAN # arch supports the KASAN runtime memory checker kgdb: | ok | HAVE_ARCH_KGDB # arch supports the kGDB kernel debugger kprobes: | ok | HAVE_KPROBES # arch supports live patched kernel probe kprobes-event: | ok | 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: | ok | HAVE_KRETPROBES # arch supports kernel function-return probes lockdep: | ok | 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: | ok | ARCH_SUPPORTS_NUMA_BALANCING && 64BIT && NUMA # arch supports NUMA balancing numa-memblock: | ok | 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: | ok | #define __HAVE_ARCH_PMDP_SPLITTING_FLUSH # arch supports the pmdp_splitting_flush() VM API pte_special: | ok | #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: | ok | 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: | ok | HAVE_ARCH_TRANSPARENT_HUGEPAGE && 64BIT # arch supports transparent hugepages tracehook: | ok | HAVE_ARCH_TRACEHOOK # arch supports tracehook (ptrace) register handling APIs uprobes: | ok | 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: | ok | HAVE_VIRT_CPU_ACCOUNTING || 64BIT # arch supports precise virtual CPU time accounting > I'd like to see more description in the individual files of what the > feature is, and preferably some pointers to what's needed to > implement it. Yeah, so I tried to add a short description to the feature file itself, and for many of these features that single sentence is the only documentation we have in the kernel source ... More comprehensive description can be added both to the Kconfig and to the feature description as well, by the maintainers of the individual features. > The kconfig for HAVE_ARCH_SECCOMP_FILTER is a good example of what I > mean. Yes, that's a positive example. It's the exception. > I realise retrofitting that for all these existing features is quite > time consuming, but for new features hopefully the bar can be raised > a little in terms of that description. Yeah. Thanks, Ingo ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ 2015-05-15 7:49 ` Ingo Molnar @ 2015-05-18 1:37 ` Michael Ellerman [not found] ` <1431913033.13218.2.camel-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org> 0 siblings, 1 reply; 46+ messages in thread From: Michael Ellerman @ 2015-05-18 1:37 UTC (permalink / raw) To: Ingo Molnar Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch On Fri, 2015-05-15 at 09:49 +0200, Ingo Molnar wrote: > * Michael Ellerman <mpe@ellerman.id.au> wrote: > > > On Thu, 2015-05-14 at 12:38 -0700, Andrew Morton wrote: > > > > Add arch support matrices for more than 40 generic kernel features > > > > that need per architecture support. > > > > > > > > Each feature has its own directory under Documentation/features/feature_name/, > > > > and the arch-support.txt file shows its current arch porting status. > > > > > > It would be nice to provide people with commit IDs to look at, but the > > > IDs won't be known at the time the documentation file is created. We > > > could provide patch titles. > > > > +1 on patch titles. > > Ok, I'll solve this. Thanks. > > > But still, let's not overdo it - get something in there, see how > > > well it works, evolve it over time. > > > > > > I don't think we've heard from any (non-x86) arch maintainers? Do > > > they consider this useful at all? Poke. > > > > Yes it is. I have my own version I've cobbled together for powerpc, > > but this is much better. > > Please double check the PowerPC support matrix for correctness (if you > haven't yet): It looks good except for: > rwsem-optimized: | ok | Optimized asm/rwsem.h # arch provides optimized rwsem APIs I don't see an rwsem.h in powerpc anywhere? And this is correct but a bit confusing: > irq-time-acct: | ok | HAVE_IRQ_TIME_ACCOUNTING # arch supports precise IRQ time accounting I think you and Paul agreed it's "ok" on powerpc because we have VIRT_CPU_ACCOUNTING instead, but that's not obvious. > > I'd like to see more description in the individual files of what the > > feature is, and preferably some pointers to what's needed to > > implement it. > > Yeah, so I tried to add a short description to the feature file > itself, and for many of these features that single sentence is the > only documentation we have in the kernel source ... Yep, so that's better than what we had, and we can always improve it. cheers ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <1431913033.13218.2.camel-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org>]
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <1431913033.13218.2.camel-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org> @ 2015-05-18 8:54 ` Ingo Molnar [not found] ` <20150518085423.GA24944-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 46+ messages in thread From: Ingo Molnar @ 2015-05-18 8:54 UTC (permalink / raw) To: Michael Ellerman Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA * Michael Ellerman <mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org> wrote: > > > Yes it is. I have my own version I've cobbled together for > > > powerpc, but this is much better. > > > > Please double check the PowerPC support matrix for correctness (if > > you haven't yet): > > It looks good except for: > > > rwsem-optimized: | ok | Optimized asm/rwsem.h # arch provides optimized rwsem APIs > > I don't see an rwsem.h in powerpc anywhere? Indeed, that slipped through. I fixed it to: triton:~/tip> cat Documentation/features/locking/rwsem-optimized/arch-support.txt # # Feature name: rwsem-optimized # Kconfig: Optimized asm/rwsem.h # description: arch provides optimized rwsem APIs # ----------------------- | arch |status| ----------------------- | alpha: | ok | | arc: | TODO | | arm: | TODO | | arm64: | TODO | | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | | frv: | TODO | | hexagon: | TODO | | ia64: | ok | | m32r: | TODO | | m68k: | TODO | | metag: | TODO | | microblaze: | TODO | | mips: | TODO | | mn10300: | TODO | | nios2: | TODO | | openrisc: | TODO | | parisc: | TODO | | powerpc: | TODO | | s390: | ok | | score: | TODO | | sh: | ok | | sparc: | ok | | tile: | TODO | | um: | TODO | | unicore32: | TODO | | x86: | ok | | xtensa: | ok | ----------------------- > And this is correct but a bit confusing: > > > irq-time-acct: | ok | HAVE_IRQ_TIME_ACCOUNTING # arch supports precise IRQ time accounting > > I think you and Paul agreed it's "ok" on powerpc because we have > VIRT_CPU_ACCOUNTING instead, but that's not obvious. Ok, so I modified it to print '..' instead: triton:~/tip> cat Documentation/features/time/irq-time-acct/arch-support.txt # # Feature name: irq-time-acct # Kconfig: HAVE_IRQ_TIME_ACCOUNTING # description: arch supports precise IRQ time accounting # ----------------------- | arch |status| ----------------------- | alpha: | .. | | arc: | TODO | | arm: | ok | | arm64: | .. | | avr32: | TODO | | blackfin: | TODO | | c6x: | TODO | | cris: | TODO | | frv: | TODO | | hexagon: | TODO | | ia64: | .. | | m32r: | TODO | | m68k: | TODO | | metag: | TODO | | microblaze: | TODO | | mips: | ok | | mn10300: | TODO | | nios2: | TODO | | openrisc: | TODO | | parisc: | .. | | powerpc: | .. | | s390: | .. | | score: | TODO | | sh: | TODO | | sparc: | .. | | tile: | .. | | um: | TODO | | unicore32: | TODO | | x86: | ok | | xtensa: | ok | ----------------------- i.e. it's not marked as TODO, but not as supported either which would be misleading. Thanks, Ingo ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150518085423.GA24944-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <20150518085423.GA24944-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-05-19 2:02 ` Michael Ellerman 0 siblings, 0 replies; 46+ messages in thread From: Michael Ellerman @ 2015-05-19 2:02 UTC (permalink / raw) To: Ingo Molnar Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA On Mon, 2015-05-18 at 10:54 +0200, Ingo Molnar wrote: > * Michael Ellerman <mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org> wrote: > > > > > Yes it is. I have my own version I've cobbled together for > > > > powerpc, but this is much better. > > > > > > Please double check the PowerPC support matrix for correctness (if > > > you haven't yet): > > > > It looks good except for: > > > > > rwsem-optimized: | ok | Optimized asm/rwsem.h # arch provides optimized rwsem APIs > > > > I don't see an rwsem.h in powerpc anywhere? > > Indeed, that slipped through. I fixed it to: > > triton:~/tip> cat Documentation/features/locking/rwsem-optimized/arch-support.txt > # > # Feature name: rwsem-optimized > # Kconfig: Optimized asm/rwsem.h > # description: arch provides optimized rwsem APIs > # > | powerpc: | TODO | > > triton:~/tip> cat Documentation/features/time/irq-time-acct/arch-support.txt > # > # Feature name: irq-time-acct > # Kconfig: HAVE_IRQ_TIME_ACCOUNTING > # description: arch supports precise IRQ time accounting > # > | powerpc: | .. | > > i.e. it's not marked as TODO, but not as supported either which would > be misleading. Great thanks. cheers ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150514103544.GA7027-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <20150514103544.GA7027-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-05-22 15:49 ` Jonathan Corbet [not found] ` <20150522094931.78a43421-T1hC0tSOHrs@public.gmane.org> 0 siblings, 1 reply; 46+ messages in thread From: Jonathan Corbet @ 2015-05-22 15:49 UTC (permalink / raw) To: Ingo Molnar Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA On Thu, 14 May 2015 12:35:44 +0200 Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote: > Updated patch attached. This seems to have slowed down a bit; I've taken the liberty of pulling it into the docs tree. It can be replaced, though, should you decide to completely rework the format again...:) Thanks, jon ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150522094931.78a43421-T1hC0tSOHrs@public.gmane.org>]
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ [not found] ` <20150522094931.78a43421-T1hC0tSOHrs@public.gmane.org> @ 2015-05-23 8:07 ` Ingo Molnar 2015-05-24 18:44 ` Jonathan Corbet 0 siblings, 1 reply; 46+ messages in thread From: Ingo Molnar @ 2015-05-23 8:07 UTC (permalink / raw) To: Jonathan Corbet Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA * Jonathan Corbet <corbet-T1hC0tSOHrs@public.gmane.org> wrote: > On Thu, 14 May 2015 12:35:44 +0200 > Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote: > > > Updated patch attached. > > This seems to have slowed down a bit; I've taken the liberty of > pulling it into the docs tree. [...] Please don't, I've got a different structure for it, so that the Git log becomes a lot more usable. I'll post it after the weekend. Thanks, Ingo ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCH v2] Documentation/arch: Add kernel feature descriptions and arch support status under Documentation/features/ 2015-05-23 8:07 ` Ingo Molnar @ 2015-05-24 18:44 ` Jonathan Corbet [not found] ` <20150524124447.0c395540-T1hC0tSOHrs@public.gmane.org> 0 siblings, 1 reply; 46+ messages in thread From: Jonathan Corbet @ 2015-05-24 18:44 UTC (permalink / raw) To: Ingo Molnar Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch On Sat, 23 May 2015 10:07:05 +0200 Ingo Molnar <mingo@kernel.org> wrote: > > This seems to have slowed down a bit; I've taken the liberty of > > pulling it into the docs tree. [...] > > Please don't, I've got a different structure for it, so that the Git > log becomes a lot more usable. I'll post it after the weekend. OK, fine, dropped. Thanks, jon ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150524124447.0c395540-T1hC0tSOHrs@public.gmane.org>]
* [GIT PULL] Documentation/features: Add kernel feature descriptions and arch support status files under Documentation/features/ [not found] ` <20150524124447.0c395540-T1hC0tSOHrs@public.gmane.org> @ 2015-06-03 11:03 ` Ingo Molnar [not found] ` <20150603110355.GA12079-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 46+ messages in thread From: Ingo Molnar @ 2015-06-03 11:03 UTC (permalink / raw) To: Jonathan Corbet Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA, Peter Zijlstra * Jonathan Corbet <corbet-T1hC0tSOHrs@public.gmane.org> wrote: > On Sat, 23 May 2015 10:07:05 +0200 > Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote: > > > > This seems to have slowed down a bit; I've taken the liberty of > > > pulling it into the docs tree. [...] > > > > Please don't, I've got a different structure for it, so that the Git > > log becomes a lot more usable. I'll post it after the weekend. > > OK, fine, dropped. Thanks! A week late but I managed to complete it all and moved it into Git, for better structure and easy pulling. Changes relative to the last submission: - Added higher level subsystem directories to collect features by subsystem: triton:~/tip> ls Documentation/features/ arch-support.txt core debug io lib list-arch.sh locking perf sched seccomp time vm each subsystem directory contains the feature directories. For example locking has: triton:~/tip> ls Documentation/features/locking/ cmpxchg-local lockdep queued-rwlocks queued-spinlocks rwsem-optimized It's all pretty straightforward to navigate. Advantages are better visualization, plus git log is able to list changes per subsystem. - Prettified the visualization some more. - Improved/corrected the support matrices based on feedback to earlier submissions. - Updated the support matrices to today's linux-next, so that by the time this shows up in upstream in the next merge window it's really recent. Most notably there's a new architecture in linux-next (h8300). This structure should address all feedback that I got and should minimize the maintenance overhead (chance of conflicts). Please pull it all from: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/documentation # HEAD: ce2073b138515f2da6bebf62277c8d069d1c9589 Documentation/features: Explain kernel feature descriptions and add visualization script The -tip commits should appear soon as well, if anyone would like to take a look at the individual patches. There's also a combo patch attached to this mail. Thanks! Ingo ------------------> Ingo Molnar (44): Documentation/features/vm: Add feature description and arch support status file for 'numa-memblock' Documentation/features/vm: Add feature description and arch support status file for 'PG_uncached' Documentation/features/lib: Add feature description and arch support status file for 'strncasecmp' Documentation/features/io: Add feature description and arch support status file for 'sg-chain' Documentation/features/vm: Add feature description and arch support status file for 'huge-vmap' Documentation/features/vm: Add feature description and arch support status file for 'pte_special' Documentation/features/vm: Add feature description and arch support status file for 'pmdp_splitting_flush' Documentation/features/debug: Add feature description and arch support status file for 'KASAN' Documentation/features/time: Add feature description and arch support status file for 'modern-timekeeping' Documentation/features/time: Add feature description and arch support status file for 'virt-cpuacct' Documentation/features/time: Add feature description and arch support status file for 'irq-time-acct' Documentation/features/vm: Add feature description and arch support status file for 'THP' Documentation/features/locking: Add feature description and arch support status file for 'rwsem-optimized' Documentation/features/sched: Add feature description and arch support status file for 'numa-balancing' Documentation/features/io: Add feature description and arch support status file for 'dma-contiguous' Documentation/features/io: Add feature description and arch support status file for 'dma_map_attrs' Documentation/features/core: Add feature description and arch support status file for 'tracehook' Documentation/features/vm: Add feature description and arch support status file for 'ioremap_prot' Documentation/features/locking: Add feature description and arch support status file for 'lockdep' Documentation/features/debug: Add feature description and arch support status file for 'stackprotector' Documentation/features/core: Add feature description and arch support status file for 'jump-labels' Documentation/features/seccomp: Add feature description and arch support status file for 'seccomp-filter' Documentation/features/time: Add feature description and arch support status file for 'context-tracking' Documentation/features/debug: Add feature description and arch support status file for 'kgdb' Documentation/features/time: Add feature description and arch support status file for 'clockevents' Documentation/features/vm: Add feature description and arch support status file for 'ELF-ASLR' Documentation/features/time: Add feature description and arch support status file for 'arch-tick-broadcast' Documentation/features/debug: Add feature description and arch support status file for 'kprobes' Documentation/features/debug: Add feature description and arch support status file for 'optprobes' Documentation/features/debug: Add feature description and arch support status file for 'kprobes-on-ftrace' Documentation/features/debug: Add feature description and arch support status file for 'uprobes' Documentation/features/debug: Add feature description and arch support status file for 'kretprobes' Documentation/features/debug: Add feature description and arch support status file for 'user-ret-profiler' Documentation/features/core: Add feature description and arch support status file for 'generic-idle-thread' Documentation/features/perf: Add feature description and arch support status file for 'kprobes-event' Documentation/features/io: Add feature description and arch support status file for 'dma-api-debug' Documentation/features/perf: Add feature description and arch support status file for 'perf-regs' Documentation/features/perf: Add feature description and arch support status file for 'perf-stackdump' Documentation/features/locking: Add feature description and arch support status file for 'cmpxchg-local' Documentation/features/debug: Add feature description and arch support status file for 'gcov-profile-all' Documentation/features/locking: Add feature description and arch support status file for 'queued-spinlocks' Documentation/features/locking: Add feature description and arch support status file for 'queued-rwlocks' Documentation/features/core: Add feature description and arch support status file for 'BPF-JIT' Documentation/features: Explain kernel feature descriptions and add visualization script Documentation/features/arch-support.txt | 11 ++++++ .../features/core/BPF-JIT/arch-support.txt | 40 ++++++++++++++++++++++ .../core/generic-idle-thread/arch-support.txt | 40 ++++++++++++++++++++++ .../features/core/jump-labels/arch-support.txt | 40 ++++++++++++++++++++++ .../features/core/tracehook/arch-support.txt | 40 ++++++++++++++++++++++ .../features/debug/KASAN/arch-support.txt | 40 ++++++++++++++++++++++ .../debug/gcov-profile-all/arch-support.txt | 40 ++++++++++++++++++++++ Documentation/features/debug/kgdb/arch-support.txt | 40 ++++++++++++++++++++++ .../debug/kprobes-on-ftrace/arch-support.txt | 40 ++++++++++++++++++++++ .../features/debug/kprobes/arch-support.txt | 40 ++++++++++++++++++++++ .../features/debug/kretprobes/arch-support.txt | 40 ++++++++++++++++++++++ .../features/debug/optprobes/arch-support.txt | 40 ++++++++++++++++++++++ .../features/debug/stackprotector/arch-support.txt | 40 ++++++++++++++++++++++ .../features/debug/uprobes/arch-support.txt | 40 ++++++++++++++++++++++ .../debug/user-ret-profiler/arch-support.txt | 40 ++++++++++++++++++++++ .../features/io/dma-api-debug/arch-support.txt | 40 ++++++++++++++++++++++ .../features/io/dma-contiguous/arch-support.txt | 40 ++++++++++++++++++++++ .../features/io/dma_map_attrs/arch-support.txt | 40 ++++++++++++++++++++++ .../features/io/sg-chain/arch-support.txt | 40 ++++++++++++++++++++++ .../features/lib/strncasecmp/arch-support.txt | 40 ++++++++++++++++++++++ Documentation/features/list-arch.sh | 24 +++++++++++++ .../locking/cmpxchg-local/arch-support.txt | 40 ++++++++++++++++++++++ .../features/locking/lockdep/arch-support.txt | 40 ++++++++++++++++++++++ .../locking/queued-rwlocks/arch-support.txt | 40 ++++++++++++++++++++++ .../locking/queued-spinlocks/arch-support.txt | 40 ++++++++++++++++++++++ .../locking/rwsem-optimized/arch-support.txt | 40 ++++++++++++++++++++++ .../features/perf/kprobes-event/arch-support.txt | 40 ++++++++++++++++++++++ .../features/perf/perf-regs/arch-support.txt | 40 ++++++++++++++++++++++ .../features/perf/perf-stackdump/arch-support.txt | 40 ++++++++++++++++++++++ .../features/sched/numa-balancing/arch-support.txt | 40 ++++++++++++++++++++++ .../seccomp/seccomp-filter/arch-support.txt | 40 ++++++++++++++++++++++ .../time/arch-tick-broadcast/arch-support.txt | 40 ++++++++++++++++++++++ .../features/time/clockevents/arch-support.txt | 40 ++++++++++++++++++++++ .../time/context-tracking/arch-support.txt | 40 ++++++++++++++++++++++ .../features/time/irq-time-acct/arch-support.txt | 40 ++++++++++++++++++++++ .../time/modern-timekeeping/arch-support.txt | 40 ++++++++++++++++++++++ .../features/time/virt-cpuacct/arch-support.txt | 40 ++++++++++++++++++++++ .../features/vm/ELF-ASLR/arch-support.txt | 40 ++++++++++++++++++++++ .../features/vm/PG_uncached/arch-support.txt | 40 ++++++++++++++++++++++ Documentation/features/vm/THP/arch-support.txt | 40 ++++++++++++++++++++++ .../features/vm/huge-vmap/arch-support.txt | 40 ++++++++++++++++++++++ .../features/vm/ioremap_prot/arch-support.txt | 40 ++++++++++++++++++++++ .../features/vm/numa-memblock/arch-support.txt | 40 ++++++++++++++++++++++ .../vm/pmdp_splitting_flush/arch-support.txt | 40 ++++++++++++++++++++++ .../features/vm/pte_special/arch-support.txt | 40 ++++++++++++++++++++++ 45 files changed, 1755 insertions(+) create mode 100644 Documentation/features/arch-support.txt create mode 100644 Documentation/features/core/BPF-JIT/arch-support.txt create mode 100644 Documentation/features/core/generic-idle-thread/arch-support.txt create mode 100644 Documentation/features/core/jump-labels/arch-support.txt create mode 100644 Documentation/features/core/tracehook/arch-support.txt create mode 100644 Documentation/features/debug/KASAN/arch-support.txt create mode 100644 Documentation/features/debug/gcov-profile-all/arch-support.txt create mode 100644 Documentation/features/debug/kgdb/arch-support.txt create mode 100644 Documentation/features/debug/kprobes-on-ftrace/arch-support.txt create mode 100644 Documentation/features/debug/kprobes/arch-support.txt create mode 100644 Documentation/features/debug/kretprobes/arch-support.txt create mode 100644 Documentation/features/debug/optprobes/arch-support.txt create mode 100644 Documentation/features/debug/stackprotector/arch-support.txt create mode 100644 Documentation/features/debug/uprobes/arch-support.txt create mode 100644 Documentation/features/debug/user-ret-profiler/arch-support.txt create mode 100644 Documentation/features/io/dma-api-debug/arch-support.txt create mode 100644 Documentation/features/io/dma-contiguous/arch-support.txt create mode 100644 Documentation/features/io/dma_map_attrs/arch-support.txt create mode 100644 Documentation/features/io/sg-chain/arch-support.txt create mode 100644 Documentation/features/lib/strncasecmp/arch-support.txt create mode 100644 Documentation/features/list-arch.sh create mode 100644 Documentation/features/locking/cmpxchg-local/arch-support.txt create mode 100644 Documentation/features/locking/lockdep/arch-support.txt create mode 100644 Documentation/features/locking/queued-rwlocks/arch-support.txt create mode 100644 Documentation/features/locking/queued-spinlocks/arch-support.txt create mode 100644 Documentation/features/locking/rwsem-optimized/arch-support.txt create mode 100644 Documentation/features/perf/kprobes-event/arch-support.txt create mode 100644 Documentation/features/perf/perf-regs/arch-support.txt create mode 100644 Documentation/features/perf/perf-stackdump/arch-support.txt create mode 100644 Documentation/features/sched/numa-balancing/arch-support.txt create mode 100644 Documentation/features/seccomp/seccomp-filter/arch-support.txt create mode 100644 Documentation/features/time/arch-tick-broadcast/arch-support.txt create mode 100644 Documentation/features/time/clockevents/arch-support.txt create mode 100644 Documentation/features/time/context-tracking/arch-support.txt create mode 100644 Documentation/features/time/irq-time-acct/arch-support.txt create mode 100644 Documentation/features/time/modern-timekeeping/arch-support.txt create mode 100644 Documentation/features/time/virt-cpuacct/arch-support.txt create mode 100644 Documentation/features/vm/ELF-ASLR/arch-support.txt create mode 100644 Documentation/features/vm/PG_uncached/arch-support.txt create mode 100644 Documentation/features/vm/THP/arch-support.txt create mode 100644 Documentation/features/vm/huge-vmap/arch-support.txt create mode 100644 Documentation/features/vm/ioremap_prot/arch-support.txt create mode 100644 Documentation/features/vm/numa-memblock/arch-support.txt create mode 100644 Documentation/features/vm/pmdp_splitting_flush/arch-support.txt create mode 100644 Documentation/features/vm/pte_special/arch-support.txt diff --git a/Documentation/features/arch-support.txt b/Documentation/features/arch-support.txt new file mode 100644 index 000000000000..d22a1095e661 --- /dev/null +++ b/Documentation/features/arch-support.txt @@ -0,0 +1,11 @@ + +For generic kernel features that need architecture support, the +arch-support.txt file in each feature directory shows the arch +support matrix, for all upstream Linux architectures. + +The meaning of entries in the tables is: + + | ok | # feature supported by the architecture + |TODO| # feature not yet supported by the architecture + | .. | # feature cannot be supported by the hardware + diff --git a/Documentation/features/core/BPF-JIT/arch-support.txt b/Documentation/features/core/BPF-JIT/arch-support.txt new file mode 100644 index 000000000000..c1b4f917238f --- /dev/null +++ b/Documentation/features/core/BPF-JIT/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: BPF-JIT +# Kconfig: HAVE_BPF_JIT +# description: arch supports BPF JIT optimizations +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/core/generic-idle-thread/arch-support.txt b/Documentation/features/core/generic-idle-thread/arch-support.txt new file mode 100644 index 000000000000..6d930fcbe519 --- /dev/null +++ b/Documentation/features/core/generic-idle-thread/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: generic-idle-thread +# Kconfig: GENERIC_SMP_IDLE_THREAD +# description: arch makes use of the generic SMP idle thread facility +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | ok | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/core/jump-labels/arch-support.txt b/Documentation/features/core/jump-labels/arch-support.txt new file mode 100644 index 000000000000..136868b636e6 --- /dev/null +++ b/Documentation/features/core/jump-labels/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: jump-labels +# Kconfig: HAVE_ARCH_JUMP_LABEL +# description: arch supports live patched, high efficiency branches +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/core/tracehook/arch-support.txt b/Documentation/features/core/tracehook/arch-support.txt new file mode 100644 index 000000000000..728061d763b1 --- /dev/null +++ b/Documentation/features/core/tracehook/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: tracehook +# Kconfig: HAVE_ARCH_TRACEHOOK +# description: arch supports tracehook (ptrace) register handling APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | ok | + | c6x: | ok | + | cris: | TODO | + | frv: | ok | + | h8300: | TODO | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | ok | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/debug/KASAN/arch-support.txt b/Documentation/features/debug/KASAN/arch-support.txt new file mode 100644 index 000000000000..14531da2fb54 --- /dev/null +++ b/Documentation/features/debug/KASAN/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: KASAN +# Kconfig: HAVE_ARCH_KASAN +# description: arch supports the KASAN runtime memory checker +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/debug/gcov-profile-all/arch-support.txt b/Documentation/features/debug/gcov-profile-all/arch-support.txt new file mode 100644 index 000000000000..38dea8eeba0a --- /dev/null +++ b/Documentation/features/debug/gcov-profile-all/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: gcov-profile-all +# Kconfig: ARCH_HAS_GCOV_PROFILE_ALL +# description: arch supports whole-kernel GCOV code coverage profiling +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/debug/kgdb/arch-support.txt b/Documentation/features/debug/kgdb/arch-support.txt new file mode 100644 index 000000000000..862e15d6f79e --- /dev/null +++ b/Documentation/features/debug/kgdb/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: kgdb +# Kconfig: HAVE_ARCH_KGDB +# description: arch supports the kGDB kernel debugger +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | ok | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt new file mode 100644 index 000000000000..40f44d041fb4 --- /dev/null +++ b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: kprobes-on-ftrace +# Kconfig: HAVE_KPROBES_ON_FTRACE +# description: arch supports combined kprobes and ftrace live patching +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/debug/kprobes/arch-support.txt b/Documentation/features/debug/kprobes/arch-support.txt new file mode 100644 index 000000000000..a44bfff6940b --- /dev/null +++ b/Documentation/features/debug/kprobes/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: kprobes +# Kconfig: HAVE_KPROBES +# description: arch supports live patched kernel probe +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | TODO | + | avr32: | ok | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/debug/kretprobes/arch-support.txt b/Documentation/features/debug/kretprobes/arch-support.txt new file mode 100644 index 000000000000..d87c1ce24204 --- /dev/null +++ b/Documentation/features/debug/kretprobes/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: kretprobes +# Kconfig: HAVE_KRETPROBES +# description: arch supports kernel function-return probes +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/debug/optprobes/arch-support.txt b/Documentation/features/debug/optprobes/arch-support.txt new file mode 100644 index 000000000000..b8999d8544ca --- /dev/null +++ b/Documentation/features/debug/optprobes/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: optprobes +# Kconfig: HAVE_OPTPROBES +# description: arch supports live patched optprobes +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/debug/stackprotector/arch-support.txt b/Documentation/features/debug/stackprotector/arch-support.txt new file mode 100644 index 000000000000..0fa423313409 --- /dev/null +++ b/Documentation/features/debug/stackprotector/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: stackprotector +# Kconfig: HAVE_CC_STACKPROTECTOR +# description: arch supports compiler driven stack overflow protection +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/debug/uprobes/arch-support.txt b/Documentation/features/debug/uprobes/arch-support.txt new file mode 100644 index 000000000000..4efe36c3ace9 --- /dev/null +++ b/Documentation/features/debug/uprobes/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: uprobes +# Kconfig: ARCH_SUPPORTS_UPROBES +# description: arch supports live patched user probes +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/debug/user-ret-profiler/arch-support.txt b/Documentation/features/debug/user-ret-profiler/arch-support.txt new file mode 100644 index 000000000000..44cc1ff3f603 --- /dev/null +++ b/Documentation/features/debug/user-ret-profiler/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: user-ret-profiler +# Kconfig: HAVE_USER_RETURN_NOTIFIER +# description: arch supports user-space return from system call profiler +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/io/dma-api-debug/arch-support.txt b/Documentation/features/io/dma-api-debug/arch-support.txt new file mode 100644 index 000000000000..4f4a3443b114 --- /dev/null +++ b/Documentation/features/io/dma-api-debug/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: dma-api-debug +# Kconfig: HAVE_DMA_API_DEBUG +# description: arch supports DMA debug facilities +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | ok | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/io/dma-contiguous/arch-support.txt b/Documentation/features/io/dma-contiguous/arch-support.txt new file mode 100644 index 000000000000..a97e8e3f4ebb --- /dev/null +++ b/Documentation/features/io/dma-contiguous/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: dma-contiguous +# Kconfig: HAVE_DMA_CONTIGUOUS +# description: arch supports the DMA CMA (continuous memory allocator) +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/io/dma_map_attrs/arch-support.txt b/Documentation/features/io/dma_map_attrs/arch-support.txt new file mode 100644 index 000000000000..51d0f1c02a3e --- /dev/null +++ b/Documentation/features/io/dma_map_attrs/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: dma_map_attrs +# Kconfig: HAVE_DMA_ATTRS +# description: arch provides dma_*map*_attrs() APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | ok | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | ok | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | ok | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/io/sg-chain/arch-support.txt b/Documentation/features/io/sg-chain/arch-support.txt new file mode 100644 index 000000000000..b9b675539b9d --- /dev/null +++ b/Documentation/features/io/sg-chain/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: sg-chain +# Kconfig: ARCH_HAS_SG_CHAIN +# description: arch supports chained scatter-gather lists +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/lib/strncasecmp/arch-support.txt b/Documentation/features/lib/strncasecmp/arch-support.txt new file mode 100644 index 000000000000..12b1c9358e57 --- /dev/null +++ b/Documentation/features/lib/strncasecmp/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: strncasecmp +# Kconfig: __HAVE_ARCH_STRNCASECMP +# description: arch provides an optimized strncasecmp() function +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | TODO | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/list-arch.sh b/Documentation/features/list-arch.sh new file mode 100644 index 000000000000..6065124a072f --- /dev/null +++ b/Documentation/features/list-arch.sh @@ -0,0 +1,24 @@ +# +# Small script that visualizes the kernel feature support status +# of an architecture. +# +# (If no arguments are given then it will print the host architecture's status.) +# + +ARCH=${1:-$(arch | sed 's/x86_64/x86/' | sed 's/i386/x86/')} + +cd $(dirname $0) +echo "#" +echo "# Kernel feature support matrix of the '$ARCH' architecture:" +echo "#" + +for F in */*/arch-support.txt; do + SUBSYS=$(echo $F | cut -d/ -f1) + N=$(grep -h "^# Feature name:" $F | cut -c25-) + C=$(grep -h "^# Kconfig:" $F | cut -c25-) + D=$(grep -h "^# description:" $F | cut -c25-) + S=$(grep -hw $ARCH $F | cut -d\| -f3) + + printf "%10s/%-22s:%s| %35s # %s\n" "$SUBSYS" "$N" "$S" "$C" "$D" +done + diff --git a/Documentation/features/locking/cmpxchg-local/arch-support.txt b/Documentation/features/locking/cmpxchg-local/arch-support.txt new file mode 100644 index 000000000000..d9c310889bc1 --- /dev/null +++ b/Documentation/features/locking/cmpxchg-local/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: cmpxchg-local +# Kconfig: HAVE_CMPXCHG_LOCAL +# description: arch supports the this_cpu_cmpxchg() API +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/locking/lockdep/arch-support.txt b/Documentation/features/locking/lockdep/arch-support.txt new file mode 100644 index 000000000000..cf90635bdcbb --- /dev/null +++ b/Documentation/features/locking/lockdep/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: lockdep +# Kconfig: LOCKDEP_SUPPORT +# description: arch supports the runtime locking correctness debug facility +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | ok | + | blackfin: | ok | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | ok | + | unicore32: | ok | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/locking/queued-rwlocks/arch-support.txt b/Documentation/features/locking/queued-rwlocks/arch-support.txt new file mode 100644 index 000000000000..68c3a5ddd9b9 --- /dev/null +++ b/Documentation/features/locking/queued-rwlocks/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: queued-rwlocks +# Kconfig: ARCH_USE_QUEUED_RWLOCKS +# description: arch supports queued rwlocks +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/locking/queued-spinlocks/arch-support.txt b/Documentation/features/locking/queued-spinlocks/arch-support.txt new file mode 100644 index 000000000000..e973b1a9572f --- /dev/null +++ b/Documentation/features/locking/queued-spinlocks/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: queued-spinlocks +# Kconfig: ARCH_USE_QUEUED_SPINLOCKS +# description: arch supports queued spinlocks +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/locking/rwsem-optimized/arch-support.txt b/Documentation/features/locking/rwsem-optimized/arch-support.txt new file mode 100644 index 000000000000..ac93d7ab66c4 --- /dev/null +++ b/Documentation/features/locking/rwsem-optimized/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: rwsem-optimized +# Kconfig: Optimized asm/rwsem.h +# description: arch provides optimized rwsem APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/perf/kprobes-event/arch-support.txt b/Documentation/features/perf/kprobes-event/arch-support.txt new file mode 100644 index 000000000000..9855ad044386 --- /dev/null +++ b/Documentation/features/perf/kprobes-event/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: kprobes-event +# Kconfig: HAVE_REGS_AND_STACK_ACCESS_API +# description: arch supports kprobes with perf events +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/perf/perf-regs/arch-support.txt b/Documentation/features/perf/perf-regs/arch-support.txt new file mode 100644 index 000000000000..e2b4a78ec543 --- /dev/null +++ b/Documentation/features/perf/perf-regs/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: perf-regs +# Kconfig: HAVE_PERF_REGS +# description: arch supports perf events register access +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/perf/perf-stackdump/arch-support.txt b/Documentation/features/perf/perf-stackdump/arch-support.txt new file mode 100644 index 000000000000..3dc24b0673c0 --- /dev/null +++ b/Documentation/features/perf/perf-stackdump/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: perf-stackdump +# Kconfig: HAVE_PERF_USER_STACK_DUMP +# description: arch supports perf events stack dumps +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/sched/numa-balancing/arch-support.txt b/Documentation/features/sched/numa-balancing/arch-support.txt new file mode 100644 index 000000000000..ac7cd6b1502b --- /dev/null +++ b/Documentation/features/sched/numa-balancing/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: numa-balancing +# Kconfig: ARCH_SUPPORTS_NUMA_BALANCING +# description: arch supports NUMA balancing +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | .. | + | arm: | .. | + | arm64: | .. | + | avr32: | .. | + | blackfin: | .. | + | c6x: | .. | + | cris: | .. | + | frv: | .. | + | h8300: | .. | + | hexagon: | .. | + | ia64: | TODO | + | m32r: | .. | + | m68k: | .. | + | metag: | .. | + | microblaze: | .. | + | mips: | TODO | + | mn10300: | .. | + | nios2: | .. | + | openrisc: | .. | + | parisc: | .. | + | powerpc: | ok | + | s390: | .. | + | score: | .. | + | sh: | .. | + | sparc: | TODO | + | tile: | TODO | + | um: | .. | + | unicore32: | .. | + | x86: | ok | + | xtensa: | .. | + ----------------------- diff --git a/Documentation/features/seccomp/seccomp-filter/arch-support.txt b/Documentation/features/seccomp/seccomp-filter/arch-support.txt new file mode 100644 index 000000000000..bea800910342 --- /dev/null +++ b/Documentation/features/seccomp/seccomp-filter/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: seccomp-filter +# Kconfig: HAVE_ARCH_SECCOMP_FILTER +# description: arch supports seccomp filters +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/time/arch-tick-broadcast/arch-support.txt b/Documentation/features/time/arch-tick-broadcast/arch-support.txt new file mode 100644 index 000000000000..8acb439a4a17 --- /dev/null +++ b/Documentation/features/time/arch-tick-broadcast/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: arch-tick-broadcast +# Kconfig: ARCH_HAS_TICK_BROADCAST +# description: arch provides tick_broadcast() +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | TODO | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/time/clockevents/arch-support.txt b/Documentation/features/time/clockevents/arch-support.txt new file mode 100644 index 000000000000..ff670b2207f1 --- /dev/null +++ b/Documentation/features/time/clockevents/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: clockevents +# Kconfig: GENERIC_CLOCKEVENTS +# description: arch support generic clock events +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | ok | + | arm: | ok | + | arm64: | ok | + | avr32: | ok | + | blackfin: | ok | + | c6x: | ok | + | cris: | ok | + | frv: | TODO | + | h8300: | ok | + | hexagon: | ok | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | ok | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | ok | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | ok | + | unicore32: | ok | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/time/context-tracking/arch-support.txt b/Documentation/features/time/context-tracking/arch-support.txt new file mode 100644 index 000000000000..a1e3eea7003f --- /dev/null +++ b/Documentation/features/time/context-tracking/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: context-tracking +# Kconfig: HAVE_CONTEXT_TRACKING +# description: arch supports context tracking for NO_HZ_FULL +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/time/irq-time-acct/arch-support.txt b/Documentation/features/time/irq-time-acct/arch-support.txt new file mode 100644 index 000000000000..e63316239938 --- /dev/null +++ b/Documentation/features/time/irq-time-acct/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: irq-time-acct +# Kconfig: HAVE_IRQ_TIME_ACCOUNTING +# description: arch supports precise IRQ time accounting +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | .. | + | arc: | TODO | + | arm: | ok | + | arm64: | .. | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | .. | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | .. | + | powerpc: | .. | + | s390: | .. | + | score: | TODO | + | sh: | TODO | + | sparc: | .. | + | tile: | .. | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/time/modern-timekeeping/arch-support.txt b/Documentation/features/time/modern-timekeeping/arch-support.txt new file mode 100644 index 000000000000..17f68a02e84d --- /dev/null +++ b/Documentation/features/time/modern-timekeeping/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: modern-timekeeping +# Kconfig: !ARCH_USES_GETTIMEOFFSET +# description: arch does not use arch_gettimeoffset() anymore +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | ok | + | arm: | TODO | + | arm64: | ok | + | avr32: | ok | + | blackfin: | TODO | + | c6x: | ok | + | cris: | TODO | + | frv: | ok | + | h8300: | ok | + | hexagon: | ok | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | ok | + | nios2: | ok | + | openrisc: | ok | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | ok | + | um: | ok | + | unicore32: | ok | + | x86: | ok | + | xtensa: | ok | + ----------------------- diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Documentation/features/time/virt-cpuacct/arch-support.txt new file mode 100644 index 000000000000..cf3c3e383d15 --- /dev/null +++ b/Documentation/features/time/virt-cpuacct/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: virt-cpuacct +# Kconfig: HAVE_VIRT_CPU_ACCOUNTING +# description: arch supports precise virtual CPU time accounting +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | ok | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | ok | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | ok | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/vm/ELF-ASLR/arch-support.txt b/Documentation/features/vm/ELF-ASLR/arch-support.txt new file mode 100644 index 000000000000..ec4dd28e1297 --- /dev/null +++ b/Documentation/features/vm/ELF-ASLR/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: ELF-ASLR +# Kconfig: ARCH_HAS_ELF_RANDOMIZE +# description: arch randomizes the stack, heap and binary images of ELF binaries +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/vm/PG_uncached/arch-support.txt b/Documentation/features/vm/PG_uncached/arch-support.txt new file mode 100644 index 000000000000..991974275a3e --- /dev/null +++ b/Documentation/features/vm/PG_uncached/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: PG_uncached +# Kconfig: ARCH_USES_PG_UNCACHED +# description: arch supports the PG_uncached page flag +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | ok | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/vm/THP/arch-support.txt b/Documentation/features/vm/THP/arch-support.txt new file mode 100644 index 000000000000..972d02c2a74c --- /dev/null +++ b/Documentation/features/vm/THP/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: THP +# Kconfig: HAVE_ARCH_TRANSPARENT_HUGEPAGE +# description: arch supports transparent hugepages +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | .. | + | arm: | ok | + | arm64: | ok | + | avr32: | .. | + | blackfin: | .. | + | c6x: | .. | + | cris: | .. | + | frv: | .. | + | h8300: | .. | + | hexagon: | .. | + | ia64: | TODO | + | m32r: | .. | + | m68k: | .. | + | metag: | .. | + | microblaze: | .. | + | mips: | ok | + | mn10300: | .. | + | nios2: | .. | + | openrisc: | .. | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | .. | + | sh: | .. | + | sparc: | ok | + | tile: | TODO | + | um: | .. | + | unicore32: | .. | + | x86: | ok | + | xtensa: | .. | + ----------------------- diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt new file mode 100644 index 000000000000..af6816bccb43 --- /dev/null +++ b/Documentation/features/vm/huge-vmap/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: huge-vmap +# Kconfig: HAVE_ARCH_HUGE_VMAP +# description: arch supports the ioremap_pud_enabled() and ioremap_pmd_enabled() VM APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | TODO | + | s390: | TODO | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt new file mode 100644 index 000000000000..90c53749fde7 --- /dev/null +++ b/Documentation/features/vm/ioremap_prot/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: ioremap_prot +# Kconfig: HAVE_IOREMAP_PROT +# description: arch has ioremap_prot() +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | ok | + | arm: | TODO | + | arm64: | TODO | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | TODO | + | score: | TODO | + | sh: | ok | + | sparc: | TODO | + | tile: | ok | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/vm/numa-memblock/arch-support.txt b/Documentation/features/vm/numa-memblock/arch-support.txt new file mode 100644 index 000000000000..e7c252a0c531 --- /dev/null +++ b/Documentation/features/vm/numa-memblock/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: numa-memblock +# Kconfig: HAVE_MEMBLOCK_NODE_MAP +# description: arch supports NUMA aware memblocks +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | .. | + | arm: | .. | + | arm64: | .. | + | avr32: | .. | + | blackfin: | .. | + | c6x: | .. | + | cris: | .. | + | frv: | .. | + | h8300: | .. | + | hexagon: | .. | + | ia64: | ok | + | m32r: | TODO | + | m68k: | .. | + | metag: | ok | + | microblaze: | ok | + | mips: | ok | + | mn10300: | TODO | + | nios2: | .. | + | openrisc: | .. | + | parisc: | .. | + | powerpc: | ok | + | s390: | ok | + | score: | ok | + | sh: | ok | + | sparc: | ok | + | tile: | TODO | + | um: | .. | + | unicore32: | .. | + | x86: | ok | + | xtensa: | .. | + ----------------------- diff --git a/Documentation/features/vm/pmdp_splitting_flush/arch-support.txt b/Documentation/features/vm/pmdp_splitting_flush/arch-support.txt new file mode 100644 index 000000000000..26f74b457e0b --- /dev/null +++ b/Documentation/features/vm/pmdp_splitting_flush/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: pmdp_splitting_flush +# Kconfig: __HAVE_ARCH_PMDP_SPLITTING_FLUSH +# description: arch supports the pmdp_splitting_flush() VM API +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | ok | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | TODO | + | sparc: | TODO | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- diff --git a/Documentation/features/vm/pte_special/arch-support.txt b/Documentation/features/vm/pte_special/arch-support.txt new file mode 100644 index 000000000000..aaaa21db6226 --- /dev/null +++ b/Documentation/features/vm/pte_special/arch-support.txt @@ -0,0 +1,40 @@ +# +# Feature name: pte_special +# Kconfig: __HAVE_ARCH_PTE_SPECIAL +# description: arch supports the pte_special()/pte_mkspecial() VM APIs +# + ----------------------- + | arch |status| + ----------------------- + | alpha: | TODO | + | arc: | TODO | + | arm: | ok | + | arm64: | ok | + | avr32: | TODO | + | blackfin: | TODO | + | c6x: | TODO | + | cris: | TODO | + | frv: | TODO | + | h8300: | TODO | + | hexagon: | TODO | + | ia64: | TODO | + | m32r: | TODO | + | m68k: | TODO | + | metag: | TODO | + | microblaze: | TODO | + | mips: | TODO | + | mn10300: | TODO | + | nios2: | TODO | + | openrisc: | TODO | + | parisc: | TODO | + | powerpc: | ok | + | s390: | ok | + | score: | TODO | + | sh: | ok | + | sparc: | ok | + | tile: | TODO | + | um: | TODO | + | unicore32: | TODO | + | x86: | ok | + | xtensa: | TODO | + ----------------------- ^ permalink raw reply related [flat|nested] 46+ messages in thread
[parent not found: <20150603110355.GA12079-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [GIT PULL] Documentation/features: Add kernel feature descriptions and arch support status files under Documentation/features/ [not found] ` <20150603110355.GA12079-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-06-08 23:08 ` Jonathan Corbet 0 siblings, 0 replies; 46+ messages in thread From: Jonathan Corbet @ 2015-06-08 23:08 UTC (permalink / raw) To: Ingo Molnar Cc: Andrew Morton, Josh Triplett, Borislav Petkov, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA, Peter Zijlstra On Wed, 3 Jun 2015 13:03:55 +0200 Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote: > A week late but I managed to complete it all and moved it into Git, for better > structure and easy pulling. Pulled into the docs tree - thanks! jon ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt 2015-05-13 16:27 ` Josh Triplett 2015-05-13 16:53 ` Josh Triplett 2015-05-13 22:05 ` Andrew Morton @ 2015-05-14 7:08 ` Ingo Molnar 2 siblings, 0 replies; 46+ messages in thread From: Ingo Molnar @ 2015-05-14 7:08 UTC (permalink / raw) To: Josh Triplett Cc: Borislav Petkov, Andrew Morton, Jonathan Corbet, Peter Zijlstra, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch * Josh Triplett <josh@joshtriplett.org> wrote: > On Wed, May 13, 2015 at 03:48:42PM +0200, Ingo Molnar wrote: > > From 93f6bd67b4348bf4bf27cbac8ffa9f1def4fa6aa Mon Sep 17 00:00:00 2001 > > From: Ingo Molnar <mingo@kernel.org> > > Date: Wed, 13 May 2015 10:30:11 +0200 > > Subject: [PATCH] Documentation/arch: Add Documentation/arch-features.txt > > > > Add a support matrix for various generic kernel features that need > > architecture support. > > > > Signed-off-by: Ingo Molnar <mingo@kernel.org> > > Could you add a column for the bpf JIT? Added it, it now looks like this (see it in the first column): ... BPF JIT: HAVE_BPF_JIT irq time acct:--------------------------------------------------. THP:-------------------------------------------. | gcov profile all:------------------------------------. | | rwsem optimized:-----------------------------. | | | queued spinlocks:----------------------. | | | | queued rwlocks:---------------. | | | | | numa balancing:--------. | | | | | | BPF JIT:-. | | | | | | | | | | | | | | | --------------------------------------------------------------------------- alpha | TODO | TODO | TODO | TODO | ok | TODO | TODO | ok | arc | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | arm | ok | .. | TODO | TODO | TODO | ok | ok | ok | arm64 | ok | .. | TODO | TODO | TODO | ok | ok | ok | avr32 | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | blackfin | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | c6x | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | cris | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | frv | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | hexagon | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | ia64 | TODO | TODO | TODO | TODO | ok | TODO | TODO | ok | m32r | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | m68k | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | metag | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | microblaze | TODO | .. | TODO | TODO | TODO | ok | .. | TODO | mips | ok | TODO | TODO | TODO | TODO | TODO | ok | ok | mn10300 | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | nios2 | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | openrisc | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | parisc | TODO | .. | TODO | TODO | TODO | TODO | TODO | ok | powerpc | ok | ok | TODO | TODO | TODO | ok | ok | ok | s390 | ok | .. | TODO | TODO | ok | ok | ok | ok | score | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | sh | TODO | .. | TODO | TODO | ok | ok | .. | TODO | sparc | ok | TODO | TODO | TODO | ok | TODO | ok | ok | tile | TODO | TODO | TODO | TODO | TODO | TODO | TODO | ok | um | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | unicore32 | TODO | .. | TODO | TODO | TODO | TODO | .. | TODO | x86 | ok | ok | ok | ok | ok | ok | ok | ok | xtensa | TODO | .. | TODO | TODO | ok | TODO | .. | ok | --------------------------------------------------------------------------- Thanks, Ingo ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt 2015-05-13 13:48 ` [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt Ingo Molnar 2015-05-13 16:27 ` Josh Triplett @ 2015-05-14 3:55 ` Paul Mackerras 2015-05-14 7:02 ` Ingo Molnar 1 sibling, 1 reply; 46+ messages in thread From: Paul Mackerras @ 2015-05-14 3:55 UTC (permalink / raw) To: Ingo Molnar Cc: Borislav Petkov, Andrew Morton, Jonathan Corbet, Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch On Wed, May 13, 2015 at 03:48:42PM +0200, Ingo Molnar wrote: > > Updated patch attached - I've added a few more features to the last > table, and restructured the explanations, now every feature > description also lists the Kconfig variable that it's tracking, e.g.: > > irq time acct: HAVE_IRQ_TIME_ACCOUNTING Regarding that one specifically, as far as I can see, HAVE_IRQ_TIME_ACCOUNTING is only relevant for tick-based time accounting. If you have CONFIG_VIRT_CPU_ACCOUNTING you get accurate irq time accounting with or without HAVE_IRQ_TIME_ACCOUNTING. So how about making this one: irq time acct: HAVE_IRQ_TIME_ACCOUNTING || VIRT_CPU_ACCOUNTING That would make the "irq time acct" entry for powerpc be "ok". Paul. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt 2015-05-14 3:55 ` Paul Mackerras @ 2015-05-14 7:02 ` Ingo Molnar 0 siblings, 0 replies; 46+ messages in thread From: Ingo Molnar @ 2015-05-14 7:02 UTC (permalink / raw) To: Paul Mackerras Cc: Borislav Petkov, Andrew Morton, Jonathan Corbet, Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api, linux-kernel, x86, linux-arch * Paul Mackerras <paulus@samba.org> wrote: > On Wed, May 13, 2015 at 03:48:42PM +0200, Ingo Molnar wrote: > > > > Updated patch attached - I've added a few more features to the last > > table, and restructured the explanations, now every feature > > description also lists the Kconfig variable that it's tracking, e.g.: > > > > irq time acct: HAVE_IRQ_TIME_ACCOUNTING > > Regarding that one specifically, as far as I can see, > HAVE_IRQ_TIME_ACCOUNTING is only relevant for tick-based time > accounting. If you have CONFIG_VIRT_CPU_ACCOUNTING you get accurate > irq time accounting with or without HAVE_IRQ_TIME_ACCOUNTING. So > how about making this one: > > irq time acct: HAVE_IRQ_TIME_ACCOUNTING || VIRT_CPU_ACCOUNTING > > That would make the "irq time acct" entry for powerpc be "ok". Yeah, indeed. I fixed that, PowerPC now looks like this: irq time acct:-------------------------------------------. THP:------------------------------------. | gcov profile all:-----------------------------. | | rwsem optimized:----------------------. | | | queued spinlocks:---------------. | | | | queued rwlocks:--------. | | | | | numa balancing:-. | | | | | | | | | | | | | -------------------------------------------------------------------- powerpc | ok | TODO | TODO | TODO | ok | ok | ok | Thanks, Ingo ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150513094756.GD11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [RFC PATCH v5] Documentation/arch: Add Documentation/arch-TODO [not found] ` <20150513094756.GD11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-05-13 14:09 ` Michele Curti 2015-05-13 14:42 ` Geert Uytterhoeven 0 siblings, 1 reply; 46+ messages in thread From: Michele Curti @ 2015-05-13 14:09 UTC (permalink / raw) To: Ingo Molnar Cc: Andrew Morton, Jonathan Corbet, Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A, linux-arch-u79uwXL29TY76Z2rM5mHXA, Borislav Petkov On Wed, May 13, 2015 at 11:47:56AM +0200, Ingo Molnar wrote: > > (fixed the subject.) > > So this is the final version for now: > > - add a fourth table > > - fix errors in earlier tables, in particular I missed some PowerPC > Kconfigs > > - introduce the '..' denotion (in the final table) to show features > that cannot be supported by an architecture due to hardware > dependencies: > > gcov-profile-all:---------------. > THP:--------. | > irq-time-acct:-. | | > | | | > ---------------------------------------- > alpha | TODO | TODO | TODO | > arc | TODO | .. | TODO | > arm | ok | ok | ok | > arm64 | TODO | ok | ok | > avr32 | TODO | .. | TODO | > blackfin | TODO | .. | TODO | > c6x | TODO | .. | TODO | > > so in the 'THP' column, if an architecture could in theory support > THP, it's listed as 'TODO', if it cannot, it's listed as '..'. > > Please let me know about errors in these tables, and I can also add > more features/facilities as well if I missed any. > > Thanks, > Tried to transpose rows with columns, to avoid architecture name duplication and to get only one table while keeping 80 char width, but result seems less readable :p m i u b c o n l h r m p p i a e o n e p o c x a a a c x m b 1 n n a w s s o t l r v k c a i m m e l m 0 i r r e s c p t r e p a a m r f c r f g a 3 6 t a i 3 o i i r 3 o a i e x n h r r 6 3 i 6 i r o 6 2 8 a z p 0 s s s p 9 r s r l u 3 8 s a c m 4 2 n x s v n 4 r k g e s 0 2 c c c 0 e h c e m 2 6 a ------------------------------------------------------------------------------- lockdep T K K K K K T T T K T T T K K K T T T T K K K K K K K K K K stackprotector T T K K T T T T T T T T T T T K T T T T T T T K T T T T K T jump-labels T T K K T T T T T T T T T T T K T T T T K K T T K T T T K T seccomp-filter T T K K T T T T T T T T T T T K T T T T T K T T T T T T K T context-tracking T T K K T T T T T T T T T T T K T T T T K T T T K K T T K T kgdb T K K K T K T T T K T T T T K K K K T T K T T K K K T T K T modern-timekeeping K K T K K T K T K K K T T K K K K K K K K K K K K K K K K K clockevents K K K K K K K K T K T T K K K K K K K T K K K K K K K K K K ELF-ASLR T T K K T T T T T T T T T T T K T T T T K K T T T T T T K T arch-tick-broadcast T T K K T T T T T T T T T T T K T T T T K T T T T T T T T T kprobes T K K T K T T T T T K T T T T K T T T T K K T K K K T T K T optprobes T T K T T T T T T T T T T T T T T T T T T T T T T K T T K T kprobes-on-ftrace T T T T T T T T T T T T T T T T T T T T T T T T T T T T K T uprobes T T K T T T T T T T T T T T T T T T T T K K T T T T T T K T kretprobes T K K T T T T T T T K T T T T K T T T T K K T K K K T T K T user-ret-profiler T T T T T T T T T T T T T T T T T T T T T T T T T K T T K T ioremap_prot() T K T T T T T T T T T T T T T T T T T T K T T K T K T T K T tracehook T K K K T K K T K K K T T K T K K K K T K K T K K K T T K T generic-idle-thread K K K K T K T T T K K T T K T K T T T K K K T K K T T T K K dma_*map*_attrs() K T K K T T T T T K K T T T K K T T K T K K T K K K T K K T dma-contiguous T T K K T T T T T T T T T T T K T T T T T T T T T T T T K T kprobes-event T T K T T T T T T K T T T T T T T T T T K K T K T K T T K T dma-api-debug T T K K T T K T T T K T T T K K T T T T K K T K K K T T K T perf-regs T T K K T T T T T T T T T T T T T T T T T T T T T T T T K T perf-stackdump T T K K T T T T T T T T T T T T T T T T T T T T T T T T K T cmpxchg-local T T T T T T T T T T T T T T T T T T T T T K T T T T T T K T virt-cpuacct K T K K T T T T T T K T T T T K T T T K K K T T K K T T K T irq-time-acct T T K T T T T T T T T T T T T K T T T T T T T T T T T T K K THP T - K K - - - - - - T - - - - K - - - T K K - - K T - - K - gcov-profile-all T T K K T T T T T T T T T T K T T T T T K K T K T T T T K T Legend: K = ok T = TODO - = cannot Michele ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC PATCH v5] Documentation/arch: Add Documentation/arch-TODO 2015-05-13 14:09 ` [RFC PATCH v5] Documentation/arch: Add Documentation/arch-TODO Michele Curti @ 2015-05-13 14:42 ` Geert Uytterhoeven [not found] ` <CAMuHMdXV68nie93Rb=Z+vYtn2aNex=s5E4+Z=QGojF+8EbPbKA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-05-14 7:21 ` H. Peter Anvin 0 siblings, 2 replies; 46+ messages in thread From: Geert Uytterhoeven @ 2015-05-13 14:42 UTC (permalink / raw) To: Michele Curti Cc: Ingo Molnar, Andrew Morton, Jonathan Corbet, Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Thomas Gleixner, Linus Torvalds, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org, the arch/x86 maintainers, Linux-Arch, Borislav Petkov On Wed, May 13, 2015 at 4:09 PM, Michele Curti <michele.curti@gmail.com> wrote: > Tried to transpose rows with columns, to avoid architecture name duplication > and to get only one table while keeping 80 char width, but result seems less > readable :p > > > m > i u > b c o n > l h r m p p i > a e o n e p o c x > a a a c x m b 1 n n a w s s o t > l r v k c a i m m e l m 0 i r r e s c p t r e > p a a m r f c r f g a 3 6 t a i 3 o i i r 3 o a i e x n > h r r 6 3 i 6 i r o 6 2 8 a z p 0 s s s p 9 r s r l u 3 8 s > a c m 4 2 n x s v n 4 r k g e s 0 2 c c c 0 e h c e m 2 6 a > ------------------------------------------------------------------------------- > lockdep T K K K K K T T T K T T T K K K T T T T K K K K K K K K K K > stackprotector T T K K T T T T T T T T T T T K T T T T T T T K T T T T K T > jump-labels T T K K T T T T T T T T T T T K T T T T K K T T K T T T K T > seccomp-filter T T K K T T T T T T T T T T T K T T T T T K T T T T T T K T I thought about that, too, as there are more (not fully implemented) features than architectures. But I expect more merge conflicts with the transposed version. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <CAMuHMdXV68nie93Rb=Z+vYtn2aNex=s5E4+Z=QGojF+8EbPbKA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [RFC PATCH v5] Documentation/arch: Add Documentation/arch-TODO [not found] ` <CAMuHMdXV68nie93Rb=Z+vYtn2aNex=s5E4+Z=QGojF+8EbPbKA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2015-05-14 7:21 ` H. Peter Anvin 0 siblings, 0 replies; 46+ messages in thread From: H. Peter Anvin @ 2015-05-14 7:21 UTC (permalink / raw) To: Geert Uytterhoeven, Michele Curti Cc: Ingo Molnar, Andrew Morton, Jonathan Corbet, Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, the arch/x86 maintainers, Linux-Arch, Borislav Petkov On 05/13/2015 07:42 AM, Geert Uytterhoeven wrote: > On Wed, May 13, 2015 at 4:09 PM, Michele Curti <michele.curti-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> Tried to transpose rows with columns, to avoid architecture name duplication >> and to get only one table while keeping 80 char width, but result seems less >> readable :p >> >> >> m >> i u >> b c o n >> l h r m p p i >> a e o n e p o c x >> a a a c x m b 1 n n a w s s o t >> l r v k c a i m m e l m 0 i r r e s c p t r e >> p a a m r f c r f g a 3 6 t a i 3 o i i r 3 o a i e x n >> h r r 6 3 i 6 i r o 6 2 8 a z p 0 s s s p 9 r s r l u 3 8 s >> a c m 4 2 n x s v n 4 r k g e s 0 2 c c c 0 e h c e m 2 6 a >> ------------------------------------------------------------------------------- >> lockdep T K K K K K T T T K T T T K K K T T T T K K K K K K K K K K >> stackprotector T T K K T T T T T T T T T T T K T T T T T T T K T T T T K T >> jump-labels T T K K T T T T T T T T T T T K T T T T K K T T K T T T K T >> seccomp-filter T T K K T T T T T T T T T T T K T T T T T K T T T T T T K T > > I thought about that, too, as there are more (not fully implemented) features > than architectures. But I expect more merge conflicts with the transposed > version. > There is another reason for the transposed version, which is that it makes adding features to the list much easier. At the same time, plain ASCII is horrific for maintaining tables... -hpa ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC PATCH v5] Documentation/arch: Add Documentation/arch-TODO 2015-05-13 14:42 ` Geert Uytterhoeven [not found] ` <CAMuHMdXV68nie93Rb=Z+vYtn2aNex=s5E4+Z=QGojF+8EbPbKA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2015-05-14 7:21 ` H. Peter Anvin 1 sibling, 0 replies; 46+ messages in thread From: H. Peter Anvin @ 2015-05-14 7:21 UTC (permalink / raw) To: Geert Uytterhoeven, Michele Curti Cc: Ingo Molnar, Andrew Morton, Jonathan Corbet, Peter Zijlstra, Josh Triplett, Andy Lutomirski, Ingo Molnar, Thomas Gleixner, Linus Torvalds, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org, the arch/x86 maintainers, Linux-Arch, Borislav Petkov On 05/13/2015 07:42 AM, Geert Uytterhoeven wrote: > On Wed, May 13, 2015 at 4:09 PM, Michele Curti <michele.curti@gmail.com> wrote: >> Tried to transpose rows with columns, to avoid architecture name duplication >> and to get only one table while keeping 80 char width, but result seems less >> readable :p >> >> >> m >> i u >> b c o n >> l h r m p p i >> a e o n e p o c x >> a a a c x m b 1 n n a w s s o t >> l r v k c a i m m e l m 0 i r r e s c p t r e >> p a a m r f c r f g a 3 6 t a i 3 o i i r 3 o a i e x n >> h r r 6 3 i 6 i r o 6 2 8 a z p 0 s s s p 9 r s r l u 3 8 s >> a c m 4 2 n x s v n 4 r k g e s 0 2 c c c 0 e h c e m 2 6 a >> ------------------------------------------------------------------------------- >> lockdep T K K K K K T T T K T T T K K K T T T T K K K K K K K K K K >> stackprotector T T K K T T T T T T T T T T T K T T T T T T T K T T T T K T >> jump-labels T T K K T T T T T T T T T T T K T T T T K K T T K T T T K T >> seccomp-filter T T K K T T T T T T T T T T T K T T T T T K T T T T T T K T > > I thought about that, too, as there are more (not fully implemented) features > than architectures. But I expect more merge conflicts with the transposed > version. > There is another reason for the transposed version, which is that it makes adding features to the list much easier. At the same time, plain ASCII is horrific for maintaining tables... -hpa ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150512142250.dcb053da81855ae1b5861173-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>]
* Re: [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic [not found] ` <20150512142250.dcb053da81855ae1b5861173-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> @ 2015-05-13 0:53 ` josh-iaAMLnmF4UmaiuxdJuQwMA 0 siblings, 0 replies; 46+ messages in thread From: josh-iaAMLnmF4UmaiuxdJuQwMA @ 2015-05-13 0:53 UTC (permalink / raw) To: Andrew Morton Cc: Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Peter Zijlstra, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A On Tue, May 12, 2015 at 02:22:50PM -0700, Andrew Morton wrote: > On Mon, 11 May 2015 12:29:19 -0700 Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org> wrote: > > > Introduce a new CONFIG_HAVE_COPY_THREAD_TLS for architectures to opt > > into, and a new copy_thread_tls that accepts the tls parameter as an > > additional unsigned long (syscall-argument-sized) argument. > > Change sys_clone's tls argument to an unsigned long (which does > > not change the ABI), and pass that down to copy_thread_tls. > > > > Architectures that don't opt into copy_thread_tls will continue to > > ignore the C argument to sys_clone in favor of the pt_regs captured at > > kernel entry, and thus will be unable to introduce new versions of the > > clone syscall. > > What happens quite frequently is that we do something for x86 with the > expectation that other architectures will follow along, but this > doesn't happen. The arch maintainers simply didn't know about it or > nobody nags them. Nothing happens and inconsistencies hang around for > years. eg, http://lkml.iu.edu/hypermail/linux/kernel/1504.2/04993.html In this case, there will be a very clear incentive to switch to CONFIG_HAVE_COPY_THREAD_TLS: if you don't, you can't enable new syscalls. - Josh Triplett ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic 2015-05-11 19:29 [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic Josh Triplett 2015-05-12 21:22 ` Andrew Morton @ 2015-05-13 22:56 ` Andrew Morton [not found] ` <20150513155628.65dc253bea9485cb7910678b-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 1 sibling, 1 reply; 46+ messages in thread From: Andrew Morton @ 2015-05-13 22:56 UTC (permalink / raw) To: Josh Triplett Cc: Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Peter Zijlstra, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A On Mon, 11 May 2015 12:29:19 -0700 Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org> wrote: > clone with CLONE_SETTLS accepts an argument to set the thread-local > storage area for the new thread. sys_clone declares an int argument > tls_val in the appropriate point in the argument list (based on the > various CLONE_BACKWARDS variants), but doesn't actually use or pass > along that argument. Instead, sys_clone calls do_fork, which calls > copy_process, which calls the arch-specific copy_thread, and copy_thread > pulls the corresponding syscall argument out of the pt_regs captured at > kernel entry (knowing what argument of clone that architecture passes > tls in). > > Apart from being awful and inscrutable, that also only works because > only one code path into copy_thread can pass the CLONE_SETTLS flag, and > that code path comes from sys_clone with its architecture-specific > argument-passing order. This prevents introducing a new version of the > clone system call without propagating the same architecture-specific > position of the tls argument. > > However, there's no reason to pull the argument out of pt_regs when > sys_clone could just pass it down via C function call arguments. > > Introduce a new CONFIG_HAVE_COPY_THREAD_TLS for architectures to opt > into, and a new copy_thread_tls that accepts the tls parameter as an > additional unsigned long (syscall-argument-sized) argument. > Change sys_clone's tls argument to an unsigned long (which does > not change the ABI), and pass that down to copy_thread_tls. > > Architectures that don't opt into copy_thread_tls will continue to > ignore the C argument to sys_clone in favor of the pt_regs captured at > kernel entry, and thus will be unable to introduce new versions of the > clone syscall. > > Patch co-authored by Josh Triplett and Thiago Macieira. > > ... > > @@ -1698,20 +1701,34 @@ long do_fork(unsigned long clone_flags, > return nr; > } > > +#ifndef CONFIG_HAVE_COPY_THREAD_TLS > +/* For compatibility with architectures that call do_fork directly rather than > + * using the syscall entry points below. */ > +long do_fork(unsigned long clone_flags, > + unsigned long stack_start, > + unsigned long stack_size, > + int __user *parent_tidptr, > + int __user *child_tidptr) > +{ > + return _do_fork(clone_flags, stack_start, stack_size, > + parent_tidptr, child_tidptr, 0); > +} > +#endif drivers/misc/kgdbts.c:lookup_addr() has a reference to do_fork(). Doesn't link, with a basic `make allmodconfig'. ^ permalink raw reply [flat|nested] 46+ messages in thread
[parent not found: <20150513155628.65dc253bea9485cb7910678b-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>]
* Re: [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic [not found] ` <20150513155628.65dc253bea9485cb7910678b-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> @ 2015-05-13 23:25 ` josh-iaAMLnmF4UmaiuxdJuQwMA 0 siblings, 0 replies; 46+ messages in thread From: josh-iaAMLnmF4UmaiuxdJuQwMA @ 2015-05-13 23:25 UTC (permalink / raw) To: Andrew Morton Cc: Andy Lutomirski, Ingo Molnar, H. Peter Anvin, Peter Zijlstra, Thomas Gleixner, Linus Torvalds, linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A On Wed, May 13, 2015 at 03:56:28PM -0700, Andrew Morton wrote: > On Mon, 11 May 2015 12:29:19 -0700 Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org> wrote: > > > clone with CLONE_SETTLS accepts an argument to set the thread-local > > storage area for the new thread. sys_clone declares an int argument > > tls_val in the appropriate point in the argument list (based on the > > various CLONE_BACKWARDS variants), but doesn't actually use or pass > > along that argument. Instead, sys_clone calls do_fork, which calls > > copy_process, which calls the arch-specific copy_thread, and copy_thread > > pulls the corresponding syscall argument out of the pt_regs captured at > > kernel entry (knowing what argument of clone that architecture passes > > tls in). > > > > Apart from being awful and inscrutable, that also only works because > > only one code path into copy_thread can pass the CLONE_SETTLS flag, and > > that code path comes from sys_clone with its architecture-specific > > argument-passing order. This prevents introducing a new version of the > > clone system call without propagating the same architecture-specific > > position of the tls argument. > > > > However, there's no reason to pull the argument out of pt_regs when > > sys_clone could just pass it down via C function call arguments. > > > > Introduce a new CONFIG_HAVE_COPY_THREAD_TLS for architectures to opt > > into, and a new copy_thread_tls that accepts the tls parameter as an > > additional unsigned long (syscall-argument-sized) argument. > > Change sys_clone's tls argument to an unsigned long (which does > > not change the ABI), and pass that down to copy_thread_tls. > > > > Architectures that don't opt into copy_thread_tls will continue to > > ignore the C argument to sys_clone in favor of the pt_regs captured at > > kernel entry, and thus will be unable to introduce new versions of the > > clone syscall. > > > > Patch co-authored by Josh Triplett and Thiago Macieira. > > > > ... > > > > @@ -1698,20 +1701,34 @@ long do_fork(unsigned long clone_flags, > > return nr; > > } > > > > +#ifndef CONFIG_HAVE_COPY_THREAD_TLS > > +/* For compatibility with architectures that call do_fork directly rather than > > + * using the syscall entry points below. */ > > +long do_fork(unsigned long clone_flags, > > + unsigned long stack_start, > > + unsigned long stack_size, > > + int __user *parent_tidptr, > > + int __user *child_tidptr) > > +{ > > + return _do_fork(clone_flags, stack_start, stack_size, > > + parent_tidptr, child_tidptr, 0); > > +} > > +#endif > > drivers/misc/kgdbts.c:lookup_addr() has a reference to do_fork(). > Doesn't link, with a basic `make allmodconfig'. Odd; not sure how it built with allyesconfig at the time (which I did test). However, dropping the #ifndef is the wrong fix. do_fork will go away *completely* once all architectures opt into CONFIG_HAVE_COPY_THREAD_TLS, and architectures that opt in won't pass through do_fork. kgdb wants to capture forks, so it wants _do_fork. The right fix is to make _do_fork non-static (which makes me sad, but oh well), and make kgdb reference _do_fork instead of do_fork (though the string should remain "do_fork" for compatibility): Here's an incremental patch for that, to be squashed into the first of the two patches per your standard procedure for -mm; does this fix the issue you observed? --- 8< --- >From fd599319630b33b829dc50b4f3c88016e715cd76 Mon Sep 17 00:00:00 2001 From: Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org> Date: Wed, 13 May 2015 08:18:47 -0700 Subject: [PATCH] Fix "clone: Support passing tls argument via C rather than pt_regs magic" for kgdb Should be squashed into "clone: Support passing tls argument via C rather than pt_regs magic". kgdb wants to reference the real fork function, which is now _do_fork. Reported-by: Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> Signed-off-by: Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org> --- drivers/misc/kgdbts.c | 2 +- include/linux/sched.h | 1 + kernel/fork.c | 13 ++++++------- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c index 36f5d52..9a60bd4 100644 --- a/drivers/misc/kgdbts.c +++ b/drivers/misc/kgdbts.c @@ -220,7 +220,7 @@ static unsigned long lookup_addr(char *arg) else if (!strcmp(arg, "sys_open")) addr = (unsigned long)do_sys_open; else if (!strcmp(arg, "do_fork")) - addr = (unsigned long)do_fork; + addr = (unsigned long)_do_fork; else if (!strcmp(arg, "hw_break_val")) addr = (unsigned long)&hw_break_val; addr = (unsigned long) dereference_function_descriptor((void *)addr); diff --git a/include/linux/sched.h b/include/linux/sched.h index 2cc88c6..9686abe 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2514,6 +2514,7 @@ extern int do_execveat(int, struct filename *, const char __user * const __user *, const char __user * const __user *, int); +extern long _do_fork(unsigned long, unsigned long, unsigned long, int __user *, int __user *, unsigned long); extern long do_fork(unsigned long, unsigned long, unsigned long, int __user *, int __user *); struct task_struct *fork_idle(int); extern pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); diff --git a/kernel/fork.c b/kernel/fork.c index b3dadf4..b493aba 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1629,13 +1629,12 @@ struct task_struct *fork_idle(int cpu) * It copies the process, and if successful kick-starts * it and waits for it to finish using the VM if required. */ -static long _do_fork( - unsigned long clone_flags, - unsigned long stack_start, - unsigned long stack_size, - int __user *parent_tidptr, - int __user *child_tidptr, - unsigned long tls) +long _do_fork(unsigned long clone_flags, + unsigned long stack_start, + unsigned long stack_size, + int __user *parent_tidptr, + int __user *child_tidptr, + unsigned long tls) { struct task_struct *p; int trace = 0; -- 2.1.4 ^ permalink raw reply related [flat|nested] 46+ messages in thread
end of thread, other threads:[~2015-06-08 23:08 UTC | newest] Thread overview: 46+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-05-11 19:29 [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic Josh Triplett 2015-05-12 21:22 ` Andrew Morton 2015-05-12 21:38 ` Peter Zijlstra [not found] ` <20150512213843.GV21418-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> 2015-05-12 21:49 ` Andrew Morton [not found] ` <20150512144910.0b49c9a7a13336773449db33-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 2015-05-13 8:34 ` [RFC PATCH] Documentation/arch: Add Documentation/arch-TODO Ingo Molnar 2015-05-13 8:56 ` [RFC PATCH v2] " Ingo Molnar [not found] ` <20150513085636.GA11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-05-13 9:24 ` [RFC PATCH v3] " Ingo Molnar 2015-05-13 9:46 ` Ingo Molnar [not found] ` <20150513094622.GC11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-05-13 9:47 ` [RFC PATCH v5] " Ingo Molnar 2015-05-13 13:18 ` Borislav Petkov [not found] ` <20150513131835.GJ1517-fF5Pk5pvG8Y@public.gmane.org> 2015-05-13 13:48 ` [RFC PATCH v6] Documentation/arch: Add Documentation/arch-features.txt Ingo Molnar 2015-05-13 16:27 ` Josh Triplett 2015-05-13 16:53 ` Josh Triplett 2015-05-14 10:16 ` Ingo Molnar [not found] ` <20150514101615.GB27550-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-05-14 10:31 ` Josh Triplett 2015-05-13 22:05 ` Andrew Morton [not found] ` <20150513150523.ddd65d7cd51f820b78f0c8e3-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 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 [not found] ` <20150514101518.GA27550-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-05-14 10:35 ` [PATCH v2] " Ingo Molnar 2015-05-14 19:38 ` Andrew Morton 2015-05-14 19:59 ` Ingo Molnar [not found] ` <20150514195925.GA27570-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-05-14 22:33 ` Stephen Rothwell [not found] ` <20150515083334.535ad43e-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org> 2015-05-15 7:38 ` Ingo Molnar [not found] ` <20150515073805.GA14993-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-05-15 7:51 ` Ingo Molnar 2015-05-15 9:37 ` Ingo Molnar [not found] ` <20150514123835.1bf436bc35d711f8dbf9bc0f-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 2015-05-14 20:34 ` Richard Weinberger 2015-05-14 22:57 ` Michael Ellerman [not found] ` <1431644248.2981.1.camel-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org> 2015-05-15 7:49 ` Ingo Molnar 2015-05-18 1:37 ` Michael Ellerman [not found] ` <1431913033.13218.2.camel-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org> 2015-05-18 8:54 ` Ingo Molnar [not found] ` <20150518085423.GA24944-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-05-19 2:02 ` Michael Ellerman [not found] ` <20150514103544.GA7027-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-05-22 15:49 ` Jonathan Corbet [not found] ` <20150522094931.78a43421-T1hC0tSOHrs@public.gmane.org> 2015-05-23 8:07 ` Ingo Molnar 2015-05-24 18:44 ` Jonathan Corbet [not found] ` <20150524124447.0c395540-T1hC0tSOHrs@public.gmane.org> 2015-06-03 11:03 ` [GIT PULL] Documentation/features: Add kernel feature descriptions and arch support status files " Ingo Molnar [not found] ` <20150603110355.GA12079-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 [not found] ` <20150513094756.GD11030-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-05-13 14:09 ` [RFC PATCH v5] Documentation/arch: Add Documentation/arch-TODO Michele Curti 2015-05-13 14:42 ` Geert Uytterhoeven [not found] ` <CAMuHMdXV68nie93Rb=Z+vYtn2aNex=s5E4+Z=QGojF+8EbPbKA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-05-14 7:21 ` H. Peter Anvin 2015-05-14 7:21 ` H. Peter Anvin [not found] ` <20150512142250.dcb053da81855ae1b5861173-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 2015-05-13 0:53 ` [PATCHv2 1/2] clone: Support passing tls argument via C rather than pt_regs magic josh-iaAMLnmF4UmaiuxdJuQwMA 2015-05-13 22:56 ` Andrew Morton [not found] ` <20150513155628.65dc253bea9485cb7910678b-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> 2015-05-13 23:25 ` josh-iaAMLnmF4UmaiuxdJuQwMA
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).