Как наиболее удобно установить маску соответствия для процесса инициализации в Linux (Debian) при запуске системы?
Я знаю о наборе задач, но хочу установить маску сродства для инициализации при запуске, чтобы все процессы унаследовали ее.
Спасибо.
Попробуйте использовать аргумент загрузки ядра "isolcpus". Вы можете перечислить процессоры, которые планировщик должен игнорировать; ЦП, не перечисленные в списке, фактически образуют маску для init и всех его дочерних элементов. Затем вы можете поместить процесс на игнорируемые процессоры, запустив его через набор задач.
Чего вы пытаетесь достичь, привязав init и его дочерний процесс к конкретному процессору? Есть ли другое приложение, которое вы хотите запустить, чтобы изолировать системные процессы от ресурсов ЦП приложения? Если это так, вы можете захотеть установить защиту процессора. В дистрибутивах Linux реального времени для этого доступны утилиты, но вы можете попробовать утилиту CPU Set (cset), описанную по адресу:
https://rt.wiki.kernel.org/index.php/Cpuset_management_utility/tutorial
По умолчанию при создании щита все ваши процессы будут помещены в один набор, что позволит вам определить, какие важные процессы следует переместить в определенные позже наборы.
Это близко к тому, что вы ищете?
Если вы просто хотите, чтобы ваша машина загружалась медленнее, попробуйте вытащить часть оперативной памяти или обработать жесткие диски, чтобы отключить DMA.
Поскольку init - дедушка каждый процесс в вашей системе установка сродства при загрузке будет означать, что вы устанавливаете сродство для каждого процесса - конечно, вы хотите быть более избирательным, чем это?
Возможно, если вы предоставите немного больше информации о том, чего вы пытаетесь достичь, задав аффинити, можно было бы дать разумный ответ.