linux-mips
[Top] [All Lists]

Re: problems on D-cache alias in 2.4.22

To: Jun Sun <jsun@mvista.com>
Subject: Re: problems on D-cache alias in 2.4.22
From: Peter Horton <pdh@colonel-panic.org>
Date: Tue, 18 May 2004 20:10:19 +0100
Cc: Bob Breuer <bbreuer@righthandtech.com>, linux-mips@linux-mips.org
In-reply-to: <20040518114519.C5390@mvista.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <B482D8AA59BF244F99AFE7520D74BF9609D4B3@server1.RightHand.righthandtech.com> <20040518114519.C5390@mvista.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.5.1+cvs20040105i
On Tue, May 18, 2004 at 11:45:19AM -0700, Jun Sun wrote:
> 
> Like others suggested, this is not the right fix.  flush_page_to_ram()
> is correctly nullified.  Its job should be done somewhere else
> by other routines.
> 
> Here are a couple of random ideas for finding the true root cause:
> 

We know what the true root cause is :-)

IDE PIO fills the D-cache with the read data (write allocate) as it
copies it to the page cache.

The kernel maps the page cache page into user space ... BANG! possible
D-cache alias.

The kernel doesn't bother flushing the page cache page from the D-cache
as it's never accessed at it's page cache address.

The current fix in the Cobalt patches (2.4 & 2.6) just flushes the read
data out of the D-cache after every IDE insw()/insl(). This is the least
intrusive fix.

Some Sparc machines also see this problem.

P.

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