Re: ABI change for device drivers using future AVX instruction set

From: Agner Fog
Date: Sat Jun 28 2008 - 04:06:40 EST


Arjan van de Ven wrote:
>the good news is that we review drivers before they get included and we do catch such things.

Are you saying that some group should have the monopoly of approving device drivers? That is exectly the policy that Microsoft has been so much criticized for. You can only control the drivers that are included in your own Linux distribution.

Nothing should prevent me from publishing my own driver for some special purpose (in fact, I am going to do so). The open source principle would allow anybody to make a different compiler for device drivers, possibly using a different programming language. Or making a function library for use in device drivers.

Thank you for the reference to DocBook/kernel-hacking. The title reads "Unreliable Guide To Hacking The Linux Kernel". This doesn't really look like the place to look for authoritative information. It warns against using floating point/MMX, but not XMM. You can't blame programmers for making faulty device drivers when there is no authoritative guideline to follow.

You don't seem to realize the importance of proper documentation. Do you want me to write in my manual: "There is no authoritative information on this, but the Linux Junta says so-and-so.."?

How can you expect people to regard Linux as a serious and reliable alternative to ..BEEP.. when there is no proper documentation?

It is a disgrace that the ABI consists of fractions stored in weird places and some of them still drafts, but at least there is consensus on which one to look in for authoritative information. There should be an authoritative document on what you can do and not do in a device driver, and the ABI would be the most natural place to put this information. It is important to tell people that they can save and restore an XMM register under certain conditions, but not a YMM register. You can't expect people to search through a huge mailing list archive for such information.


Note: Please Cc: me of answers
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/