Рубрика «патч ядра»

Мейнтейнер ядра Linux забраковал патч для AMDGPU - 1

8 декабря 2016 года компания AMD выложила для скачивания последнюю версию проприетарного драйвера AMDGPU-PRO 16.50 для операционных систем на ядре Linux. Этот драйвер основан на свободном модуле ядра AMDGPU. В нём реализована поддержка DirectGMA для OpenGL и технологии FreeSync, которая в некоторых гибридных и графических процессорах AMD решает проблему коммуникации между процессором и монитором и устраняет разрывы изображения, особенно в играх. AMDGPU-PRO 16.50 поддерживает некоторые модели графических ускорителей GNC 1.0 AMD серии Southern Islands, а именно Radeon R7 M465X, AMD Radeon R7 M370 и AMD Radeon R7 M350. Опубликованы скрипты для установки на RedHat Enterprise Linux 7.3, CentOS 7.3, CentOS 6.8, and SLED/SLES 12 SP2.

Одновременно представитель компании AMD Гарри Уентлэнд (Harry Wentland) обратился в список рассылки разработчиков ядра Linux с предложением включить в ядро скромный патч размером около 100 000 строк кода со слоем аппаратных абстракций. Мейнтейнер ядра Дэйв Эйрли (Dave Airlie) доступно объяснил представителю AMD, почему такой патч не примут в ядро. Хотя мейнтейнер не вспоминал знаменитую фразу Линуса в адрес Nvidia, но многие помнят те слова. AMD тоже отправили в пешее путешествие, пусть и не в такой грубой форме.
Читать полностью »

image
А обнаружена она была на серверах Twitter

Ядро Linux имеет ошибку, причиной которой являются контейнеры. Чтобы не проверять контрольные суммы TCP, для сетевой маршрутизации контейнеры используют veth-устройства (такие как Docker на IPv6, Kubernetes, Google Container Engine и Mesos). Это приводит к тому, что в ряде случаев приложения ошибочно получают поврежденные данные, как это происходит при неисправном сетевом оборудовании. Мы проверили, что эта ошибка появилась, по крайней мере, три года назад и до сих пор «сидит» в ядрах. Наш патч был проверен и введен в ядро, и в настоящее время обеспечивает ретроподдержку стабильного релиза 3.14 в различных дистрибутивах (таких как Suse и Canonical). Если Вы в своей системе используете контейнеры, я рекомендую Вам воспользоваться этим патчем или установить ядро вместе с ним, когда это станет доступным.

Примечание: это не относится к сетям с NAT, по умолчанию используемых для Docker, так как Google Container Engine практически защищен от ошибок «железа» своей виртуализированной сетью. Еще Джейк Бауэр (Jake Bower) считает, что эта ошибка очень похожа на ошибку Pager Duty, обнаруженную ранее.

Как это все началось

В один из выходных ноября группа саппорт-инженеров Твиттера просматривала логи. Каждое неработающее приложение выдавало «невероятные» ошибки в виде строк странных символов или пропусков обязательных полей. Взаимосвязь этих ошибок не была очевидна из-за природы распределенной архитектуры Твиттера. Вся ситуация осложнялась еще и тем, что в любой распределенной системе данные, когда-то испорченные, могут вызвать ошибки еще довольно продолжительное время (они сохраняются в кэшах, записываются на дисках, в журналах и т.д.).

После суток непрерывной работы по поиску неисправности на уровне приложений, команде удалось локализовать проблему до отдельных рэковых стоек. Инженеры определили, что значительное увеличение числа выявленных ошибок контрольной суммы TCP произошло непосредственно перед тем, как они дошли до адресата. Казалось, что этот результат «освобождал от вины» софт: приложение может вызвать перегрузку сети, а не повреждение пакета!
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js