Skip to contentSkip to conversation

NO_CACHE and mmaped pages

DISCUSSION Stephen Williams 1 participant 1 message Aug 19, 2005

lore
Share & tools
lore
#0 lore raw

I think the answer is "Yes", but I want to get a second opinion.

I need memory that is mapped into user space (so that I can manage it as a BIG heap) but is not cached by the CPU, a PPC405GPr running kernel 2.4.30something.

A possible solution is to in my driver support mmap and implement the nopage function. The pages that I create in the nopage will be allocated by the consistent_alloc function, which returns pages marked as NO_CACHE, and so should be uncached.

The question is, "Is this NO_CACHE status/flag preserved when it is mapped into the user address space? So far as I can see browsing the do_no_page function in memory.c, that bit is indeed preserved in the mapping. Am I right?

Alternatively, is there a way to change a region of memory no unpaged, a la mlock for locking pages? I would rather not keep a table of page pointers for 256Meg of memory just so I can do a consistent_free later:-(

Signature · 4 lines
Steve Williams                "The woods are lovely, dark and deep.
steve at icarus.com           But I have promises to keep,
http://www.icarus.com         and lines to code before I sleep,
http://www.picturel.com       And lines to code before I sleep."