Re: How to make mmap'ed kernel buffer non-cacheable

From: Daniel J Blueman
Date: Fri Apr 20 2007 - 09:33:15 EST


On 20 Apr, 14:20, Bhuvan Kumar MITTAL <bhuvan.mit...@xxxxxx> wrote:
Hi,
I am working on an audio device driver development on Linux. I have a kernel
buffer which I have mapped to user space using mmap call from user space. My
problem is that the data which comes to the kernel buffer is getting dropped in
user space and I get only 50-60% of the data which is randomly ordered. The user
to kernel level buffer address translation code is fine and I suspect this data
dropping is occurring coz the kernel buffer is cacheable. Please suggest me some
way of making the entire buffer non cacheable. I am stuck on this for quite a while
now.

You can use rdmsr() in your driver to check if the page attribute
table MSR is available, then find and/or add the right entry in the
table to set in each page's flags. This is documented in the Intel
IA-32 Intel Architecture Software Developer's Manuals at intel.com.

Dan
--
Daniel J Blueman
-
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/