Re: [rfc] generic allocator and mspec driver

Jesse Barnes
2005-02-03T17:06:53Z

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