介绍一些内核给我们提供的用于在内核中创建线程的内核接口函数。其实在linux内核中,无论是进程还是线程,都是用structtask_struct结构体来表示的。用于创建一个内核线程的函数:structtask_struct*kthread_create(int(*threadfn)(void*data),void*data,constcharnamefmt[]);th..
分类:
编程语言 时间:
2014-11-26 16:48:13
阅读次数:
164
kthreadd:这种内核线程只有一个,它的作用是管理调度其它的内核线程。它在内核初始化的时候被创建,会循环运行一个叫做kthreadd的函数,该函数的作用是运行kthread_create_list全局链表中维护的kthread。可以调用kthread_create创建一个kthread,它会被加...
分类:
编程语言 时间:
2014-09-18 14:46:23
阅读次数:
285
参考内核kernel/irq/manage.c的代码:
t = kthread_create(irq_thread, new, "irq/%d-%s", irq,
new->name);
会生成名为irq/-的线程, 所以可以用如下方法查找:
$ ps aux |grep irq...
分类:
编程语言 时间:
2014-07-16 10:48:20
阅读次数:
220
最近在升级netback, 进行测试过程中,发现vm全双工压力下,rx的pps波动很厉害,看到rx kthread虽然cpu affinity是0-7 (dom0 8vcpu), 但是经常跑到物理中断的那个cpu上。
手动把rx kthread的cpu绑定到其他cpu上,rx pps上去了,并且稳定了,显然rx 的pps波动就是因为cpu scheduling,被调度到不同的cpu导致。...
分类:
Web程序 时间:
2014-06-24 21:28:08
阅读次数:
271