void sn2_global_tlb_purge (unsigned long start, unsigned long end, unsigned long nbits);
Purges the translation caches of all processors of the given virtual address range.
- cpu_vm_mask is a bit mask that indicates which cpus have loaded the context. - cpu_vm_mask is converted into a nodemask of the nodes containing the cpus in cpu_vm_mask. - if only one bit is set in cpu_vm_mask & it is the current cpu, then only the local TLB needs to be flushed. This flushing can be done using ptc.l. This is the common case & avoids the global spinlock. - if multiple cpus have loaded the context, then flushing has to be done with ptc.g/MMRs under protection of the global ptc_lock.