Разработчики DragonFly BSD выявили ошибку в процессорах AMD

Мэтью Диллон (Matthew Dillon), лидер проекта DragonFly BSD, объявил, что компания AMD подтвердила, что обсуждаемая в декабре проблема, приводящая к краху приложений в DragonFly BSD, вызвана неизвестной до этого ошибкой в некоторых семействах процессоров AMD.

Разработчики DragonFly BSD столкнулись с ничем не объяснимым крахом некоторых приложений более года назад. Ошибка проявлялась примерно раз в два дня только на полностью загруженном 48 ядерном сервере, что существенно усложняло выявление причин. В декабре удалось добиться устойчивого проявления ошибки — запуск в цикле компилятора cc1 из состава gcc 4.4.7 завершался крахом примерно через 60 секунд. Проанализировав суть проблемы, разработчики DragonFly BSD определили, что крах возникает в процессе выполнения функции fill_sons_in_loop(). Опровергнув гипотезу, что проблема связана с ошибкой в GCC, разработчики склонились к мысли, что наиболее вероятной причиной является ошибка в микрокоде CPU AMD, так как на процессорах Intel ошибку не удалось повторить.

О возникшей ситуации были уведомлены инженеры AMD, которым была отправлена специально созданная Live-сборка DragonFly BSD, в которой проблема устойчиво повторялось. Вчера компания AMD подтвердила догадки разработчиков DragonFly BSD и указала на то, что действительно, при очень редком стечении обстоятельств, при определённой последовательности выполнения извлечений из стека и рядом идущих инструкций возврата, могла возникнуть ситуация, при которой производилось некорректное обновление или обработка указателя стека.

Источник: opennet.ru

Интересное на сайте

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>