icache flushing (Re: Broadcom Swarm support)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 24 Jun 2009 15:18:24 -0700, "Kaz Kylheku" <KKylheku@xxxxxxxxxxxxxxxxx> wrote:
> At some point in the kernel history, Ralfie decided that
> the flush_icache_page function is unnecessary and
> turned it into a MIPS-wide noop. But the SB1 core, which has
> a VIVT instruction cache, it appears that there
> is some kind of issue whereby when it
> is handling a fault for a not-present virtual page,
> it somehow ends up with bad data in the instruction
> cache---perhaps an inconsistent state due to not having
> been able to complete the fetch, but having initiated
> a cache update on the expectation that the fetch
> will complete. It seems that the the fault handler
> is expected to do a flush.

Looking at current code, I also have some questions aboud icache
flushing.

* flush_cache_mm does not flush icache.  Is it OK?

* flush_cache_{vmap,vunmap} does not flush icache.  When icache used
  by modules flushed after unloading?

* __update_cache, copy_user_highpage does not flush icache even if
  !cpu_has_ic_fills_f_dc.  Is it OK?

* free_initmem does not flush icache.  When these init pages are
  reused, how corresponding icache will be flushed?

I suppose flushing icache in flush_icache_page() will hide real bugs
somewhere else...

---
Atsushi Nemoto


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux