LINUX.ORG.RU

Странности с memtest-ом

 ,


0

2

Поставил на ноут новую память, решил её на всякий случай проверить. Итоги:

memtest86 пишет «file /boot/memtest86.bin not found» в grub-е, хотя такой файл там есть

memtest86+ виснет на самом первом тесте где-то в середине (спустя пару сек после запуска).

Установил юзерспейсный memtester (он локает память чтоб она не уходила в свап и делает тесты на ней, разумеется не по всему адресному пространству), запустил его в 4 потока по 2G+2G+2G+1G + браузер со всяким медиа чтоб занять остальное (памяти всего 8g) - ошибок не показывает, ничего не виснет.

update:

В конфиге grub-а скопипастил всякие insmod и root из memtest86+ в memtest86 - он после этого запустился и тоже повис на первом тесте

Pass 0%
Test 24%
Test #1 [Address test, own address Sequential]
Testing: 4096M-6144M   2048M of 8078M
Pattern: address

Виснет всегда на одном и том же месте.

upd: Это не первый тест а второй, там нумерация с нуля. Первый #0 это «walking ones».

Если сделать skip на test#1 то виснет на #2 если его тоже skip то на #3 на том же «testing 4096-6114».

★★★★★

Последнее исправление: firkax (всего исправлений: 6)

Одна из найденных в инете версий: в районе 4гб есть окно для 32-бит-совместимых системных областей памяти, мемтест про него не знает и пишет всякий мусор в чьи-то memory-mapped регистры и понятным итогом.

С одной стороны похоже на правду, с другой почему тогда это не массово известно и не исправляют?

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

Ну как, на сайте memtest https://www.memtest86.com/tech_freezing-lockups.html написано:

Bug in UEFI BIOS firmware (Most common cause)

Не помню, у бесплатного MemTest86 есть ли поддержка конфиг-файла. Так, в этом файле можно определить несколько конфигов с разными адресами начала-конца тестируемой области (ADDRLIMLO, ADDRLIMHI) и переключать вручную.

У MemTest86+ только вручную конфигурировать диапазон адресов.

А, касательно фиксить, то нужно сначала изучить код ядра, как оно определяет доступные регионы памяти. Запросто, что там куча work-around с перечислением моделей материнок и пр. Может, подобный код некому тащить в MemTest...

mky ★★★★★
()
Ответ на: комментарий от mky

У Мемтеста длиннющий блэклист материнок, на которых что-то не работает и приходится отключать соответствующие фичи. Вроде бы он используется даже в бесплатной версии, но и пиратка платной легко находится (стоит ли доверять васяну, её выложившему — другой вопрос).

anonymous
()
Ответ на: комментарий от anonymous

А этот блеклист доступен в виде документа? А то пока нагуглилось только такое https://forums.passmark.com/memtest86/5743-list-of-motherboards-with-issues-w...

Но этим неудобно пользоватся. Да и походу там только «переключить в Single CPU0».

mky ★★★★★
()
Ответ на: комментарий от firkax

спробовать «загрузиться с флешки» :) iso мемтеста + вентой к примеру.
но думаю ошибка останется… так для проформы проверить.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от firkax

Не знаю касательно маппинга. Я просто нашёл такой список проблемных материнок, на которых memtest86 виснет, причём, пишут, что на разных стадиях, где-то в самом начале, где-то в процессе Test 2. И это логично, Теst 0 и Test 1 однопроцессорные, а потом многопроцессорные (в настройках по умолчанию). Но у кого-то виснет на Test 12 в многопроцессорном варианте, что вобще не понятно, предыдущие тесты в многопроцессоре прошли, а на этом завис.

А потом прочитал такое:

Multiple CPU testing may not be available due to limited or non-functional implementations of Multiprocessor services provided by UEFI, especially for older firmware. This may cause a reduced number of processors available for testing, or even program freeze when attempting to run on other processors. If this is the case, run in single CPU mode or try updating to a new firmware build. There is a blacklist.cfg file that contains a list of baseboards that are known to have issues running MemTest86.

И тут я понял, что вобще не понимаю, как рабоает memtest. Всегда считал, что такие программы, как memtest, должны сами определять тип процессора, сколько там ядер и это всё инициализировать. А тут, оказывается, какие-то «UEFI services», которые в этом замешаны.

А дальше ещё прочитал, что если Memtest86 виснет через продолжительное время (30 часов), то это всё равно может быть виноват uefi:

There's also a likely possibility that there is a bug in the UEFI firmware, such as a resource leak related to multiprocessing.

То есть, получается, что мемтест не один раз обращается к uefi, а постоянно дёргает их сервисы. Может uefi, когда инициализирует многопроцессорность портит какие-то таблицы маппинга, «забывает», что по тем адресам, на которых у вас всё виснет, обращаться нельзя.

mky ★★★★★
()
Ответ на: комментарий от mky

Мемтест прекрасно работает на системах без UEFI вообще, определает и проц и остальное. У меня он запускается из grub-а опять же без uefi, но вообще uefi наверно имеется и может быть он и при non-uefi загрузке может его как-то найти и лезть к нему, но непонятно зачем.

И если всё действительно так, то логично иметь сборку мемтеста с вырезанным uefi.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

Memtest86 (которые без +) какой версии? Начиная с v.5 (2014 год) он под efi, под BIOS у них версия 4 (4.3.7 13/May/2014).

с вырезанным uefi

Не, это разные бинарники. Memtest86+ компилируется в разные бинарники, bin и efi, а Memtest86 в образе с v.5 содержал два бинарника (v.5 и v.4) и мог их пробовать грузить по очереди, а потом это убрали, типа скачивайте по отдельности.

Ну, если BIOS, тогда, про многопроцессорность, наверное мимо. Вобще, ИМХО, имеет смысл попрбовать разные версии Memtest86+, у меня на каком-то железе v4 работала нормально, а v5 и v6 висли.

mky ★★★★★
()

Одно время хотел у себя проверить ОЗУ. Понял, что нет ни одного нормального инструмента для этого. Всё косое кривое, запускается через задницу. Хотя казалось бы, это же память, что может быть проще. Ан нет. В итоге забил.

ox55ff ★★★★★
()
Ответ на: комментарий от Aceler

Насколько я знаю, у EFI должен быть MZ-заголовок в начале, у моих бинарников я его не вижу (не говоря уж о том что у них расширение не efi).

firkax ★★★★★
() автор топика