c - vmstat -m /slabtop 对象数量和内存泄漏
问题描述
假设我有一些Linux内核模块(驱动程序),它有自己的slab,它被分配例如这样的东西(从内核内部通过内核补丁,而不是在驱动程序中):
kmem_cache_create("some_drv_obj_cache", sizeof(struct some_drv_obj), 0,
SLAB_HWCACHE_ALIGN | SLAB_PANIC, NULL);
在驱动程序中使用此板反映在命令的输出中vmstat -m
和slabtop
.
假设我这样做rmmod some_drv
并且仍然在缓存(vmstat -m
)中看到一些对象,如下所示:
Cache Num Total Size Pages
some_drv_obj_cache 36 36 320 12
它是否保证驱动程序中存在一些内存泄漏?即Num
卸载后值必须为零?
第二个问题是,当我生成一些保证将新对象添加到slab 缓存的事件时,这Num
(slab 对象的数量)是否必须实时更新(即创建一个对象-Num 加一)?或者这个值可以通过块来更新?
解决方案
推荐阅读
- javascript - for循环内的函数
- python - 使用来自附加文本文件的列信息从 seaborn 重新排序热图
- google-app-maker - 我无法打开我的 google appmaker 项目
- python - 如何通过移动第二条手线(分钟)绘制时钟动画
- ios - Swift 图表月份在底部
- python - 如何在我的 numpy 数组中找到 NaN/无穷大/对于 dtype('float64') 来说太大的值?
- php - 如何将 PHP 回显返回到 HTML 音频 src
- node.js - 如何通过路由向 Mongoose Schema 添加字段
- php - 注解不适用于 Symfony 4.2 项目
- python-3.x - Python:循环引用一行代码,直到满足条件