Библиотека сайта rus-linux.net
Что каждый программист должен знать о памяти.
Часть 9: Приложения и библиография
Назад | Оглавление | Вперед |
12.1 Поиск потоков, принадлежащих данному процессору (потоков-братьев)
Чтобы спланировать вспомогательные потоки, или иные потоки, которые получат выигрыш, если их выполнение будет запланировано на данном процессоре, можно воспользоваться кодом, аналогичным следующему.
cpu_set_t cur; CPU_ZERO(&cur); CPU_SET(cpunr, &cur); cpu_set_t hyperths; NUMA_cpu_level_mask(sizeof(hyperths), &hyperths, sizeof(cur), &cur, 1); CPU_CLR(cpunr, &hyperths);
Сначала код с помощью cpunr
создает для указанного процессора битовый набор. Зтаем этот набор передаются в NUMA_cpu_level_mask
вместе с пятым параметр, указывающий, что мы ищем гиперпотоки. Результат возвращается в битовом наборе hyperths
. Все, что остается сделать, это очистить бит соответствующий исходному процессору.
Назад | Оглавление | Вперед |