Kernel buffer not cached in the kernel space

From: Chivu Florin-FLCHIVU1
Date: Thu Feb 05 2004 - 04:44:20 EST


Does anybody know how can I allocate a physically contiguous memory buffer
that is not cached in the 2.4.20 kernel address space ? I tried so far to
allocate the buffer with kmalloc (or __get_free_pages() ) and then to use
ioremap_nocache() over alocated pages but it doesn't work for PPC for
example ( a HIGHMEM physical address is required by ioremap_nocache() ).

Also, as in the David M. 's cachetlb.txt document, the flush_dcache_page()
should ensure that the kernel writes to a page that is mapped into a user
virtual address space will be visible right away in user space ( the kenel
buffer is mmaped in user space as _not cached_ ). For PPC it looks like the
cache flush is somehow postponed and kernel writes are not visible to the
user. For ARM it works properly.

-- Florin

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