Линус Торвальдс выступил с критикой контроля качества в DRM-подсистеме ядра Linux
27 февраля 2017 года
В ответ на очередной набор изменений в подсистеме DRM (Direct Rendering Manager), присланный для включения в состав будущей ветки ядра 4.11, Линус Торвальдс пришёл в ярость и в жесткой форме раскритиковал Дэвида Эйрли (David Airlie), мэйнтейнера подсистемы DRM, за его отношение к контролю качества присылаемых патчей. В частности, Линус недоумевает как мэйнтейнер мог отправить для финального включения в новый выпуск ядра набор патчей, который явно не тестировался и непригоден для сборки из-за ошибки компиляции.
Процесс разработки ядра построен на цепочке доверия и основной задачей мэйнтейнеров подсистем является предварительная проверка и рецензирование изменений в делегированных им областях. По словам Линуса он ожидал лучшего контроля качества, в худшем случае он ожидал хоть какого-то контроля качества, но на деле в присланных изменениях он не увидел контроля качества совсем и предложенные изменения компонента tinydrm вообще не видели компилятора.
В частности при сборке присланного кода компилятором выводилось несколько десятков предупреждений и сборка завершалась ошибкой, изучение которой показало, что код не собирается если модуль backlight не вкомпилируется в ядро, а собирается в виде модуля (CONFIG_BACKLIGHT_CLASS_DEVICЕ=m). Более того, изменение для tinydrm было переотправлено мэйнтейнером на следующий день после получения от конечного разработчика и, судя по всему, без какого-либо тестирования.
В качестве ответных мер на подобное перебрасывание патчей в последний момент, Линус намерен ввести для DRM-подсистемы правило предварительного помещения изменений в ветку linux-next, до открытия окна приёма изменений в очередной выпуск ядра. Таким образом все изменения графических драйверов должны будут вначале быть обкатаны в ветке linux-next, лишь после чего смогут войти в основной состав ядра.
То, что полная неработоспособность выявляется последней инстанцией в ходе беглого осмотра и простейшего тестирования сборкой, указывает на серьёзные организационные проблемы. Линус был близок к тому, чтобы не включать набор патчей DRM в ядро 4.11, чувствуя что кроме него эти патчи никто больше не тестировал. Подобный шаг привёл бы к отклонению обновлений графических драйверов i915, amdgpu, radeon и nouveau, но, в конечном счёте, Линус принял исправленный вариант изменений к подсистеме DRM. Так как в настоящий момент приходится отклонять или принимать все изменения из набора DRM ("всё или ничего"), Линус намерен потребовать разбиения pull-запросов DRM на более мелкие части.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.