linux 内核cache

Posted chencesc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 内核cache相关的知识,希望对你有一定的参考价值。

写驱动总会碰到和cache相关的东西

记录下用到的接口:

 

驱动中用的内存地址一般为内核地址,用户调用驱动接口时,有时候会把自己申请的地址赋给驱动,此时用户kmalloc得到内核地址,

再用mmap获得映射出来的用户地址,此时用户使用用户地址的时候,会用到cache,为了确保数据的实时性,有时候驱动中应该对cache进行一些操作

 

1. __sync_cache_range_r((void*)start, size);  

用户读取buffer数据时,会从cache中读取,而这个接口会使内核地址对应的cache失效,使用后,用户讲直接从实际物理地址读取数据,

从而保证了数据的正确性

 

2. __sync_cache_range_w((void*)start, size);

用户写数据时,会先写到cache中,驱动为了保证数据及时写到实际物理地址,用这个接口,cache失效数据写到物理地址

 

以上是关于linux 内核cache的主要内容,如果未能解决你的问题,请参考以下文章

linux内核源码分析之slab

Linux内核Page Cache和Buffer Cache关系及演化历史

Linux内核Page Cache和Buffer Cache关系及演化历史

如何用linux内核检查进程内存

Linux 内核的文件 Cache 管理机制介绍-ibm

linux内核源码分析之slab