2010-04-01 3 views
3

Я пишу модуль ядра linux, которому нужно прикрепить два потока на два разных процессора. Я планирую использовать sched_setaffinity() после экспорта в ядро. Есть ли какая-либо другая экспортированная функция для того же самого?Внесите изменения в cpumask, используя sched_setaffinity(), сразу же выполните

Кроме того, если я устанавливаю только 1 CPU в cpumask, поток будет перемещен в этот процессор с немедленным эффектом? Если нет, как мне принудительно применять одно и то же? Помогло ли это вызывать расписание() сразу после sched_setaffinity()?

+0

это помогает? Http: //stackoverflow.com/questions/766395/how-does-sched-setaffinity-work – tristan

ответ

0

страница людей для sched_setaffinity говорит

Если процесс определяется pid не в настоящее время работает на одном из процессоров, указанных в mask, то этот процесс переносится на один из процессоров, указанных в mask.

Мое предположение заключается в том, что эта миграция происходит немедленно, прежде чем звонок в sched_setaffinity вернулся.