linux/arch/arc
Vineet Gupta 947bf103fc ARC: [ASID] Track ASID allocation cycles/generations
This helps remove asid-to-mm reverse map

While mm->context.id contains the ASID assigned to a process, our ASID
allocator also used asid_mm_map[] reverse map. In a new allocation
cycle (mm->ASID >= @asid_cache), the Round Robin ASID allocator used this
to check if new @asid_cache belonged to some mm2 (from prev cycle).
If so, it could locate that mm using the ASID reverse map, and mark that
mm as unallocated ASID, to force it to refresh at the time of switch_mm()

However, for SMP, the reverse map has to be maintained per CPU, so
becomes 2 dimensional, hence got rid of it.

With reverse map gone, it is NOT possible to reach out to current
assignee. So we track the ASID allocation generation/cycle and
on every switch_mm(), check if the current generation of CPU ASID is
same as mm's ASID; If not it is refreshed.

(Based loosely on arch/sh implementation)

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2013-08-30 21:42:19 +05:30
..
boot ARC: Add some .gitignore entries 2013-08-26 09:40:24 +05:30
configs Couple of Platform updates (Device Tree files primarily) given that the 2013-07-10 10:11:26 -07:00
include ARC: [ASID] Track ASID allocation cycles/generations 2013-08-30 21:42:19 +05:30
kernel ARC: Entry Handler tweaks: Optimize away redundant IRQ_DISABLE_SAVE 2013-08-26 09:40:25 +05:30
lib ARC: [lib] strchr breakage in Big-endian configuration 2013-08-24 11:24:53 -07:00
mm ARC: [ASID] Track ASID allocation cycles/generations 2013-08-30 21:42:19 +05:30
oprofile ARC: OProfile support 2013-02-15 23:16:00 +05:30
plat-arcfpga Couple of Platform updates (Device Tree files primarily) given that the 2013-07-10 10:11:26 -07:00
plat-tb10x ARC: [TB10x] Updates for irqchip driver 2013-06-28 15:07:42 +05:30
Kbuild
Kconfig Merge branch 'kconfig-diet' from Dave Hansen 2013-07-04 11:25:51 -07:00
Kconfig.debug consolidate per-arch stack overflow debugging options 2013-07-04 11:25:39 -07:00
Makefile ARC: Adjustments for gcc 4.8 2013-06-27 14:35:32 +05:30