大佬教程收集整理的这篇文章主要介绍了内存管理 – 无法在/ proc / slabinfo中使用kmem_cache_create()创建新对象,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
虽然,我的代码按预期工作没有问题,但我无法在grep / proc / slabinfo时看到使用kmem_cache_create()创建的新对象/ slab“my_cache”.创建的对象是一个简单的对象列表,可以从列表中插入或删除.
注意:我的模块工作正常,没有问题.我可以在/ sys / kernel / slab / my_cache下查看slab创建,但不能在/ proc / slabinfo或vmstat -m或slabtop中查看
@H_118_25@mycache = kmem_cache_create("my_cache",sizeof(struct mystruct),SLAB_HWCACHE_ALIGN,null); if (mycache == NULL) return -ENOMEM;
`
$sudo cat /sys/kernel/slab/my_cache/objects 49108 N0=49108 $sudo cat /sys/kernel/slab/my_cache/object_size 64 $sudo cat /sys/kernel/slab/my_cache/order 0 $sudo cat /sys/kernel/slab/my_cache/aliases 12 $sudo cat /sys/kernel/slab/my_cache/cache_dma 0 $sudo cat /sys/kernel/slab/my_cache/slab_size 64 $sudo cat /sys/kernel/slab/my_cache/trace 0 $sudo cat /sys/kernel/slab/my_cache/validate $sudo cat /sys/kernel/slab/my_cache/@R_795_10586@l_objects 49920 N0=49920
`
如果你真的想确保它肯定会为你创建一个新的缓存(=出现在slabinfo中),你总是可以将一个有效的构造函数传递给kmem_cache_create.像这样的东西:
static void mystruct_constructor(void *addr) { memset(addr,sizeof(struct mystruct)); } mycache = kmem_cache_create("my_cache",mystruct_constructor);
以上是大佬教程为你收集整理的内存管理 – 无法在/ proc / slabinfo中使用kmem_cache_create()创建新对象全部内容,希望文章能够帮你解决内存管理 – 无法在/ proc / slabinfo中使用kmem_cache_create()创建新对象所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。