首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TLB、CPUID和Hugepages?

TLB、CPUID和Hugepages?
EN

Stack Overflow用户
提问于 2019-06-03 23:11:52
回答 1查看 337关注 0票数 2

如果我将64MB的2MB大页面挂载到/mnt/huge2mb,那么这些页面使用的是哪些TLB条目?我在我的C程序中mmap()-ed它们。

cpuid的输出:

代码语言:javascript
复制
   cache and TLB information (2):
      0x63: data TLB: 1G pages, 4-way, 4 entries
      0x03: data TLB: 4K pages, 4-way, 64 entries
      0x76: instruction TLB: 2M/4M pages, fully, 8 entries
      0xff: cache data is in CPUID 4
      0xb6: instruction TLB: 4K, 8-way, 128 entries
      0xf0: 64 byte prefetching
      0xc3: L2 TLB: 4K/2M pages, 6-way, 1536 entries

我相信那些挂载的2MB大页面属于数据,所以它们使用数据TLB条目。

但是,数据TLB条目用于1G和4K页。

那么,这些2MB大页面使用了哪些TLB条目呢?L2 TLB条目?如果是,什么是L2 TLB?它同时适用于数据和指令吗?如果是,则存在4K数据页重叠-数据TLB和L2 TLB。那么额外的64个条目用于4K页面的目的是什么呢?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-04 11:08:30

首先,我不一定假设来自CPUID本身的数据是正确的(多年来有各种勘误表),如果来自CPUID的数据是正确的,我不一定假设Linux中的代码正确地解释了它(多年来,确定缓存特征已经变得非常混乱)。

不知道CPU是什么(也不能检查CPUID和Linux是否正确地报告了信息);根据显示的信息,我很容易怀疑0xc3: L2 TLB: 4K/2M pages, 6-way, 1536 entries用于指令和数据,并将用于您的2个MiB页面,但是当使用这2个MiB页面时,CPU也会将这2个MiB TLB条目拆分成多个片段,并使用0x03: data TLB: 4K pages, 4-way, 64 entries (4个KiB片段)来处理2个MiB页面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56430157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档