Hugh Dickins wrote: > On Sat, 28 Apr 2007, Nick Piggin wrote: > >>OIC, you need a virtual address to evict the icache, so you can't >>flush at flush_dcache time? Or does ia64 have an instruction to >>flush the whole icache? (it would be worth testing, to see how much >>performance suffers). > > > I'm puzzled by that remark: the ia64 flush_icache_range always has > a virtual address, it uses the kernel virtual address; it takes no > interest in whether there's a user virtual address. I _think_ what it is doing is actually flushing dcache lines dirtied via the kernel virtual address (yes, I think flush_icache in lazy_mmu_prot_update is actually just flushing the dcache, but I could be wrong? [*]). There are supposedly no icache lines at that point[**]: the bug fix at the start of this thread is due to icache lines becoming present before the flush. [*] and if I'm right, that means that icache fills don't see dirty dcache, but rather always load from memory? I hope someone can answer these questions? [**] except due to _existing_ executable mappings, of course, but they seem to have been comprehensively disregarded... -- SUSE Labs, Novell Inc. - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Sat Apr 28 16:03:49 2007
This archive was generated by hypermail 2.1.8 : 2007-04-28 16:04:15 EST