Messages in this thread | | | Date | Fri, 27 Aug 1999 11:36:37 +0200 | From | Benjamin Herrenschmidt <> | Subject | Re: Cache incoherencies |
| |
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/
| |