当前位置: 首页 > news >正文

TLB的刷新方式--linux 2.4

TLB刷新的时机(i386)

struct tlb_state cpu_tlbstate[NR_CPUS] = {[0...NR_CPUS-1] = {&init_mm, 0}};

一般情况各个CPU的cpu_tblstate的state设置成TLBSTATE_OK,表示如果正在使用中的页面目录或页面表内容发生了变化就要刷新TLB的内容。

  • 与vmalloc有关
  • 与HIGHMEM映射有关
  • 与外设总线(例如PCI)有关的映射

TLBSTATE_OK相对的是TLBSTATE_LAZY

在__exit_mm()和schedule()中会设置TLBSTATE_LAZY。

TLB刷新的方式(i386)

对TLB的刷新(其实是废弃当前TLB中的内容)可以是针对整个TLB的,也可以是针对一个具体页面相关的TLB的刷新。

  • 对于整个TLB的刷新,直接读出CR3控制器后再写回;
  • 对于一个具体页面相关的TLB的刷新,使用invlpg命令实现。

对整个TLB的冲刷由local_flush_tlb()进行;而废弃某个页面的相关的TLB,则由__flush_tlb_one()完成。


http://www.mrgr.cn/news/11269.html

相关文章:

  • 分意图 Prompt 调试、后置判别改写、RLHF 缓解大模型生成可控性
  • CRMEB-PHP多商户版安装系统配置清单
  • 知识付费小程序搭建
  • C/C++开发神器CLion全新发布v2024.2——更适用于嵌入式开发
  • 给自己复盘的随想录笔记-链表
  • C#多项目统一版本号
  • ssrf实现
  • Docker Compose构建及运行多容器利器
  • vue devserver proxy设置跨域详解
  • GPT-SovitsV2,支持多语种,多音字优化,更好的音色,ZeroShot(WIN/MAC)
  • Spring Task定时任务
  • 采用ELK搭建日志平台,Elasticsearch安装
  • 基于R语言遥感随机森林建模与空间预测
  • Vue中使用el-table自定义序号翻页后又从1开始没有连续
  • [Day 61] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • 三层链路聚合
  • 【本社翻译】Unity官方XR开发电子书
  • 收银系统源码助力零售门店数字化升级
  • 【Android】Navigation动态设置Graph和Launch参数
  • 广播语义学许多PyTorch操作支持NumPy的广播语义。python编程 人工智能 神经网络