Comments 23
1. Верно ли что если я хочу использовать в следующей версии ядра эти инструкции то мне надо просто раскомментировать их и всё? Или там может быть слишком сильно поменялась структура кода, и не будучи знакомым с кодом ядра не получится?
2. Есть ли положительные черты от этого удаления? Я слышал что с каждой следующей версией ядро разбухает, а производительность с каждым релизом стабильно просаживается на доли процента. Но неужели удаление этих строчек может принести хотя бы +0.000001% производительности?
Там вроде удаляют реализации memcpy и аналоги ускоренные с помощью 3dnow внутри ядра. Я так понял инструкции в userspace продолжат работать.
В коммите есть описание проблемы что не захотели фиксить https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=c6dbd3e5e69cf3ca47a3864115d4cbdd44619243
Есть разница между "dropping of the AMD 3DNow! code within the kernel." и "прекратилась поддержка SIMD-набора инструкций 3DNow! для процессоров AMD", так что спасибо переводчику
1.Скорее нет - удалили код, и опцию конфига (X86_USE_3DNOW) которая позваляла этот код компилировать и делать частью ядра. Хотите на новом ядре этот код? думаю прийдется делать backport .
2. быстрее быть может и нет , но сборка и поддержка фичи которая нужна 0.5% пользователей это боль для остальных 99.5% , IMHO
Ну судя по тому что удалили всего 500 строк(это для ассемблера действительно мало), ядро не особо использовало их для ускорения своей работы.
Про положительные черты — я думаю код работы с 3DNow! был написан ~20 лет назад, и сейчас его просто некому поддерживать, из-за отсутствия у разработчиков ядра советующих процессоров. Да — на процессорах с 3DNow! — Linux Kernel станет работать медленнее, НО надо быть реалистом — он там уже невероятно медленно работает(если еще работает), и в действительности адекватно его там использовать не представляется возможным.
Всё же не ассемблер там, но всё равно мало
А зачем файлопомойке 3DNow?
У Athlon II уже есть SSE, SSE2, SSE3 и SSE4a. Которые годятся для всех задач, решаемых 3DNow!, и ядро Линукса их использует. Поэтому на скорости его работы удаление из него инструкций 3DNow! не должно бы сказаться.
Сказаться может на процессорах, в которых ещё не появилось AMD64 - все процессоры с AMD64 по определению поддерживают SSE и SSE2, а де-факто практически все - и SSE3.
В общем, где-то с 2003 года и K8 можно практически не беспокоиться. Ваш Athlon II X4 635, для справки, K10 BL-C2 2010 года.
Давно пора. Если уж кто-то использует старые процессоры с поддержкой этих инструкций, то вряд ли ему требуется самое свежее ядро.
Любопытно, на скорости выполнения 3DNow! кода внутри виртуальных машин это как-то скажется?
Печалька. Теперь я потеряю примерно 0.1% производительности на своем AMD Geode. Или не буду обновлять ядро.
у вас geode без поддержки sse?
cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 5
model : 10
model name : Geode(TM) Integrated Processor by AMD PCS
stepping : 2
cpu MHz : 499.882
cache size : 128 KB
fdiv_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu de pse tsc msr cx8 sep pge cmov clflush mmx mmxext 3dnowext 3dnow eagerfpu 3dnowprefetch vmmcall
bugs : sysret_ss_attrs
bogomips : 999.76
clflush size : 32
cache_alignment : 32
address sizes : 32 bits physical, 32 bits virtual
power management:
какого года этот процессор?
у вас есть как минимум 5 вариантов действий:
- не обновлять ядро;
- обновить ядро и смириться с минорной потерей производительности;
- откатить патч, удаляющий поддержку 3dnow!;
- не использовать linux на этой железке;
- отнести железку на помойку )
Это старый промышленный одноплатник примерно 2006 года. Используется в качестве домашнего микросервера.
спецификация
Обновлю ядро до последней версии до патча и так и оставлю, пока железка не умрет или я ее не поменяю. Уже давно присматриваюсь к ARM одноплатникам.
Из ядра Linux уберут инструкции 3DNow! 23-летней давности