kernel workqueue 一点使用注意事项


keventd_wq 是kernel里面全局的一个workqueue, 相关的接口有:
schedule_work
schedule_work_on(特定cpu)
schedule_delayed_work
schedule_delayed_work_on(特定cpu)
flush_scheduled_work
每个cpu上都有一个events的kernel thread去处理keventd_wq上的工作.


如果要放到workqueue里面的工作不会耗费很多时间或者工作量很大,则可以考虑放到这个全局的workqueue里面去.
但是如果需要做的"work"很多,很花时间,可以使用create_singlethread_workqueue来创建一个独立workqueue,交给一个单独的kernel thread去处理,
这样不会影响其他也提交给内核的全局workqueue(keventd_wq)去做的"work".

阅读更多

没有更多推荐了,返回首页