Вопрос или проблема
Я недавно купил X670E Pro RS и добавил к нему память ECC. Теперь я хотел включить очистку памяти, однако, когда я смотрю в /sys/devices/system/edac/mc/mc0/
, sdram_scrub_rate
отсутствует. Я не могу найти ответ, почему, в интернете. Я изменил ECC с авто на включено, просто чтобы принудительно его включить. lsmod | fgrep edac
показывает:
amd64_edac 69632 0
edac_mce_amd 40960 1 amd64_edac
Что правильно, не так ли(?).
Мне не хватает драйвера или, возможно, я упустил, что edac-utils необходим.
Почему отсутствует sdram_scrub_rate
— это вопрос.
Похоже, что драйвер вашего контроллера памяти не реализует функцию, которая может предоставить или установить скорость очистки. В этом случае EDAC sysfs просто не делает этот атрибут видимым.
Это может означать либо то, что контроллер памяти (в случае процессоров AMD Zen4/5 встроен в ваш процессор) не поддерживает это, либо просто что это не реализовано драйвером. (Ваша материнская плата совершенно не имеет значения — контроллер памяти является частью процессора на практически любом современном ПК.)
Однако вы используете драйвер amd64_edac
, и при условии, что у вас устройство семейства процессоров 0x1a, это должно установить эти функции (здесь).
Итак, мое лучшее предположение здесь, что у вас либо довольно старое ядро, либо принудительное включение ECC ничего не дало и пыталось принудительно загрузить модуль ядра, хотя аппаратная функция ECC не была включена.
Извините, что не смог помочь больше — если вы уже используете ядро серии 6.x.y, вам нужно будет перекомпилировать ваше ядро, вероятно, с опцией ядра CONFIG_EDAC_DEBUG
, чтобы иметь возможность увидеть, что доступно и где.
Ответ или решение
Отсутствие файла sdram_scrub_rate
в системе вызывает закономерный вопрос, особенно при добавлении новой аппаратуры, такой как X670E Pro RS с модулями памяти с функцией ECC (Error-Correcting Code). Давайте проведём детальный анализ проблемы.
Теоретическая основа
Память с коррекцией ошибок (ECC) и скраббинг памяти:
Коррекция ошибок ECC позволяет системе обнаруживать и исправлять однобитовые ошибки данных, повышая её надежность. Настройка скраббинга памяти, в свою очередь, помогает проконтролировать боковые ошибки, которые могут остаться незамеченными в случае, если данные не используются в настоящее время.
EDAC (Error Detection and Correction):
EDAC — это поддержка операционной системой различных механизмов исправления ошибок памяти. В системе Linux EDAC представлена драйверами, которые обеспечивают интерфейс к аппаратуре памяти о возможных ошибках, а также, возможно, позволяют управлять различными параметрами, такими как частота скраббинга.
Пример
Вы установили модули памяти ECC и ожидаете, что функционал памяти будет доступен через файловую систему sysfs
, в частности, через путь /sys/devices/system/edac/mc/mc0/
. Вы обнаружили отсутствие файла конфигурации sdram_scrub_rate
, что ожидается использовать для управления скоростью скраббинга памяти. Дополнительно вы убедились в корректной загрузке модулей драйверов amd64_edac
и edac_mce_amd
.
Применение
Диагностика проблемы:
-
Проверка версии ядра:
Убедитесь, что используемая версия ядра поддерживает ваше оборудование. Поскольку драйверы EDAC могут иметь различия в зависимости от версии ядра, возможно, необходимо обновление до более новой версии ядра. Современные возможности драйвера для AMD могут быть реализованы в последних выпусках линейки 6.x, поэтому рекомендуется обновить ядро. -
Настройки BIOS:
Проверьте, что в BIOS системы активированы все необходимые функции ECC. Переход ECC из автоматического режима в ручной(включенный) может не гарантировать настройки, корректные для вашей конкретной комбинации процессора и памяти. -
Проверка драйверов:
Попробуйте рекомпилировать и установить последнюю версию драйверов EDAC с опциейCONFIG_EDAC_DEBUG
, чтобы получить более подробную отладочную информацию о том, что именно поддерживается и какие функции драйвер предоставляет. -
Документация оборудования:
Обратитесь к технической документации X670E Pro RS и процессора Zen4/5 для уточнения поддержки конкретных функций, таких как скраббинг памяти, поскольку такие функции могут быть заложены на уровне архитектуры.
Потенциальные действия:
-
Обновление ядра:
Если ваша система использует устаревшее ядро, обновление до последней версии может решить проблему. Совместимость оборудования часто расширяется в более новых выпусках ядра. -
Рекомпиляция драйвера:
Скомпилируйте драйвера с включением отладочных опций, чтобы получить более детальную информацию о работе драйверов и поддерживаемых функциях. -
Консультация с производителями:
В случае если проблема сохраняется, рекомендуется связаться с производителями оборудования и процессора для получения технической поддержки. -
Альтернативные утилиты:
Возможности скраббинга памяти могут быть реализованы через сторонние утилиты или более специализированные функции самого оборудования, если они доступны.
Подводя итог, отсутствие файла sdram_scrub_rate
может быть связано с несколькими факторами, начиная от конфигурации BIOS и заканчивая версией ядра. Тщательное изучение каждой из указанных сторон должно помочь в диагностике и устранении проблемы.