diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-17 16:03:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-17 16:03:05 -0400 |
commit | 6b6e177d632ee251c7c78d8f266a851ab9704879 (patch) | |
tree | 6feec072e7dd7eb32249369a1a80e6a904307e34 /arch/tile/include | |
parent | bfaf245022b4b8661af2e35f467cf0e91943c24c (diff) | |
parent | 128f3cb9398b5eeb4ee04b60bd5e314f5c122821 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Pull arch/tile updates from Chris Metcalf:
"These are mostly nohz_full changes, plus a smattering of minor fixes
(notably a couple for ftrace)"
* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
tile: nohz: warn if nohz_full uses hypervisor shared cores
tile: ftrace: fix function_graph tracer issues
tile: map data region shadow of kernel as R/W
tile: support CONTEXT_TRACKING and thus NOHZ_FULL
tile: support arch_irq_work_raise
arch: tile: fix null pointer dereference on pt_regs pointer
tile/elf: reorganize notify_exec()
tile: use si_int instead of si_ptr for compat_siginfo
Diffstat (limited to 'arch/tile/include')
-rw-r--r-- | arch/tile/include/asm/Kbuild | 1 | ||||
-rw-r--r-- | arch/tile/include/asm/ftrace.h | 2 | ||||
-rw-r--r-- | arch/tile/include/asm/irq_work.h | 14 | ||||
-rw-r--r-- | arch/tile/include/asm/smp.h | 1 | ||||
-rw-r--r-- | arch/tile/include/asm/thread_info.h | 9 | ||||
-rw-r--r-- | arch/tile/include/hv/hypervisor.h | 6 |
6 files changed, 28 insertions, 5 deletions
diff --git a/arch/tile/include/asm/Kbuild b/arch/tile/include/asm/Kbuild index b4c488b65745..f5433e0e34e0 100644 --- a/arch/tile/include/asm/Kbuild +++ b/arch/tile/include/asm/Kbuild | |||
@@ -16,7 +16,6 @@ generic-y += ioctl.h | |||
16 | generic-y += ioctls.h | 16 | generic-y += ioctls.h |
17 | generic-y += ipcbuf.h | 17 | generic-y += ipcbuf.h |
18 | generic-y += irq_regs.h | 18 | generic-y += irq_regs.h |
19 | generic-y += irq_work.h | ||
20 | generic-y += local.h | 19 | generic-y += local.h |
21 | generic-y += local64.h | 20 | generic-y += local64.h |
22 | generic-y += mcs_spinlock.h | 21 | generic-y += mcs_spinlock.h |
diff --git a/arch/tile/include/asm/ftrace.h b/arch/tile/include/asm/ftrace.h index 13a9bb81a8ab..738d239b792f 100644 --- a/arch/tile/include/asm/ftrace.h +++ b/arch/tile/include/asm/ftrace.h | |||
@@ -23,6 +23,8 @@ | |||
23 | #ifndef __ASSEMBLY__ | 23 | #ifndef __ASSEMBLY__ |
24 | extern void __mcount(void); | 24 | extern void __mcount(void); |
25 | 25 | ||
26 | #define ARCH_SUPPORTS_FTRACE_OPS 1 | ||
27 | |||
26 | #ifdef CONFIG_DYNAMIC_FTRACE | 28 | #ifdef CONFIG_DYNAMIC_FTRACE |
27 | static inline unsigned long ftrace_call_adjust(unsigned long addr) | 29 | static inline unsigned long ftrace_call_adjust(unsigned long addr) |
28 | { | 30 | { |
diff --git a/arch/tile/include/asm/irq_work.h b/arch/tile/include/asm/irq_work.h new file mode 100644 index 000000000000..48af33a61a2c --- /dev/null +++ b/arch/tile/include/asm/irq_work.h | |||
@@ -0,0 +1,14 @@ | |||
1 | #ifndef __ASM_IRQ_WORK_H | ||
2 | #define __ASM_IRQ_WORK_H | ||
3 | |||
4 | static inline bool arch_irq_work_has_interrupt(void) | ||
5 | { | ||
6 | #ifdef CONFIG_SMP | ||
7 | extern bool self_interrupt_ok; | ||
8 | return self_interrupt_ok; | ||
9 | #else | ||
10 | return false; | ||
11 | #endif | ||
12 | } | ||
13 | |||
14 | #endif /* __ASM_IRQ_WORK_H */ | ||
diff --git a/arch/tile/include/asm/smp.h b/arch/tile/include/asm/smp.h index 9a326b64f7ae..735e7f144733 100644 --- a/arch/tile/include/asm/smp.h +++ b/arch/tile/include/asm/smp.h | |||
@@ -69,6 +69,7 @@ static inline int xy_to_cpu(int x, int y) | |||
69 | #define MSG_TAG_STOP_CPU 2 | 69 | #define MSG_TAG_STOP_CPU 2 |
70 | #define MSG_TAG_CALL_FUNCTION_MANY 3 | 70 | #define MSG_TAG_CALL_FUNCTION_MANY 3 |
71 | #define MSG_TAG_CALL_FUNCTION_SINGLE 4 | 71 | #define MSG_TAG_CALL_FUNCTION_SINGLE 4 |
72 | #define MSG_TAG_IRQ_WORK 5 | ||
72 | 73 | ||
73 | /* Hook for the generic smp_call_function_many() routine. */ | 74 | /* Hook for the generic smp_call_function_many() routine. */ |
74 | static inline void arch_send_call_function_ipi_mask(struct cpumask *mask) | 75 | static inline void arch_send_call_function_ipi_mask(struct cpumask *mask) |
diff --git a/arch/tile/include/asm/thread_info.h b/arch/tile/include/asm/thread_info.h index 98ee10a0ae89..f804c39a5e4d 100644 --- a/arch/tile/include/asm/thread_info.h +++ b/arch/tile/include/asm/thread_info.h | |||
@@ -124,6 +124,7 @@ extern void _cpu_idle(void); | |||
124 | #define TIF_NOTIFY_RESUME 8 /* callback before returning to user */ | 124 | #define TIF_NOTIFY_RESUME 8 /* callback before returning to user */ |
125 | #define TIF_SYSCALL_TRACEPOINT 9 /* syscall tracepoint instrumentation */ | 125 | #define TIF_SYSCALL_TRACEPOINT 9 /* syscall tracepoint instrumentation */ |
126 | #define TIF_POLLING_NRFLAG 10 /* idle is polling for TIF_NEED_RESCHED */ | 126 | #define TIF_POLLING_NRFLAG 10 /* idle is polling for TIF_NEED_RESCHED */ |
127 | #define TIF_NOHZ 11 /* in adaptive nohz mode */ | ||
127 | 128 | ||
128 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) | 129 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) |
129 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) | 130 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) |
@@ -136,14 +137,16 @@ extern void _cpu_idle(void); | |||
136 | #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) | 137 | #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) |
137 | #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) | 138 | #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) |
138 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) | 139 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) |
140 | #define _TIF_NOHZ (1<<TIF_NOHZ) | ||
139 | 141 | ||
140 | /* Work to do on any return to user space. */ | 142 | /* Work to do on any return to user space. */ |
141 | #define _TIF_ALLWORK_MASK \ | 143 | #define _TIF_ALLWORK_MASK \ |
142 | (_TIF_SIGPENDING|_TIF_NEED_RESCHED|_TIF_SINGLESTEP|\ | 144 | (_TIF_SIGPENDING | _TIF_NEED_RESCHED | _TIF_SINGLESTEP | \ |
143 | _TIF_ASYNC_TLB|_TIF_NOTIFY_RESUME) | 145 | _TIF_ASYNC_TLB | _TIF_NOTIFY_RESUME | _TIF_NOHZ) |
144 | 146 | ||
145 | /* Work to do at syscall entry. */ | 147 | /* Work to do at syscall entry. */ |
146 | #define _TIF_SYSCALL_ENTRY_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT) | 148 | #define _TIF_SYSCALL_ENTRY_WORK \ |
149 | (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ) | ||
147 | 150 | ||
148 | /* Work to do at syscall exit. */ | 151 | /* Work to do at syscall exit. */ |
149 | #define _TIF_SYSCALL_EXIT_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT) | 152 | #define _TIF_SYSCALL_EXIT_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT) |
diff --git a/arch/tile/include/hv/hypervisor.h b/arch/tile/include/hv/hypervisor.h index dfcdeb61ba34..e0e6af4e783b 100644 --- a/arch/tile/include/hv/hypervisor.h +++ b/arch/tile/include/hv/hypervisor.h | |||
@@ -961,7 +961,11 @@ typedef enum { | |||
961 | HV_INQ_TILES_HFH_CACHE = 2, | 961 | HV_INQ_TILES_HFH_CACHE = 2, |
962 | 962 | ||
963 | /** The set of tiles that can be legally used as a LOTAR for a PTE. */ | 963 | /** The set of tiles that can be legally used as a LOTAR for a PTE. */ |
964 | HV_INQ_TILES_LOTAR = 3 | 964 | HV_INQ_TILES_LOTAR = 3, |
965 | |||
966 | /** The set of "shared" driver tiles that the hypervisor may | ||
967 | * periodically interrupt. */ | ||
968 | HV_INQ_TILES_SHARED = 4 | ||
965 | } HV_InqTileSet; | 969 | } HV_InqTileSet; |
966 | 970 | ||
967 | /** Returns specific information about various sets of tiles within the | 971 | /** Returns specific information about various sets of tiles within the |