首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mips32上启用hugetlb

如何在mips32上启用hugetlb
EN

Stack Overflow用户
提问于 2016-12-26 03:33:37
回答 1查看 146关注 0票数 0

以下是我遇到的问题:

内核驱动程序中的rx/tx数据包。用户空间程序需要访问每个包。因此,内核和用户空间之间存在着大量的数据传输。(数据流:内核rx ->用户空间进程->内核tx)

吞吐量是KPI。

我决定使用共享内存/mmap来避免数据复制。虽然我还没有测试它,但其他人告诉我,tlb缺少将是一个问题。

我使用的系统是

  • mips32系统(mips74kc,单核)
  • 默认页大小为4KB。
  • 内核2.6.32

它只能装在一个数据包中。在数据转换过程中,会出现大量影响吞吐量的tlb。

我发现大页可能是个解决方案。但是,目前似乎只有mips64支持hugetlbfs。

https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt https://www.linux-mips.org/archives/linux-mips/2009-05/msg00429.html

因此,我的问题是:如何在mips32上使用hugetlbfs。或者有其他方法来解决吞吐量问题。(我必须在用户空间中完成数据处理部分)

根据达尼的补丁,

目前,该修补程序只适用于64位内核,因为32位内核中的PTRS_PER_PTE值不可能有一个有效的PageMask。人们认为,通过调整页面分配方案,可以在未来支持32位内核。

这似乎是可能的。有人能给我一个提示吗,需要修改什么,才能启用hugetlb。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-03-03 06:39:36

您的核心列表文档是否支持TLB中的非4KB页面?如果不支持CPU,您应该修改CPU (用一些支持较大页面的CPU替换它,或者重新设计CPU并制造新的芯片)。

但是,很可能您走错了轨道,tlb缺失还没有被证明是问题所在( 2MB大页面是8KB或15 8KB数据包的错误解决方案)。

我将告诉您“零拷贝”和/或用户空间网络(网图蛇咬伤、PF_RING、DPDK、userspace中的网络堆栈)或用户空间网络驱动程序;或基于内核的数据处理程序。但这些工具中有许多只适用于较新的内核。

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

https://stackoverflow.com/questions/41326184

复制
相关文章

相似问题

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