2015-11-26 8 views
3

Есть ли способ установить близость процессора для kthreads для несвязанных рабочих мест (те, которые называются kthread/uXX: y)? Что-то вроде маски cpu для регулярных рабочих мест. Это хорошая идея установить его для каждого kthread с помощью набора задач?Неотложная привязанность к рабочему месту kthreads Приоритет процессора

ответ

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 центрального процессора.

Надеюсь, это ответит на ваш запрос.

+0

Спасибо! Это именно то, что я искал. – Filipp