>>> http://svn.freebsd.org/viewvc/base/release/8.2.0/sys/amd64/a...
>>> да, но я в упор не вижу в каких именно функциях(алгоритмах) используются
>>> сами регистры XMM при использовании SSE инструкций...
>> А это и не дело ядра, это дело userland'а, и система это
>> не регулирует.
> Вы не правы.... Система (ядро) регулирует ВСЕ вычислительные ресурсы...Извините, из этого никак не следует, что ядро регулирует, какой именно код будет работать в userland. Как-то ограничивать ещё может, но не "регулировать".
> Одно из дел ядра (от которого зависит удобство его использования) - это
> БЫСТРОЕ распределение вычислительных ресурсов системы....
> Так вот используя специализированные конвееры CPU, в некоторых случаях это очень даже
> помагает уменьшить количество драгоценных тактов процессора на определенные операции,
> и даже с учетом переключиний всяких там контекстов.... (об /usr/src/sys/crypto/aesni уже
> отмечалось )
Ещё раз: при чём тут ядро и данная поддержка? Если Вы не заметили суть добавления в 8.2, это всего лишь сохранение и восстановление регистров XMM при переключении задач.
А эти абстрактные растекания по древу не имеют к сути вопроса никакого отношения.
AESNI - да, особый случай. В общем же случае ядро старается не использовать FPU, SSE и прочее, кроме таких случаев, потому что дорого.
> Э... тоже не совсем так...
> У разных архитектур по разному осуществляется инициализация таких конвееров, если не прав
> - исправьте...
> На примере FreeBSD для i386 есть функция sse2_pagezero (/usr/src/sys/i386/i386/support.s),
> которая выполняется как pagezero, если CPU поддерживает SSE2, а для amd64
> не вижу такого аналога - просто используется pagezero в /usr/src/sys/amd64/amd64/support.S
> - либо не оптимизировали, либо эта функция не будет выгоднее
> по тактам для amd64...это тоже останется для меня загадкой... либо может
> ответ быть совсем прост - некому это сделать, либо никто не
> хочет...
Напишите автору pagezero через SSE2, задайте вопрос в hackers@, arch@...