linux/arch
Martin Schwidefsky 1b948d6cae s390/mm,tlb: optimize TLB flushing for zEC12
The zEC12 machines introduced the local-clearing control for the IDTE
and IPTE instruction. If the control is set only the TLB of the local
CPU is cleared of entries, either all entries of a single address space
for IDTE, or the entry for a single page-table entry for IPTE.
Without the local-clearing control the TLB flush is broadcasted to all
CPUs in the configuration, which is expensive.

The reset of the bit mask of the CPUs that need flushing after a
non-local IDTE is tricky. As TLB entries for an address space remain
in the TLB even if the address space is detached a new bit field is
required to keep track of attached CPUs vs. CPUs in the need of a
flush. After a non-local flush with IDTE the bit-field of attached CPUs
is copied to the bit-field of CPUs in need of a flush. The ordering
of operations on cpu_attach_mask, attach_count and mm_cpumask(mm) is
such that an underindication in mm_cpumask(mm) is prevented but an
overindication in mm_cpumask(mm) is possible.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2014-04-03 14:31:00 +02:00
..
alpha locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
arc Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
arm Merge branch 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2014-03-31 15:27:37 -07:00
arm64 Merge branch 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2014-03-31 15:27:37 -07:00
avr32 Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
blackfin locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
c6x Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
cris Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
frv locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
hexagon locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
ia64 Miscellaneous ia64 fixes for 3.15 merge window 2014-03-31 15:01:16 -07:00
m32r locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
m68k Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2014-03-31 15:00:32 -07:00
metag locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
microblaze Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
mips Merge branch 'compat' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2014-03-31 14:32:17 -07:00
mn10300 locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
openrisc locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
parisc Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
powerpc Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 11:21:19 -07:00
s390 s390/mm,tlb: optimize TLB flushing for zEC12 2014-04-03 14:31:00 +02:00
score locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
sh Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 11:21:19 -07:00
sparc Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 11:21:19 -07:00
tile locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
um locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
unicore32 locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
x86 Merge branch 'compat' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2014-03-31 14:32:17 -07:00
xtensa Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
.gitignore
Kconfig