On Wed, 19 Mar 2003, Austin wrote:

> New policy: it's okay to enable MMX instructions for multimedia
> applications that are not in main, but a notice must be added to the
> package description.

No. The policy remains the same as usual: any package (main, contribs)
shall run on any Pentium or newer processor. However, the following was
added for 9.1+:

Processor features are passed in the AT_HWCAP entry of auxiliary vector
for ELF programs. CPU capabilities on IA-32 are for example "mmx", "sse",
"sse2". Glibc loader has a neat feature of looking for optimized libraries
in */lib/*/<hwcap>. That is, in addition to looking for optimized
libraries for i586 or i686, it can also look for libraries using specific
CPU capabilities, based on what the kernel tells through the AT_HWCAP
entry.

The goal is to provide target-optimized libraries only for critical
packages. Remember the 90-10 rule, aka 90% of the time is spent in 10% of
the code. Applications are CPU intensive programs (ciphering et al.). Of
course, libraries that may benefit most are those hand-tuned for such
features in assembly code. In other words, gcc will perform a poor job at
doing that itself since, as of today, it still can't auto-vectorize code
for example.

Conditions: maintainers know where the bottle-neck is and may enable this
optimization on a per package basis. This has to be proven effective, and
procedure to reproduce the results must be known. Also, the gain obtained
shall exceed 15%. Well, the latter is an arbitrary value greater than 5%. 
;-)

> As far as I know, ffmpeg has always has MMX enabled and nobody has complained 
> yet.

It's not a matter of complaining or not, it's a matter of minimal support.  
Mandrake Linux is supposed to run on any i586 or newer processor. Period.

Bye,
Gwenole


Reply via email to