Репозитории ALT
5.1: | 3.5-alt2 |
4.1: | 3.4-alt0.M41.1 |
4.0: | 3.4-alt0.M40.1 |
3.0: | 3.0-alt8 |
Группа :: Система/Ядро и оборудование
Пакет: memtest86
Главная Изменения Спек Патчи Исходники Загрузить Gear Bugs and FR Repocop
Версия: memtest86-3.0-alt3
Система: CPU: Intel Pentium M (Centrino)
При любом запуске программы (из boot-сектора дискеты, с
помощью grub или из-под DOS с помощью loadlin) на долю
секунды высвечивается экран с правильными цветами, затем
компьютер идёт на перезагрузку.
Чтение исходников показало, что CPU идентифицируется
программой как Intel Pentium 6xx неизвестной модели с
неизвестными кэш-дескрипторами, в результате размер кэша
полагается =0, после чего при определении скорости памяти
выполняется деление на этот 0 (init.c, функция memspeed).
---
Предлагаю добавить проверку на 0 переменных len и iter в
функцию memspeed (файл init.c) и сделать более правильную
идентификацию интеловских x86-процессоров (см. приложенный
diff-файл). Кроме того, в прилагаемом diff\'е разделена кэш
1-го уровня на code и data, где возможно (для интеловских),
и для расчётов скоростей используется размер data-кэш.
Я проверил получившуюся программу (сборка под ALM2.2) на
доступных мне системах -- работает (Intel Pentium M, 4, III,
Celeron). Информация получена из Intel Architecture Software
Developer\'s Manual, Volume 2: Instruction Set Reference
(<a href="http://developer.intel.com/design/pentium4/manuals/245471.htm">http://developer.intel.com/design/pentium4/manuals/245471.htm</a>), описание команды CPUID.
Возможно, разделение кэша 1-го уровня на code и data пока
особого смысла не имеет, получающиеся скорости от запуска к
запуску всё равно достаточно сильно меняются (по крайней
мере, на доступных мне ноутбуках).
---
Проверил на Pentium M (Centrino) 1500, P4 (with HT) 3.06,
P4 2.80, Mobile P4 2.60, PIII 850, PIII 700, Celeron 667,
PII 400, Pentium 120 -- всё OK (см. tested_cpus.tar.gz,
первые строки - из memtest86, затем результаты CPUID
с комментариями).
Работает также на VIA C3 1GHz, но, естественно, без
определения модели процессора и кэшей и без использования
Time Stamp Counter'а (т.е., без времени).
Сделал патч, с которым определяет и доступный мне VIA C3
(my_viac3.diff.gz, включает и Centrino), проверил на тех же
аппаратах и на VIA (см. VIAC3_1 в tested_cpus.tar.gz).
Заодно поправил "skip reserved registers" в "get cache info"
(могли быть пропуски в отладочной печати) и немного изменил
расчёт скорости кэшей, -- во всяком случае, определение
скорости L1 data cache стало гораздо стабильнее, да и у
L2 теперь более реалистичные значения.
Но это уже можно рассматривать как feature request.
Андрей Ляховец