linux/arch/arm/mm
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
..
abort-ev4.S
abort-ev4t.S
abort-ev5t.S
abort-ev5tj.S
abort-ev6.S ARM: v6k: select clear exclusive code seqences according to V6 variants 2011-02-02 21:23:28 +00:00
abort-ev7.S arm: mm: qsd8x50: Fix incorrect permission faults 2010-05-03 11:15:05 -07:00
abort-lv4t.S
abort-macro.S
abort-nommu.S
alignment.c ARM: 6401/1: plug a race in the alignment trap handler 2010-09-23 15:17:04 +01:00
cache-fa.S ARM: 6466/1: implement flush_icache_all for the rest of the CPUs 2010-10-28 13:54:28 +01:00
cache-feroceon-l2.c ARM: fix cache-feroceon-l2 after stack based kmap_atomic() 2010-12-19 12:57:16 -05:00
cache-l2x0.c Merge branch 'misc' into devel 2011-03-16 23:35:25 +00:00
cache-tauros2.c ARM: Add Tauros2 L2 cache controller support 2009-11-27 15:43:21 -05:00
cache-v3.S ARM: 6466/1: implement flush_icache_all for the rest of the CPUs 2010-10-28 13:54:28 +01:00
cache-v4.S ARM: 6466/1: implement flush_icache_all for the rest of the CPUs 2010-10-28 13:54:28 +01:00
cache-v4wb.S Fix common misspellings 2011-03-31 11:26:23 -03:00
cache-v4wt.S Fix common misspellings 2011-03-31 11:26:23 -03:00
cache-v6.S ARM: 6941/1: cache: ensure MVA is cacheline aligned in flush_kern_dcache_area 2011-05-26 12:14:32 +01:00
cache-v7.S ARM: 6941/1: cache: ensure MVA is cacheline aligned in flush_kern_dcache_area 2011-05-26 12:14:32 +01:00
cache-xsc3l2.c ARM: fix cache-xsc3l2 after stack based kmap_atomic() 2010-12-19 12:57:08 -05:00
context.c Revert "ARM: 6944/1: mm: allow ASID 0 to be allocated to tasks" 2011-06-09 10:13:16 +01:00
copypage-fa.c ARM: Gemini: fix compiler error in copypage-fa.c 2010-04-27 12:45:10 +02:00
copypage-feroceon.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-v3.c
copypage-v4mc.c ARM: 6379/1: Assume new page cache pages have dirty D-cache 2010-09-19 12:17:43 +01:00
copypage-v4wb.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-v4wt.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-v6.c ARM: 6379/1: Assume new page cache pages have dirty D-cache 2010-09-19 12:17:43 +01:00
copypage-xsc3.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-xscale.c ARM: 6379/1: Assume new page cache pages have dirty D-cache 2010-09-19 12:17:43 +01:00
dma-mapping.c Merge branches 'fixes', 'pgt-next' and 'versatile' into devel 2011-03-20 09:32:12 +00:00
extable.c
fault-armv.c ARM: pgtable: add pud-level code 2011-02-21 19:24:14 +00:00
fault.c perf: Remove the nmi parameter from the swevent and overflow interface 2011-07-01 11:06:35 +02:00
fault.h
flush.c Merge branches 'consolidate', 'ep93xx', 'fixes', 'misc', 'mmci', 'remove' and 'spear' into for-linus 2011-05-23 19:27:40 +01:00
highmem.c ARM: get rid of kmap_high_l1_vipt() 2010-12-19 12:56:46 -05:00
idmap.c ARM: pgtable: add pud-level code 2011-02-21 19:24:14 +00:00
init.c ARM: initrd: disable initrds outside of memory 2011-06-11 00:43:21 +01:00
iomap.c
ioremap.c Revert "ARM: relax ioremap prohibition (309caa9) for -final and -stable" 2010-12-24 09:49:52 +00:00
Kconfig Merge branch 'devel-stable' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-03-17 19:08:06 -07:00
Makefile ARM: v6k: introduce CPU_V6K option 2011-02-02 21:23:26 +00:00
mm.h ARM: kill pmd_off() 2011-05-26 19:50:30 +01:00
mmap.c ARM: 6877/1: the ADDR_NO_RANDOMIZE personality flag should be honored with mmap() 2011-04-14 09:15:24 +01:00
mmu.c ARM: 6914/1: sparsemem: fix highmem detection when using SPARSEMEM 2011-05-26 10:23:25 +01:00
nommu.c ARM: Convert platform reservations to use LMB rather than bootmem 2010-07-27 08:48:23 +01:00
pabort-legacy.S
pabort-v6.S
pabort-v7.S
pgd.c Merge branches 'fixes', 'pgt-next' and 'versatile' into devel 2011-03-20 09:32:12 +00:00
proc-arm6_7.S ARM: pm: add generic CPU suspend/resume support 2011-02-22 17:11:23 +00:00
proc-arm7tdmi.S ARM: 6948/1: Fix .size directives for __arm{7,9}tdmi_proc_info 2011-06-06 10:56:10 +01:00
proc-arm9tdmi.S ARM: 6948/1: Fix .size directives for __arm{7,9}tdmi_proc_info 2011-06-06 10:56:10 +01:00
proc-arm720.S Fix common misspellings 2011-03-31 11:26:23 -03:00
proc-arm740.S ARM: pm: add generic CPU suspend/resume support 2011-02-22 17:11:23 +00:00
proc-arm920.S Merge branch 'fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into fixes 2011-04-13 23:32:13 +01:00
proc-arm922.S Fix common misspellings 2011-03-31 11:26:23 -03:00
proc-arm925.S Fix common misspellings 2011-03-31 11:26:23 -03:00
proc-arm926.S ARM: Make consolidated PM sleep code depend on PM_SLEEP 2011-04-02 10:08:55 +01:00
proc-arm940.S ARM: pm: add generic CPU suspend/resume support 2011-02-22 17:11:23 +00:00
proc-arm946.S ARM: pm: add generic CPU suspend/resume support 2011-02-22 17:11:23 +00:00
proc-arm1020.S Fix common misspellings 2011-03-31 11:26:23 -03:00
proc-arm1020e.S Fix common misspellings 2011-03-31 11:26:23 -03:00
proc-arm1022.S Fix common misspellings 2011-03-31 11:26:23 -03:00
proc-arm1026.S Fix common misspellings 2011-03-31 11:26:23 -03:00
proc-fa526.S ARM: pm: add generic CPU suspend/resume support 2011-02-22 17:11:23 +00:00
proc-feroceon.S ARM: pm: add generic CPU suspend/resume support 2011-02-22 17:11:23 +00:00
proc-macros.S Fix common misspellings 2011-03-31 11:26:23 -03:00
proc-mohawk.S ARM: pm: add generic CPU suspend/resume support 2011-02-22 17:11:23 +00:00
proc-sa110.S ARM: pm: add generic CPU suspend/resume support 2011-02-22 17:11:23 +00:00
proc-sa1100.S ARM: Make consolidated PM sleep code depend on PM_SLEEP 2011-04-02 10:08:55 +01:00
proc-syms.c ARM: add size argument to __cpuc_flush_dcache_page 2009-12-14 14:53:22 +00:00
proc-v6.S ARM: 6942/1: mm: make TTBR1 always point to swapper_pg_dir on ARMv6/7 2011-05-26 12:14:32 +01:00
proc-v7.S ARM: pm: ensure ARMv7 CPUs save and restore the TLS register 2011-06-24 08:47:09 +01:00
proc-xsc3.S ARM: Make consolidated PM sleep code depend on PM_SLEEP 2011-04-02 10:08:55 +01:00
proc-xscale.S ARM: Fix .size directive for xscale_dma_a0_map_area 2011-04-28 17:56:31 +08:00
tlb-fa.S
tlb-v3.S
tlb-v4.S
tlb-v4wb.S
tlb-v4wbi.S
tlb-v6.S
tlb-v7.S ARM: Allow SMP kernels to boot on UP systems 2010-10-04 20:23:36 +01:00
vmregion.c ARM: DMA: top-down allocation in DMA coherent region 2011-02-23 17:24:11 +00:00
vmregion.h ARM: DMA coherent allocator: align remapped addresses 2010-07-27 10:43:48 +01:00