— The tinydrm code seems like absolute pure shit that has never seen a compiler. I'm upset, because I expect better quality control. In fact, I expect *some* qualitty control, and this piece-of-shit driver has clearly seen none at all.(tinydrm выглядит как рафинированное дерьмо, которое никогда не пропускали через компилятор. Я зол, поскольку ожидаю куда лучшего контроля качества. Да пусть хоть какого-то контроля, в то время как этот кусок говнокода очевидно вообще никак не тестировался).
Сборка присланного кода компилятором сопровождалась десятками предупреждений и завершалась ошибкой, изучение которой показало, что код не собирается если модуль backlight собирается в виде отдельного модуля (CONFIG_BACKLIGHT_CLASS_DEVICЕ=m), а не как часть ядра. Также Линус указывает на то, что патч отправлен в ядро буквально на следующий день после получения его мейнтейнером, что уже само по себе говорит о качестве тестирования если бы даже оно проводилось.
В качестве временной меры Торвальдс предлагает патчи для DRM модулей отправлять предварительно в ветку linux-next и только потом, после внимательных тестов, позволять им входить в основной состав ядра.
Источник
Комментарии (23)
foxin
27.02.2017 17:01+10Уровень перевода — просто полный абзац. Абсолютно не передает то, что сказал Линус. имхо.
red75prim
27.02.2017 18:15+7Я бы перевёл как:
Код tinydrm — отборнейшее говно, никогда не видевшее компилятора. Я разочарован, поскольку ожидал лучшего контроля качества. Вообще-то, я ожидал хоть какого-то контроля качества, а этот дерьмовый драйвер явно обошёлся без него.
Но смысл был более-менее передан.
lutc
27.02.2017 17:01-2ОфтопКакой у вас ник интересный :)Equin0x
28.02.2017 01:23+25В резюме Эйрли добавится строчка «Проект был особо отмечен Линусом Торвальдсом» )
poxvuibr
28.02.2017 09:07+6В качестве временной меры Торвальдс предлагает патчи для DRM модулей отправлять предварительно в ветку linux-next и только потом, после внимательных тестов, позволять им входить в основной состав ядра.
Предложил, это интересно сказано
And reghardless of what happens this merge window, I will instate a
hard rule that the DRM code needs to be in linux-next before the
merge window opens. No last-minute crap. No shit that hasn't even
been build-tested.Перевод.
И независимо от того, что случится в текущем окне слияния, я введу неукоснительное правило, что код DRM должен быть в linux-next до того, как откроется окно. Никакой дряни в последний момент. Никакой хрени, которая даже не прошла тест на сборку.
Хотел бы я так предложения вносить.
bapcyk
28.02.2017 09:48Одно время работал на одну сверх-известную компанию, в частности писали драйвера и тп. Сам я в кернеле почти не работал, но расскажу два прикола, связанные с ним (патчи уходили в ядро, даже есть официально принятый драйвер моего коллеги). Прикол раз: нашел в одном файле захардкоденную стринговую константу. И в совершенно другом захардкоденный int — ее длину. Прикол два: в одном драйвере нашли баг, который адски редко проявляется. И там какой-то не то спин, не то for — ожидание "ресурса", что-то такое. Фикс из испанского офиса был — вместо тысячи циклов сделать десять тысяч. Баг закрыли. Однако, через пол-года тестеры его опять открыли. Следующее закрытие с фиксом — сделать сто тысяч циклов.
Не буду называть имена компаний, но они на слуху во всем мире и они много коммитят в кернел и пишут драйвера для своих устройств. Мой вывод был — код линукса чудовищно непрофессионален, его нельзя использовать в критичеспих местах, пишут школьники, студенты, основной мотив — лишь бы была хоть какая-то, пусть условная поддержка того или иного оборудования. В реальности линукс безнадежно отстает от современного оборудования, его практически нельзя использовать на современных ноутбуках. Хотя сам предпочитаю его, но....Lampus
28.02.2017 10:14+7Я немного в другой области работаю, но могу сказать одно: лучше просто не знать что наворочено внутри любого коммерческого закрытого продукта, а иначе про спокойный сон можно забыть.
Ключевое преимущество ядра Linux в данном случае (как и любого другого открытого/свободного продукта) — это возможность найти причину неполадки и исправить её самостоятельно. Да, для этого нужен определенный уровень, да, мало кто этим станет заниматься. Но сама возможность — это уже много.
Приведу пример «сбоку». Мне приходится работать с дорогущими проприетарными САПР и, как по мне, там просто адский ад. Куча глупейших багов и проблем, тикеты на которые висят годами.
Однажды мне пришлось перехватывать вызов unlink с помощью подключения самописной so-шки через LD_PRELOAD, чтобы посмотреть содержимое временных файлов с нетлистами из-за которых падала симуляция. Посмотрев в то, что генерит эта софтина, я ужаснулся содержимому, нашёл причину проблемы, сделал не менее жуткий костыль и в итоге всё завелось. Но мой тикет пофикисили только через пол года, и то не полностью.
Так что альтернатив Linux я пока просто не вижу. Если там что-то не работает, то хотя бы можно докопаться до истины.Ivan22
28.02.2017 12:45+1Согласен! Чем больше работаешь с системой X тем лучше узнаешь о её багах и костылях.
Крупных, сложных систем без багов просто не существует в природе.
Как говорится «здоровых нет — есть недообследованные»
Aingis
28.02.2017 15:03+1Если вы используете проприетарный софт, и нашли баг, критичный для бизнеса, всё что вы можете сделать: отправить заявку и надеяться, что его исправят.
Плюсы: если софт не дохлый, то есть отряд платных фулл-тайм программистов, исправляющих баги, и, если сойдутся звёзды, баг исправят.
Минусы: ресурс фирмы-разработчика ограничен, а багов, скорее-всего, много. Можно долго ждать, пока ваш баг исправят. А если для этого надо переписывать полсистемы, то пиши-пропало. Деньги вы платите независимо от того, исправят баг или нет.
В случае открытого ПО вы можете сами посмотреть исходный код и сделать нужные вам модификации.
Плюсы: вы независимы и контролируете процесс. Вполне вероятно, что многие другие баги уже исправлены другими пользователями ПО, а решения многих проблем уже где-то описаны.
Минусы: затраты на разработку и поддержку. Могут быть сложности с синхронизацией с основной кодовой базой. Дорабатывать софт под ваши нужды нужно самостоятельно.
rstar
28.02.2017 10:01+7Прямота Линуса — третья вещь, за которую мы его так любим.
tangro
28.02.2017 12:23+3В общем-то во многом благодаря именно ей живут и развиваются первые две. Другой бы закрыл глаза, шел бы на компромисы, старался бы не ссориться с людьми. А тут нет, если код — дерьмо — так и пишем «код — дерьмо».
osiraben
28.02.2017 17:09-1А тут нет, если код — дерьмо — так и пишем «код — дерьмо»
Меня так с работы уволили.
Спойлер.Шутка.
Thero
01.03.2017 12:29так-то всё нормально, просто никому из ментейнеров тестивших тинидрм не пришло в голову собирать не монолит…
потому что на тех нескольких девайсах для которых он написан модуль всёравно не сработал бы поидее опции модуля там вообще не должно было быть…poxvuibr
03.03.2017 08:32так-то всё нормально
Ну не совсем так. Дальше Линус продолжил
… and a slightly less annoying piece of crap in this pull request:
that "PRIME_NUMBERS" config thing is utter garbage too.перевод вроде не нужен, но тем не менее
… и немного менее неприятный кусок шлака в этом пулл реквесте это момент конфигурации с "PRIME_NUMBERS" который тоже явно мусор-мусором.
Laney1
если Торвальдс ругается не по-фински — значит ничего критически важного, дело житейское))
A-Stahl
Чтобы Торвальдс начал ругаться на финском в общей рассылке нужно как минимум чтобы на Луне появился лик Таненбаума а демоны подняли веки GNU Hurd`у
past
Есть подозрение, что Торвальдс в критические моменты ругается по-шведски.
Elmot
..., а по-фински когда уж совсем ни в какие ворота.
gearbox
скорее речь о том что шведский это финский аналог английского французского (https://en.wikipedia.org/wiki/Pardon_my_French)
felix_it
Справедливости ради: https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg467322.html — вот тут некая perkeleen vittupaa за 2013 год.