linux内核工作形:自己的队列与system_wq?

问题描述 投票:0回答:1

在linux/workqueue.h中,有针对全系统工作的指针。

评论块详细介绍了各个属性。

(摘自Workqueue.h,v6.13)

/* * System-wide workqueues which are always present. * [...] extern struct workqueue_struct *system_wq; extern struct workqueue_struct *system_highpri_wq; extern struct workqueue_struct *system_long_wq; extern struct workqueue_struct *system_unbound_wq; [...]
我看到的Many驱动程序(在探针功能中),然后将其用于其任务。
i我想知道什么时候有利,而只是将驾驶员的任务发送到始终可以使用的系统队列之一。

我唯一能看到的情况是想要一个单线程队列,以便我所有的任务顺序运行。

因此,当不想要顺序的任务处理时,在Probe()中制作队列的参数是什么?我可以将系统队列用于所有内容吗?做什么的“正确”方法是什么?

Excerpt从

linux设备驱动程序,第三版,第7章:时间,延迟和延期工作

linux linux-kernel kernel workqueue
1个回答
0
投票
在许多情况下,设备驱动程序不需要自己的工作时间。如果您只提交 偶尔到队列的任务,简单地使用共享,可能更有效 内核提供的默认工作形。但是,如果您使用此队列, 您必须意识到,您将与他人分享。除其他事项, 意味着您不应该长时间垄断队列(没有长时间 睡觉),您的任务可能需要更长的时间才能转到处理器。

,否则,最好创建自己的工作时间。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.