Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37858446
en ru br
Репозитории 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
www.altlinux.org/Changes

Группа :: Система/Ядро и оборудование
Пакет: 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.

Андрей Ляховец
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin