Я провожу некоторые эксперименты с программным файлом, похожим на «черный ящик», который порождает определенное количество потоков. Прямо сейчас Linux планирует порожденные потоки на любом процессоре, который он считает доступным. Я хотел бы форсировать порожденные потоки на тот же процессор, на котором находится процесс порождения.
Большое предостережение заключается в том, что мне все еще хотелось бы, чтобы процесс и потоки могли перемещаться на разные процессоры, если происходит прерывание / демон запускается и занимает время обработки текущего ядра. То есть Процесс P порождает потоки T1, T2 в процессоре cpu0 -> прерывание происходит в процессоре cpu0, занимая время обработки -> планировщик перемещает P и T1, T2 в процессор cpu1, чтобы продолжить работу в основном непрерывно.
Я изучил taskset
, который, кажется, почти работает для этого. Однако кажется, что он не позволяет ограничивать потоки одним и тем же процессором, в то же время позволяя им всем перемещаться в случае необходимости.
Возможно ли что-то подобное?