如果我将 64MB 的 2MB 大页面挂载到 /mnt/huge2mb,这些页面使用哪些 TLB 条目?我mmap()
在我的 C 程序中编辑了它们。
cpuid
的输出:
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。那么 4K 页面的额外 64 个条目的目的是什么?
谢谢!