[Top] [All Lists]

Re: problems on D-cache alias in 2.4.22

To: Jun Sun <>
Subject: Re: problems on D-cache alias in 2.4.22
From: Peter Horton <>
Date: Wed, 19 May 2004 00:29:21 +0100
In-reply-to: <>
Original-recipient: rfc822;
References: <> <> <20040518191019.GA11007@skeleton-jack> <>
User-agent: Mutt/
On Tue, May 18, 2004 at 03:25:39PM -0700, Jun Sun wrote:
> > 
> > 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 kernel (or driver) should flush the page if it is mapped to user space 
> and the content is modified.

We just need a hook so that we can flush a page from the D-cache once
it's read from a block device into the page cache.

> > 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.
> > 
> It should be fixed at a higher layer before we return back to userland.
> If you can illustrate the call stack, I can probably take a look and
> give my opinion.

No call stack, sorry. It was months ago that I debugged this.

IIRC I picked up the aliases with memcmp() in do_no_page() in


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