Pull to refresh

Comments 23

Ни разу не являюсь владельцем компьютера с таким процессором, но чисто ради праздного любопытства интересны 2 вещи:
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", так что спасибо переводчику

Там вроде удаляют реализации memcpy и аналоги ускоренные с помощью 3dnow внутри ядра.

Ну если так, то ладно. Современным процессам на эти древние "ускорения" уже десяток лет пофиг с высокой вышки. Главное — чтобы старые программы не перестали запускаться.

1.Скорее нет - удалили код, и опцию конфига (X86_USE_3DNOW) которая позваляла этот код компилировать и делать частью ядра. Хотите на новом ядре этот код? думаю прийдется делать backport .

2. быстрее быть может и нет , но сборка и поддержка фичи которая нужна 0.5% пользователей это боль для остальных 99.5% , IMHO

Ну судя по тому что удалили всего 500 строк(это для ассемблера действительно мало), ядро не особо использовало их для ускорения своей работы.
Про положительные черты — я думаю код работы с 3DNow! был написан ~20 лет назад, и сейчас его просто некому поддерживать, из-за отсутствия у разработчиков ядра советующих процессоров. Да — на процессорах с 3DNow! — Linux Kernel станет работать медленнее, НО надо быть реалистом — он там уже невероятно медленно работает(если еще работает), и в действительности адекватно его там использовать не представляется возможным.

Всё же не ассемблер там, но всё равно мало

UFO just landed and posted this here

А зачем файлопомойке 3DNow?

У Athlon II уже есть SSE, SSE2, SSE3 и SSE4a. Которые годятся для всех задач, решаемых 3DNow!, и ядро Линукса их использует. Поэтому на скорости его работы удаление из него инструкций 3DNow! не должно бы сказаться.

Сказаться может на процессорах, в которых ещё не появилось AMD64 - все процессоры с AMD64 по определению поддерживают SSE и SSE2, а де-факто практически все - и SSE3.

В общем, где-то с 2003 года и K8 можно практически не беспокоиться. Ваш Athlon II X4 635, для справки, K10 BL-C2 2010 года.

UFO just landed and posted this here
UFO just landed and posted this here
Вряд ли вы заметите хоть какие-то изменения. 3DNow! потерял актуальность лет 20 назад, и вместе с MMX был заменён на SSE. AMD удалила поддержку 3DNow! из своих процессоров 10 лет назад, Intel никогда не поддерживала это расширение.

Давно пора. Если уж кто-то использует старые процессоры с поддержкой этих инструкций, то вряд ли ему требуется самое свежее ядро.

Так даже и свежее ядро продолжит работать. Просто будет работать чуть* медленнее.

* скорее всего, это «чуть» будет заметно, разве что, в тестах

Да как сказать...

Иногда путь зависимостей бывает весьма ветвистый.

500 строк кода из 24 миллионов? С почином в деле решительного вырезания легаси ;). А Pentium-safe FDIV код уже удалили?
Любопытно, на скорости выполнения 3DNow! кода внутри виртуальных машин это как-то скажется?

Печалька. Теперь я потеряю примерно 0.1% производительности на своем AMD Geode. Или не буду обновлять ядро.

Владельцы процессоров VIA C3 кроме Nehemiah в схожей ситуации.

у вас 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 одноплатникам.

да и с патчем ядро не перестанет работать, просто производительность memcpy и ещё некоторых функций (в ядре, не в юзерспейсе) упадёт.
сомневаюсь, что вы это заметите.

Sign up to leave a comment.

Other news