linux/arch/s390/kernel
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
..
vdso32
vdso64
.gitignore
asm-offsets.c
audit.c
audit.h
base.S
cache.c
compat_audit.c
compat_linux.c s390/compat: add sync_file_range and fallocate compat syscalls 2014-03-04 09:05:47 +01:00
compat_linux.h s390/compat: get rid of compat wrapper assembly code 2014-03-06 16:30:48 +01:00
compat_ptrace.h
compat_signal.c s390/compat: get rid of compat wrapper assembly code 2014-03-06 16:30:48 +01:00
compat_wrapper.c s390/compat: add copyright statement 2014-03-29 10:51:28 +01:00
cpcmd.c
crash_dump.c
debug.c
diag.c
dis.c
dumpstack.c
early.c s390/mm,tlb: optimize TLB flushing for zEC12 2014-04-03 14:31:00 +02:00
ebcdic.c
entry64.S s390/mm,tlb: race of lazy TLB flush vs. recreation of TLB entries 2014-02-21 08:50:18 +01:00
entry.h s390/compat: get rid of compat wrapper assembly code 2014-03-06 16:30:48 +01:00
entry.S s390/mm,tlb: race of lazy TLB flush vs. recreation of TLB entries 2014-02-21 08:50:18 +01:00
ftrace.c
head31.S
head64.S
head_kdump.S
head.S
ipl.c
irq.c s390/irq: Use defines for external interruption codes 2014-04-03 14:30:52 +02:00
jump_label.c
kprobes.c
lgr.c
machine_kexec.c
Makefile s390/compat: remove compat exec domain 2014-03-07 15:26:02 +01:00
mcount64.S
mcount.S
module.c
nmi.c
os_info.c
perf_cpum_cf_events.c
perf_cpum_cf.c s390/irq: Use defines for external interruption codes 2014-04-03 14:30:52 +02:00
perf_cpum_sf.c s390/irq: Use defines for external interruption codes 2014-04-03 14:30:52 +02:00
perf_event.c s390/perf: make print_debug_cf() static 2014-03-14 12:59:32 +01:00
pgm_check.S
process.c
processor.c
ptrace.c s390/ptrace: add support for PTRACE_SINGLEBLOCK 2014-03-14 12:59:38 +01:00
reipl64.S
reipl.S
relocate_kernel64.S
relocate_kernel.S
runtime_instr.c s390/irq: Use defines for external interruption codes 2014-04-03 14:30:52 +02:00
s390_ksyms.c
sclp.S s390/irq: Use defines for external interruption codes 2014-04-03 14:30:52 +02:00
setup.c
signal.c
smp.c s390/mm,tlb: optimize TLB flushing for zEC12 2014-04-03 14:31:00 +02:00
stacktrace.c
suspend.c
swsusp_asm64.S
sys_s390.c
syscalls.S s390/compat: get rid of compat wrapper assembly code 2014-03-06 16:30:48 +01:00
sysinfo.c
time.c s390/irq: Use defines for external interruption codes 2014-04-03 14:30:52 +02:00
topology.c s390/topology: Remove call to update_cpu_masks() 2014-03-07 15:26:05 +01:00
traps.c
vdso.c
vmlinux.lds.S
vtime.c