gpt4 book ai didi

linux - Linux 上 VMA 的开销

转载 作者:太空宇宙 更新时间:2023-11-04 11:38:19 26 4
gpt4 key购买 nike

问题:我如何知道进程的 VMA 使用了多少内存(当我在用户空间或内核中时)?

我将对我在做什么做一个简短的解释,这样你就可以理解我为什么要问这个了。我在我的 Linux 机器上运行了几个进程和一个驱动程序(内核模块)。进程内存被锁定(不可交换),因此我想确保模块与进程一起消耗的内存不会占用我总物理内存的 90%。为了减少 malloc 开销,我使用了 mmap。我真正需要知道的是我的进程实际消耗了多少内存,而不是它们要求的内存量,据我所知,我只漏掉了 VMA 的任何分配开销。

最佳答案

在挖掘之后我找到了答案:

当我在驱动程序中时,我可以使用当前->mm->map_count了解当前进程的当前 VMA 数量。将它乘以 sizeof(struct vm_area_struct) 就会得到我想要的东西。从这里会计很简单。

关于linux - Linux 上 VMA 的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5849645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com