linux/arch/s390/mm
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
..
cmm.c s390: convert use of typedef ctl_table to struct ctl_table 2013-10-28 08:36:25 +01:00
dump_pagetables.c s390/mm: cleanup page table definitions 2013-08-22 12:20:06 +02:00
extable.c s390/exceptions: switch to relative exception table entries 2012-09-26 15:45:10 +02:00
extmem.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
fault.c s390/irq: Use defines for external interruption codes 2014-04-03 14:30:52 +02:00
gup.c s390/gup: handle zero nr_pages case correctly 2013-10-24 17:17:01 +02:00
hugetlbpage.c s390/mm,tlb: optimize TLB flushing for zEC12 2014-04-03 14:31:00 +02:00
init.c s390/mm,tlb: optimize TLB flushing for zEC12 2014-04-03 14:31:00 +02:00
maccess.c s390/uaccess: remove copy_from_user_real() 2014-02-24 17:14:00 +01:00
Makefile s390/mem_detect: move memory detection code to mm folder 2013-05-02 15:50:22 +02:00
mem_detect.c s390/mem_detect: fix memory hole handling 2013-06-19 15:36:16 +02:00
mmap.c s390/mmap: randomize mmap base for bottom up direction 2013-11-13 12:09:08 +09:00
page-states.c s390/dump: Fix dump memory detection 2014-02-04 15:39:51 +01:00
pageattr.c s390/mm: do not initialize storage keys 2013-10-24 17:17:00 +02:00
pgtable.c s390/mm,tlb: optimize TLB flushing for zEC12 2014-04-03 14:31:00 +02:00
vmem.c s390/mm,tlb: optimize TLB flushing for zEC12 2014-04-03 14:31:00 +02:00