LINUX.ORG.RU

Линус Торвальдс жестко отверг изменения архитектуры RISC-V для кода ядра Linux 6.17

 , , , ,


0

4

Линус Торвальдс со словами «no f%^5ing clue» и «Garbage» жестко отверг изменения архитектуры RISC‑V для кода ядра Linux 6.17. Обновления для RISC-V не войдут в новый цикл, и их придётся повторить для версии 6.18 позднее в этом году. Торвальдс называл по крайней мере часть предлагаемого кода RISC-V мусором, а также ответил разработчикам, что он был отправлен слишком поздно в течение окна слияния.

27 июля 2025 года Линус Торвальдс представил первый стабильный релиз ядра Linux 6.16 под кодовым названием Baby Opossum Posse (Отряд детенышей опоссума). «Стоит отметить, что предстоящее окно слияния для версии 6.17 будет для меня немного хаотичным: в августе у меня несколько семейных событий (свадьба и большой день рождения), и, поскольку семья разбросана не только по США, но и по Финляндии, я проведу около половины месяца в разъездах. Это значит, что я очень постараюсь сделать большую часть окна слияния за первую неделю перед началом моих поездок, и я уже предупредил об этом тех, кто обычно присылает мне больше всего pull requests», — предупредил ранее разработчиков Торвальдс.

Ожидается, что окно слияния Linux 6.17 завершится 10 августа с выпуском Linux 6.17-rc1. Для этой версии ядра предлагалось добавить RISC-V IOMMU к поддержке систем на базе ACPI, поддержку ACPI BGRT для отображения логотипов производителей при загрузке, обходные пути исправления ошибок, поддержку расширения Xmipsexectl, чтение типа MMU из дерева устройств, повышение производительности подкачки с учётом порядка байтов, поддержку kprobetrace, поддержку расширений MPXY и RPMI SBI, а также поддержку целостности потока управления с процессами пользовательского пространства. Однако этот pull request был отклонён Линусом Торвальдсом для Linux 6.17 из-за позднего обновления в окне слияния, особенно учитывая его зарубежные поездки на этой неделе. Он также оказался очень недоволен частью кода, включённого в этот pull request.

Торвальдс написал в рассылке для разработчиков ядра Linux:

«Нет. Это мусор, и он пришёл слишком поздно. Я запросил ранние pull request, потому что я в отъезде, и если вы не можете следовать этому правилу, хотя бы сделайте pull request хорошими.

Это добавляет разный мусор, не специфичный для RISC-V, но относящийся к общим заголовочным файлам.

И под «мусором» я имею в виду именно это. Это то, что мне никто никогда не должен присылать, не говоря уже о том, что он находится в конце окна слияния.

Вроде этого безумного и бессмысленного «помощника» make_u32_from_two_u16().

Эта штука делает мир действительно хуже для жизни. Это бесполезный мусор, который делает любого пользователя непонятным, и он действительно ХУЖЕ, чем отсутствие этого дурацкого «помощника».

Если вы запишете код как «(a << 16) + b», вы знаете, что он делает и где тут high word. Возможно, вам нужно добавить приведение типов, чтобы убедиться, что у «b» нет старших битов, которые загрязняют конечный результат, так что, возможно, он будет не совсем красивым, но и не будет неправильным и непонятным.

Напротив, если вы напишете make_u32_from_two_u16(a,b), вы ни f%^5ing clue не поймёте, какой порядок слов. Вау, вы только всё ХУЖЕ сделали, добавив этот «помощник» в универсальный файл, не относящийся к RISC-V, где, по-видимому, предполагается его использование для ухудшения другого кода.

Так что нет. Такие вещи нужно игнорировать. Это не попадает в универсальные заголовочные файлы и, чёрт возьми, не происходит поздно в окне слияния.

Вы предупреждены: больше никаких поздних pull request и никакого мусора за пределами дерева RISC-V.

Теперь я надеюсь, что внутри частей RISC-V нет мусора, но это ваш выбор. Но в универсальных заголовках не должно быть ничего лишнего. И отправка большого pull request накануне. Окно слияния закрывается в надежде, что я слишком занят, чтобы беспокоиться об этом, — невыигрышная стратегия.

Так что вы можете попробовать ещё раз в версии 6.18. РАНЬШЕ, в том окне слияния. И без мусора.

>>> Подробности

★★★★

Проверено: hobbit ()
Последнее исправление: maxcom (всего исправлений: 3)
Ответ на: комментарий от LamerOk

Это всё подготовка к печати, просто смотришь только на функции example::MakeFromHalfs::add_low_half, вся суть в них.

Есть но лениво.

zurg
()
Ответ на: комментарий от zurg

Это всё подготовка к печати, просто смотришь только на функции

Да, всё, увидел, спасибо!

LamerOk ★★★★★
()
Ответ на: комментарий от ergo

По себе и коллегам знаю. Ответишь вежливо - будути повторять и второй, и пятый, и десятый раз. А вот ответ в стиле Торвальдса запоминается сразу. Вы думаете, он просто эмоционально неуравновешенный? Нет, этот стиль общения выработан десятилетиями практического опыта.

Gentooshnik ★★★★★
()

Интересно, как долго сообщество будет терпеть этого старого шизика? Возможно пора уже выкинуть его.

LunarStar
()

Это make_u32_from_two_u16() дико воняет тухлой вендузятиной. Во всех смыслах - такое же длиннющее название, такой же идиотский подход, такое же бесполезное как MAKELPARAM(l,h)/MAKEWPARAM(l,h), если кто понимает о чём я. Так что правильно Линус нахер послал.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от EXL

Хорошо бы дропнуть поддержку BE в новых релизах Linux, ибо практически все рынки – Embedded, Automotive, Desktop, Data/Servers, Mobile – сидят на давным-давно на LE.

Мейнфреймы IBM System Z (s390x) всё ещё живы и там big endian. Даже в сравнительно небольших проектах выпускают под них бинарники: https://github.com/rui314/mold/releases.

X512 ★★★★★
()
Ответ на: комментарий от Aceler

Обычный рабочий процесс

Учитывая Торвальдса, я вообще не понимаю, почему у него до сих пор нет хука, который отвергал бы пул-реквесты, присланные в неположенное время.

atrus ★★★★★
()
Ответ на: комментарий от MoldAndLimeHoney

Вообще, я, как далекий от ядра человек, всегда думал, что до него доходит уже идеальный код, а весь треш отсекается мейнтейнерами соответствующих подсистем.

Так ему мейнтейнеры треш и прислали вроде. А он ответил как раз о том, что они должны были такого не допустить.

firkax ★★★★★
()
Ответ на: комментарий от Reset

Да лишь бы не под себя...

А так-то его повадки давно не новость, да.

Somebody ★★★
()
Последнее исправление: Somebody (всего исправлений: 2)

Форк ядpа (на Rust, разумеется ;P) уже доступен для скачивания? ;)

Somebody ★★★
()

Что то наш финский фашист уже кукухой едет, кажется.

Romanych
()

Это мусор, и он пришёл слишком поздно

Это то, что мне никто никогда не должен присылать

Включил Трампа)

x-signal ★★
()
Ответ на: комментарий от pfg

Зачем нам вообще лидер? Что за дикое желание быть ведомым за кем-то «facepalm».

Но Линус в последнее время всё хуже и хуже. Даже его выходки и решения показывает его великовозрастную природу. Старым нужно давать отдыхать, а не позволять им быть у руля.

LunarStar
()
Ответ на: комментарий от hatred

Да, вот тут забыл про Network Byte Order, точно.

А кстати почему так сложилось исторически, что сеть и TCP/IP всякие в BE и все на IBM PC жонглировали htole/betoh? Это ведь лишние такты слабых тогда процессоров.

EXL ★★★★★
()
Ответ на: комментарий от EXL

А кстати почему так сложилось исторически, что сеть и TCP/IP всякие в BE и все на IBM PC жонглировали htole/betoh? Это ведь лишние такты слабых тогда процессоров.

Я никогда не мог найти точного ответа на этот вопрос. Из субъективного: при отладке внутри потока удобнее анализировать глазами, ты сразу видишь последовательность в байтах так же, как и запись в коде.

Плюс BE отражает «естественную» запись:

0xDEADBEEF

в BE будет:

DE AD BE EF 

а в LE:

EF BE AD DE

Ну или может IBM/360 использовались для первых сетей)

Ну и таки помимо сетей можно тот же PNG, JPEG (заголовки) взять. И ещё пачку протоколов. Тот же китайский JT808 для GNSS трекеров.

hatred ★★★
()
Последнее исправление: hatred (всего исправлений: 1)
Ответ на: комментарий от EXL

Да, там чистый big endian. Наверное вы путаете с IBM Power, у которого и правда есть поддержка little endian.

X512 ★★★★★
()
Ответ на: комментарий от EXL

ARPANET появился до Intel и тем более IBM PC, для 16 битных значений на тех компьютерах (Honeywell, PDP, SDS) использовался Big Endian. Но вообще на Honeywell и PDP был Middle Endian, в 16 битных значениях байты BE, а сами 16 битные значения в 32 битах LE.

Ну и на такты это наверное не особо влияло, xchg al, ah быстро выполняется (обычный swap), а полей не так уж и много.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 4)
Ответ на: комментарий от Friearch

Ему бы к психиатру/психологу походить. Ненормальная реакция (как всегда) на обычные вещи.

Легко вывезти мальчика из Чухони, но невозможно вывезти Чухонь из мальчика…

BydymTydym ★★
()
Ответ на: комментарий от LamerOk

с сиськами и ржаками

Заинтриговал!

Да я и сам после этого коммента решил к Гайке повнимательнее присмотреться…

BydymTydym ★★
()
Ответ на: комментарий от Hertz

Просто Линус это школьник и истеричка.

Слухи о том, что ядро Линукс на самом-то деле написано в секретной лаборатории группой старших научных сотрудников получают всё больше и больше подтверждений. Очевидно же, базарная модель разработки, да еще во главе с таким, с позволения сказать, лидером, просто не в состоянии обеспечить наблюдаемый результат. Линус - просто прикрытие для инициативных ученых, этих наших неизвестных гигантов мысли, титанов духа…

BydymTydym ★★
()

Дык. А кто будет его спрашивать?

sparkie ★★★★★
()
Ответ на: комментарий от EXL

и все на IBM PC жонглировали htole/betoh? Это ведь лишние такты слабых тогда процессоров

Да никто и не жонглировал. Насколько мне помнится, сеть не сразу стала популярной игрушкой на PC и прочих маломощных аналогах. А вот сделать выбор кристалла памяти по значению идущего первым старшего байта адреса - такое могло быть, правда на восьмибитных устройствах, на 8086 адрес сразу целиком на шину выставлялся.

BydymTydym ★★
()
Ответ на: комментарий от EXL

Возможно tcp/IP изобрели на компе с BE. Там это был естественный порядок.

Psilocybe ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.