Re: how does one disable processor cache on memory allocated withget_free_pages?
From: Ross Tyler
Date: Thu Feb 26 2004 - 11:29:20 EST
Andrew,
Thank you for taking the time to reply. I really appreciate your help.
My understanding of ioremap_nocache is that it falls short of what I
need to do.
It is appropriate for, say, mapping physical memory on a PCI device that
is marked prefetchable (and otherwise subject to caching when mapped
with ioremap) as non-caching.
Can you confirm my understanding?
If so, it will not work for me as I am not mapping physical memory but
memory allocated by get_free_pages.
Do you concur?
AFAIK, the only way to access this memory without using processor cache
is to have a device driver memory map it for a process like
drivers/char/mem.c does.
When the memory is accessed through these memory mapped pages, the
access will not be cached.
When the memory is accessed through the get_free_pages pages, the access
will be cached.
Concur?
In order to access this process mapped memory from outside the context
of the process it was mapped for, one either needs to independently
remap it for the current process (what to do in interrupt code?) or set
up a kiobuf to the memory.
It has been my experience, however, that the pages referenced by the
kiobuf are the same pages returned by get_free_pages.
I expect these same pages have the same (caching) attributes associated
with them which would not work.
?
Again, I thank you for your support.
Andrew Morton wrote:
Ross Tyler <retyler@xxxxxxxxxxxx> wrote:
If so, what is the mechanism for modifying the entries and synchronizing
the configuration with the processor cache?
The only thing we have is ioremap_nocache()
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/