Должен ли я включить SMP на разнородных многопоточных процессорах? - PullRequest
0 голосов
/ 28 октября 2018

Я собираю ядро ​​Linux для платы big.LITTLE, и меня интересует опция CONFIG_SMP, которая обеспечивает поддержку симметричной обработки в ядре.В документации Linux сказано, что это должно быть включено на многопоточных процессорах, но мне интересно, не будет ли обработка Symmetric Multi правильно работать только на процессорах, которые на самом деле симметричны.Я понимаю, что такое SMP, но я не нашел ни подсказки, ни документации, в которой бы говорилось о его использовании в Linux, созданной для big.LITTLE ARM.

1 Ответ

0 голосов
/ 31 октября 2018

Да, если вы хотите использовать более одного ядра, вам нужно включить CONFIG_SMP.Это само по себе сделает все ядра (как большие, так и маленькие) доступными для ядра.

Затем у вас есть два варианта (я предполагаю, что вы используете основное ядро ​​Linux или что-то не слишком отличающееся от него).Например, не ядро ​​Android):

  1. Если вы также включите CONFIG_BL_SWITCHER (-> Особенности ядра -> Поддержка big.LITTLE -> Поддержка переключателя big.LITTLE) и CONFIG_ARM_BIG_LITTLE_CPUFREQ (-> Управление питанием ЦП - -> Масштабирование частоты ЦП -> Масштабирование частоты ЦП -> Общий драйвер ARM (большой драйвер LITTLE CPUfreq), каждое большое ядро ​​в вашем SoC будет связано с небольшим ядром, и только одно из ядер в каждой паре будет активным в любой момент времени,в зависимости от загрузки процессора.Таким образом, в основном количество логических ядер будет вдвое меньше количества физических ядер, и каждое логическое ядро ​​будет объединять одно физическое большое ядро ​​и одно физическое маленькое ядро ​​(если только общее количество больших ядер не отличается от количества маленьких ядер, в этом случаебудут непарные физические ядра, которые также являются логическими ядрами).Для каждого логического ядра переключение между большим и малым физическим ядром будет управляться регулятором cpufreq и будет концептуально эквивалентно переключению частоты процессора.
  2. Если вы не включите вышеупомянутые два параметра конфигурации, тогда всефизические ядра будут доступны как логические ядра, могут быть активными в одно и то же время и обрабатываться планировщиком, как если бы они были идентичны.

Первый вариант больше подходит, если вы стремитесь к малой мощностипотребление, в то время как второй вариант позволяет максимально эффективно использовать процессор.

Это изменится, когда поддержка гетерогенной многопроцессорной обработки (HMP) будет интегрирована в основное ядро.

...