Linux Kernel中刷cache函数__clean_dcache_area_pou()的解读

268 篇文章 389 订阅

快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈

在这里插入图片描述

引流关键词: Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…

快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈

说明:
在默认情况下,本文讲述的都是ARMV8-aarch64架构,linux kernel 5.14

在这里插入图片描述

前提: DynamIQ架构
思考: __clean_dcache_area_pou()的含义是什么?是将L1刷到L2? 还是将L2刷到L3? 还是怎样的

该函数的实现:

(linux/arch/arm64/mm/cache.S)

SYM_FUNC_START(__clean_dcache_area_pou)
alternative_if ARM64_HAS_CACHE_IDC
	dsb	ishst
	ret
alternative_else_nop_endif
	dcache_by_line_op cvau, ish, x0, x1, x2, x3
	ret
SYM_FUNC_END(__clean_dcache_area_pou)

cvau 其实就是Clean cache by address,范围是到PoU一致性的点,即将L1/L2 cache都clean掉
在这里插入图片描述
而对于clean的理解,其实就是给当前范围的cache(本场景中的L1/L2)mared as dirty, 然后该cache的内容会回写到next level of cache 或 main memory。
在这里插入图片描述

总结:__clean_dcache_area_pou,就是是clean L1/L2 cache,相当于L1/L2 刷到 L3或main-memory吧


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arm精选

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值