首页 > 系统服务 > 详细

linux 内核cache

时间:2016-10-21 10:27:38      阅读:344      评论:0      收藏:0      [点我收藏+]

写驱动总会碰到和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

原文:http://www.cnblogs.com/chencesc/p/5983397.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!