Re: Cache incoherencies

Benjamin Herrenschmidt (bh40@calva.net)
Fri, 27 Aug 1999 11:36:37 +0200


On Fri, Aug 27, 1999, Rogier Wolff <R.E.Wolff@BitWizard.nl> wrote:

>Alan Cox wrote:
>> > Say i have 12Mb RAM. So that's 3 4Mb pages. When I need an uncached
>> > page, I'd map it into the 64M-68M range, mark that range as uncached,
>> > and return the pointer in the 64-68M range. Now we have a "hole" in
>>
>> And the rest of that 4Mb range is loaded with critical data now running
>> uncached. Your box crawls like a 286.
>
>But you access it through the other window, which is still cached.
>
>Oh yeah, I'm indeed assuming that you can specify these attributes
>based on virtual adresses. If those go by physycal addresses, you're
>completely right, and this is not an option.

vmalloc implementation is a lot simpler, I just did it based on Russel's
patches, and it's plenty enough for what we need (I don't think a driver
will ever need more than one page uncached anyway). I added a definition
for PAGE_UNCACHED. I currently use a #ifdef PAGE_UNCACHED to export or
not vmalloc_uncached from vmalloc.c, but this is a temporary solution so
I can make sure my eth. driver works.

-- 
           Perso. e-mail: <mailto:bh40@calva.net>
           Work   e-mail: <mailto:benh@mipsys.com>
BenH.      Web   : <http://calvaweb.calvacom.fr/bh40/>

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/