小编kak*_*ada的帖子

如何确定Linux内核模块是否泄漏内存

为了测试内核泄漏内存时的行为,我正在编写一个内核模块,它不断分配内存,例如代码

int bytesLeaked = 128000;
char *var = kmalloc(bytesLeaked, GFP_KERNEL); 
if (var != NULL)
printk("leaked %d bytes at address %x\n", bytesLeaked, (unsigned int)var);
Run Code Online (Sandbox Code Playgroud)

此代码位于init_module中.我有以下问题

  1. 如何确定代码是否泄漏了内存?lsmod并没有透露太多.
  2. 互联网上的教程仅显示init_module和exit_module中的代码.如果我希望在插入模块之后但在退出之前的一段时间内进行内存分配,该怎么办?
  3. 我是否有可能只在用户给出指令时才编写泄漏内存的代码,例如用户空间程序是否可以进行系统调用,这会导致模块泄漏内存?

memory-management kernel-module linux-kernel

9
推荐指数
2
解决办法
1万
查看次数

如果我在进程中执行 sched_setaffinity,它生成的线程是否会受到影响

如果我这样做:CreateThreads,setsched_affinity到CPU 0,那么所有线程是否也与CPU 0具有亲和力如果相反,我颠倒操作顺序,即先set_schedaffinity,然后创建线程,那么线程是否具有亲和力

我正在使用 pthreads 库创建线程。感谢您的任何答复

pthreads affinity

2
推荐指数
1
解决办法
3649
查看次数