From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Fri, 25 Aug 2000 12:59:19 -0400 (EDT) From: "Benjamin C.R. LaHaise" Subject: Re: pgd/pmd/pte and x86 kernel virtual addresses In-Reply-To: <20000825165116Z131177-250+7@kanga.kvack.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-linux-mm@kvack.org Return-Path: To: Timur Tabi Cc: Linux MM mailing list List-ID: On Fri, 25 Aug 2000, Timur Tabi wrote: > ** Reply to message from "Benjamin C.R. LaHaise" on Fri, 25 > Aug 2000 12:45:18 -0400 (EDT) > > > > > What I'm trying to do is allocate some memory via get_free_pages, and then mark > > > that memory as uncacheable. > > > > ioremap_nocache should be able to do what you want. > > Well, that's what I tried to explain in my previous email which people seem to > be ignoring. > > I tried ioremap_nocache, and it doesn't appear to be working. There are a > number of problems: > > 1) I'm trying to mark regular RAM as uncacheable, and ioremap_nocache() > requires me to munge the PG_Reservered bit for each page before I can do that. > Ugly. Yeap, that's right. > 2) ioremap_nocache() allocates virtual RAM. I already have a virtual address, > I don't need another one. That's because there are no ptes for most RAM in the kernel. ioremap_nocache does not allocate RAM, only a mapping for the address space. Actually, passing in physical RAM to ioremap_nocache may not work on all platforms. > 3) The unmap function for ioremap_nocache() is a no-op. So after I remap and > mark the page as uncacheable, there's no way to restore it after I'm done! Bummer. > 4) Even with all this, it appears that the function isn't working. I've > attached a logical analyzer to the memory bus, and writes are not being sent > out, leading me to believe the memory is still being cached. On x86, you're better off setting the MTRRs to get non-cached behaviour, but that's still the wrong thing to do when you're talking about main memory. Better still is to not rely on uncachable mappings at all. x86 is a cache coherent architechure -- why do you need uncachable mappings of main memory???. -ben -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux.eu.org/Linux-MM/