Я клонирую процесс с помощью функции-оболочки glibc clone().
По некоторым несвязанным причинам мне нужно установить бит флага CLONE_THREAD в положение ON. Это означает, что
Если установлен CLONE_THREAD, дочерний процесс помещается в ту же группу потоков, что и вызывающий процесс. [...]
Теперь для каждого процесса (родительского и дочернего) мне нужно установить соответствие ядра ЦП на основе некоторой логики.
/>Однако вызов sched_setaffinity(gettid(), ...), похоже, не работает в дочернем процессе.
Меня озадачивает то, что каждый дочерний процесс фактически запланировано на тот же идентификатор ядра ЦП, что и его родительский процесс, даже несмотря на то, что дочерний элемент вызывает sched_setaffinity после своего родителя. Или, лучше сказать, его родитель вызывает его до того, как он создаст дочерний элемент, поэтому, когда дочерний элемент вызывает его, создается впечатление, что вызов не имеет никакого эффекта.
В чем проблема?
Подробнее здесь: https://stackoverflow.com/questions/792 ... ss-cloning