В списке рассылки ядра Linux обсуждается (https://lkml.org/lkml/2018/12/10/1145) вопрос удаления кода с реализацией субархитектуры x32 (https://sites.google.com/site/x32abi/), позволяющей использовать на 64-разрядных системах 32-разрядную модель адресации памяти. По мнению инициатора удаления технология x32 не оправдала себя и не нашла практического применения в современных промышленных дистрибутивах. Кроме того, в коде x32 используется достаточно спорный метод работы с системными вызовами, создающий риск
нарушения нормального функционирования после переработки реализаций системных вызовов. Линус Торвальдс сообщил (https://lkml.org/lkml/2018/12/10/1151), что он не против удаления x32, если не будут представлены аргументированные возражения или не будут заявлены системы, в которых x32 нашла своё применение. Линус также отметил, что, судя по всему, применение x32 ограничилось экстремальными тестами производительности, так как поддержка данной субархитектуры сопряжена с большим усложнением сопровождения дистрибутивов и окружения для разработки.
В своё время при тестировании x32, один из разработчиков Gentoo пришёл (https://www.opennet.ru/opennews/art.shtml?num=34188) к выводу, что выигрыш в производительности при переходе на x32 ABI не столь велик, как показывают синтетические тесты от создателей x32 ABI - заметный прогресс отмечается только при сравнении с устаревшей архитектурой x86, но при сравнении с актуальной архитектурой x86-64 выигрыш несущественный (тесты от создателей x32 показывали ускорение до 30% в сравнении с классическим x86_64 ABI, в ситуациях, связанных с интенсивной работой с указателями).
Напомним, что субархитектура x32 (https://sites.google.com/site/x32abi/) представляет собой гибридный x86_64 ABI, позволяющий использовать на 64-разрядных системах 32-разрядную модель адресации памяти (процессор работает в 64-разрядном режиме, но использует 32-разрядные указатели и арифметические операции). ABI X32 позволяет приложениям использовать все преимущества архитектуры x86_64, такие как дополнительные регистры и более быстрые инструкции, PIC ABI. В то же время ABI X32 даёт возможность работать с 32-разрядными указателями памяти, что позволяет экономить память, способствует более эффективному наполнению процессорного кэша и положительно сказывается на общей скорости исполнения кода. Ограничением ABI X32 является невозможность адресации из приложения более 4 Гб памяти. Поддержка X32 входит в состав ядра Linux начиная с выпуска 3.4 (https://www.opennet.ru/opennews/art.shtml?num=33888), сформированного в мае 2012 года.
URL: https://lwn.net/Articles/774734/rss
Новость: https://www.opennet.ru/opennews/art.shtml?num=49772