linux-mips
[Top] [All Lists]

Re: Broadcom Swarm support

To: ralf@linux-mips.org
Subject: Re: Broadcom Swarm support
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Sun, 28 Jun 2009 01:09:06 +0900 (JST)
Cc: KKylheku@zeugmasystems.com, aurelien@aurel32.net, linux-mips@linux-mips.org
In-reply-to: <20090627154811.GA22264@linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20090626232432.GB3235@linux-mips.org> <20090627.225933.208964286.anemo@mba.ocn.ne.jp> <20090627154811.GA22264@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
On Sat, 27 Jun 2009 16:48:11 +0100, Ralf Baechle <ralf@linux-mips.org> wrote:
> On Sat, Jun 27, 2009 at 10:59:33PM +0900, Atsushi Nemoto wrote:
> 
> > A bit off-topic question.  The update_mmu_cache (or __update_cache)
> > itself does not flush icache.  When icache is invalidated (especially
> > VIPT case) ?
> 
> Not off-topic at all in this thread.
> 
> The I-cache for page just being loaded is clean so no flushing needed.  It
> is clean because when the page has been unmapped it was flushed or because
> the CPU switched to a fresh ASID.

Then, flush_cache_range or flush_cache_page should be called then the
page was unmmapped, right?  How about flush_cache_mm?  It does not
flush icache currently.

And how about kernel __init code pages?  These pages are just freed on
free_initmem.  Also how about code pages used by a module which is to
be unloaded from kernel?

> The reason for this bug is that when data is being shoveled around by the
> processor (as opposed to DMA) as on PIO block devices it'll end up sitting
> in the D-cache so I-cache refills will grab stale data from S-cache or
> memory.

Yes, I suppose so on this swarm case, but I'm just thinking of other
case breaking icache coherency...

---
Atsushi Nemoto

<Prev in Thread] Current Thread [Next in Thread>