Есть ли способ установить близость процессора для kthreads для несвязанных рабочих мест (те, которые называются kthread/uXX: y)? Что-то вроде маски cpu для регулярных рабочих мест. Это хорошая идея установить его для каждого kthread с помощью набора задач?Неотложная привязанность к рабочему месту kthreads Приоритет процессора
3
A
ответ
3
Подсистема workqueue экспортирует атрибут sysfs для установки родства 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 дескриптор для установки несвязанного маски workqueue центрального процессора.
Надеюсь, это ответит на ваш запрос.
Спасибо! Это именно то, что я искал. – Filipp