Re: Cache incoherencies

Ralf Baechle (ralf@uni-koblenz.de)
Sat, 28 Aug 1999 12:57:24 +0200


On Fri, Aug 27, 1999 at 02:58:10PM +0100, Alan Cox wrote:

> > 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.
>
> The other advantage of vmalloc based stuff is it covers things like MIPS boxes
> with fixed area partitioning because I can force the return to do stuff like
>
> x=_KSEG_UNCACHED|vmalloc(size)

Nope, that only works for kernel memory via kmalloc/__get_free_pages:

addr = get_free_page(GFP_KERNEL);
addr = KSEG1ADDR(addr); /* => addr |= 0x20000000 */

vmalloc caching attributes can only be set in the page table.

Ralf

-
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/