Как Linux определяет количество «возможных» процессоров

Необходимо убедиться, что модуль pam_wheelустановлен.

Всю необходимую информацию (с примерами )можно получить у человек 8 пам _колесо .

Пример, который можно использовать/etc/pam.d/su:

auth            sufficient      pam_rootok.so
auth            required        pam_wheel.so trust group=wheel
auth            substack        system-auth

2
15.09.2020, 21:43
1 ответ

Процессор «возможен», если для него есть место в памяти ядра. Количество возможных ЦП — это максимальное количество ЦП, которое может быть подключено к сети, включая те, которые подключаются в горячем режиме после загрузки.

Документация по этой части sysfs находится в Как информация о топологии ЦП экспортируется через sysfs:

possible: CPUs that have been allocated resources and can be brought online if they are present. [cpu_possible_mask]

Но более подробная документация по cpu_possible_maskнаходится в Горячая замена процессора в ядре:

Bitmap of possible CPUs that can ever be available in the system. This is used to allocate some boot time memory for per_cpu variables that aren’t designed to grow/shrink as CPUs are made available or removed. Once set during boot time discovery phase, the map is static, i.e no bits are added or removed anytime. Trimming it accurately for your system needs upfront can save some boot time memory.

Этот параметр можно настроить с помощью параметров командной строки . В вероятном случае, когда ваше оборудование не поддерживает подключение другого процессора без перезагрузки, и вы не собираетесь переводить систему в спящий режим и заставлять ее просыпаться с большим количеством процессоров, вы можете сэкономить небольшой объем памяти ядра, передав possible_cpus=16в командной строке ядра. На обычном ПК или сервере сумма, вероятно, слишком мала, чтобы стоить затраченных усилий.

При отсутствии параметров командной строкиЯ думаю, вам нужно прочитать источник , чтобы понять, что происходит. Если ядро ​​скомпилировано без поддержки горячего подключения ЦП (CONFIG_HOTPLUG_CPU), оно просто проверяет, сколько ЦП присутствует во время загрузки. Если ядро ​​поддерживает горячее подключение ЦП, согласно комментарию prefill_possible_mapв исходном коде:

  • If the BIOS specified disabled CPUs in ACPI/mptables use that.
  • The user can overwrite it with possible_cpus=NUM
  • Otherwise don't reserve additional CPUs.

Я не проверял, что именно это делает код.

Обратите внимание, что принцип определения «возможных ЦП» применим ко всем архитектурам, но способы определения количества ЦП зависят -от архитектуры. В моем ответе я предполагаю x86.

3
18.03.2021, 23:04

Теги

Похожие вопросы