On Thursday, February 3, 2005 12:38 am, Jes Sorensen wrote: > Jack> ... + printk(KERN_WARNING "smp_call_function failed for " + > Jack> "mspec_ipi_visibility! (%i)\n", status); + } + + > Jack> sn_flush_all_caches((unsigned long)tmp, IA64_GRANULE_SIZE); > > Jack> Don't the TLBs need to be flushed before you flush > Jack> caches. Otherwise, the cpu may reload data via speculation. > > Jack> I dont see any TLB flushing of the kernel TLB entries that map > Jack> the chunks. That needs to be done. ... > > I thought about this one a fair bit after reading your comments and I > don't think it's an issue. The pages in the kernel's cached mapping > are identity mapped which means we shouldn't see any tlbs for this, > which leaves us with just tlbs for pages that have explicitly been > mapped somewhere - user tlbs should be removed when a process is shot > down or pages unmapped and vfree() calls flush_tlb_all(). Or, am I > missing something?
Even identity mapped regions have TLB entries associated with them. The translation registers only cover the code and static data section, afaik. When we take a miss on an identity mapped region, the kernel still does an 'itc', so you'll still need to purge the TLB. Jesse - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
