.\" This manpage has been automatically generated by docbook2man .\" from a DocBook document. This tool can be found at: .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . .TH "SN2_GLOBAL_TLB_PURGE" "9" "09 October 2005" "" "" .SH NAME sn2_global_tlb_purge \- globally purge translation cache of virtual address range .SH SYNOPSIS "SYNOPSIS" .sp \fB .sp void sn2_global_tlb_purge (unsigned long \fIstart\fB, unsigned long \fIend\fB, unsigned long \fInbits\fB); \fR .SH "ARGUMENTS" .TP \fB\fIstart\fB\fR start of virtual address range .TP \fB\fIend\fB\fR end of virtual address range .TP \fB\fInbits\fB\fR specifies number of bytes to purge per instruction (num = 1<<(nbits & 0xfc)) .SH "DESCRIPTION" .PP Purges the translation caches of all processors of the given virtual address range. .SH "NOTE" .PP - 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.