gpt4 book ai didi

linux - Unbound workqueue 的 kthreads CPU affinity

转载 作者:IT王子 更新时间:2023-10-29 01:21:08 27 4
gpt4 key购买 nike

有没有办法为未绑定(bind)工作队列的 kthreads(那些名为 kthread/uXX:y 的线程)设置 CPU 亲和性?类似于常规工作队列的 cpu 掩码。使用任务集为每个 kthread 设置它是个好主意吗?

最佳答案

Workqueue 子系统导出 sysfs 属性,用于为未绑定(bind)的 worker 设置 cpu 亲和性。代码可以在Workqueue.c中找到:

    5040 static ssize_t wq_unbound_cpumask_store(struct device *dev,
5041 struct device_attribute *attr, const char *buf, size_t count)
5042 {
5043 cpumask_var_t cpumask;
5044 int ret;
5045
5046 if (!zalloc_cpumask_var(&cpumask, GFP_KERNEL))
5047 return -ENOMEM;
5048
5049 ret = cpumask_parse(buf, cpumask);
5050 if (!ret)
5051 ret = workqueue_set_unbound_cpumask(cpumask);
5052
5053 free_cpumask_var(cpumask);
5054 return ret ? ret : count;
5055 }
5056
5057 static struct device_attribute wq_sysfs_cpumask_attr =
5058 __ATTR(cpumask, 0644, wq_unbound_cpumask_show,
5059 wq_unbound_cpumask_store)

因此任何用户空间应用程序都可以写入 sysfs 描述符以设置未绑定(bind)的工作队列 cpu 掩码。

我希望这能回答您的问题。

关于linux - Unbound workqueue 的 kthreads CPU affinity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33945487/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com