2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-19 10:44:14 +08:00
linux-next/arch/sh/kernel
Peter Zijlstra a8b0ca17b8 perf: Remove the nmi parameter from the swevent and overflow interface
The nmi parameter indicated if we could do wakeups from the current
context, if not, we would set some state and self-IPI and let the
resulting interrupt do the wakeup.

For the various event classes:

  - hardware: nmi=0; PMI is in fact an NMI or we run irq_work_run from
    the PMI-tail (ARM etc.)
  - tracepoint: nmi=0; since tracepoint could be from NMI context.
  - software: nmi=[0,1]; some, like the schedule thing cannot
    perform wakeups, and hence need 0.

As one can see, there is very little nmi=1 usage, and the down-side of
not using it is that on some platforms some software events can have a
jiffy delay in wakeup (when arch_irq_work_raise isn't implemented).

The up-side however is that we can remove the nmi parameter and save a
bunch of conditionals in fast paths.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Michael Cree <mcree@orcon.net.nz>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Deng-Cheng Zhu <dengcheng.zhu@gmail.com>
Cc: Anton Blanchard <anton@samba.org>
Cc: Eric B Munson <emunson@mgebm.net>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: David S. Miller <davem@davemloft.net>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: Don Zickus <dzickus@redhat.com>
Link: http://lkml.kernel.org/n/tip-agjev8eu666tvknpb3iaj0fg@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2011-07-01 11:06:35 +02:00
..
cpu sh: sh7724: Add USBHS DMAEngine support 2011-06-16 15:05:46 +09:00
vsyscall mm: arch: rename in_gate_area_no_task to in_gate_area_no_mm 2011-03-23 16:36:55 -04:00
.gitignore sh: Add an arch/sh/kernel/.gitignore 2008-07-29 08:29:32 +09:00
asm-offsets.c sh: Add R-standby sleep mode support 2009-10-30 14:38:45 +09:00
cpufreq.c arch/sh/kernel: Use set_cpus_allowed_ptr 2010-03-29 11:40:37 +09:00
crash_dump.c crash_dump: export is_kdump_kernel to modules, consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn 2011-03-23 19:47:19 -07:00
debugtraps.S sh: kgdb: Rework breakpoint handling on top of notifier chain. 2009-12-22 12:44:14 +09:00
disassemble.c sh: Add a simple code dumper for SUPERH32 show_regs(). 2008-12-22 18:43:49 +09:00
dma-nommu.c sh: Revamp PCI DMA coherence Kconfig bits. 2009-10-27 10:35:02 +09:00
dumpstack.c sh: remove warning and warning_symbol from struct stacktrace_ops 2011-05-23 14:42:15 +09:00
dwarf.c sh: handle early calls to return_address() when using dwarf unwinder. 2010-05-25 16:16:40 +09:00
entry-common.S sh: Correct the offset of the return address in ret_from_exception 2010-02-08 10:46:46 +09:00
ftrace.c tracing: Unify arch_syscall_addr() implementations 2010-02-17 13:07:21 +01:00
head_32.S sh: boot kernel with SR.BL set 2010-09-30 09:43:32 +09:00
head_64.S sh64: Fix up early serial fixmap. 2010-01-12 15:22:26 +09:00
hw_breakpoint.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-05-19 11:36:03 -07:00
idle.c sh: CPU hotplug support. 2010-04-26 19:08:55 +09:00
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
io_trapped.c sh: wire up perf alignment and emulation faults. 2010-10-13 06:55:26 +09:00
io.c sh: support for platforms without PIO. 2010-06-02 16:31:42 +09:00
iomap.c sh: machvec IO death. 2010-11-01 09:49:04 -04:00
ioport.c sh: machvec IO death. 2010-11-01 09:49:04 -04:00
irq_32.c Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
irq_64.c sh64: update for IRQ flag handling naming changes. 2010-10-27 15:34:51 +09:00
irq.c Fix common misspellings 2011-03-31 11:26:23 -03:00
kdebugfs.c sh: provide generic arch_debugfs_dir. 2010-09-24 04:04:26 +09:00
kgdb.c kgdb,sh: update superh kgdb exception handling 2010-05-20 21:04:20 -05:00
kprobes.c sh: kprobes SMP support. 2010-06-14 17:06:10 +09:00
localtimer.c sh: CPU hotplug support. 2010-04-26 19:08:55 +09:00
machine_kexec.c lmb: rename to memblock 2010-07-14 17:14:00 +10:00
machvec.c sh: machvec IO death. 2010-11-01 09:49:04 -04:00
Makefile Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-01-06 16:50:35 -08:00
module.c sh: Ignore R_SH_NONE module relocations. 2011-05-23 17:09:30 +09:00
nmi_debug.c sh: nmi_debug support. 2009-09-01 17:38:32 +09:00
perf_callchain.c sh: remove warning and warning_symbol from struct stacktrace_ops 2011-05-23 14:42:15 +09:00
perf_event.c perf: Dynamic pmu types 2010-12-16 11:36:43 +01:00
process_32.c sh, exec: remove redundant set_fs(USER_DS) 2011-06-14 15:15:58 +09:00
process_64.c Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
process.c sh: Fix build alloc_thread_info_node function 2011-03-24 15:19:14 +09:00
ptrace_32.c perf: Remove the nmi parameter from the swevent and overflow interface 2011-07-01 11:06:35 +02:00
ptrace_64.c sh: Fix ptrace fpu state initialisation 2011-03-23 22:17:52 +09:00
ptrace.c sh: Add kprobe-based event tracer. 2010-06-14 15:16:53 +09:00
reboot.c sh: Provide a global TLB flush for U/I-TLB clear. 2010-07-02 15:44:09 +09:00
relocate_kernel.S sh: add kexec jump support 2009-03-18 18:57:43 +09:00
return_address.c sh: handle early calls to return_address() when using dwarf unwinder. 2010-05-25 16:16:40 +09:00
setup.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sh_bios.c sh: sh_bios detection. 2010-01-12 18:42:52 +09:00
sh_ksyms_32.c sh: Clean up more superfluous symbol exports. 2009-10-27 11:51:19 +09:00
sh_ksyms_64.c sh: Clean up more superfluous symbol exports. 2009-10-27 11:51:19 +09:00
signal_32.c sh: Mass ctrl_in/outX to __raw_read/writeX conversion. 2010-01-26 12:58:40 +09:00
signal_64.c Merge branch 'sh/stable-updates' 2010-02-15 14:49:37 +09:00
smp.c sched: Provide scheduler_ipi() callback in response to smp_send_reschedule() 2011-04-14 08:52:32 +02:00
stacktrace.c sh: remove warning and warning_symbol from struct stacktrace_ops 2011-05-23 14:42:15 +09:00
swsusp.c sh: hibernation support 2009-03-10 12:55:40 +09:00
sys_sh32.c Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
sys_sh64.c Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
sys_sh.c sh: avoid to flush all cache in sys_cacheflush 2010-11-17 17:55:30 +09:00
syscalls_32.S ns: Wire up the setns system call 2011-05-28 10:48:39 -07:00
syscalls_64.S ns: Wire up the setns system call 2011-05-28 10:48:39 -07:00
time.c sh: Convert sh to use read/update_persistent_clock 2010-03-05 02:04:38 +09:00
topology.c sh: Fix sh build failure when CONFIG_SFC=m 2011-01-19 12:16:55 +09:00
traps_32.c perf: Remove the nmi parameter from the swevent and overflow interface 2011-07-01 11:06:35 +02:00
traps_64.c perf: Remove the nmi parameter from the swevent and overflow interface 2011-07-01 11:06:35 +02:00
traps.c sh: Mass ctrl_in/outX to __raw_read/writeX conversion. 2010-01-26 12:58:40 +09:00
unwinder.c sh: unwinder: Use a special bug flag for unwinder traps. 2009-08-22 05:28:25 +09:00
vmlinux.lds.S percpu: Always align percpu output section to PAGE_SIZE 2011-03-24 18:50:09 +01:00