[lkml]   [1996]   [Nov]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread

Ok, 2.1.7 is out there in ftp-land, and has the new clever exception handling
implementation done by Richard Henderson for both x86 and alpha (I think the
idea was originally Ingo Molnars, but I could be mistaken, and Richard
certainly took it to new heights of elegance). Anyway, the new stuff uses
some clever linker tricks to essentially do zero-cost exception handling
rather than having to waste precious instructions to update the per-task
exception structure. Very nifty indeed.

The interface is still exactly the same, only some low-level architecture-
specific implementation details changed. It's all so clever that it's scary.
People interested in low-level scary stuff should take a look at the
uaccess.h files for x86 or alpha, and be ready to spend some time just
figuring out what it all does ;)

Anyway, the new exceptions do have a down-side: the exception tables do not
currently get exported from kernel loadable modules. This is not something
fundamentally hard: it's just something that needs to be handled by the
insmod &co people, and which hasn't been done yet. Anybody who feels he can
be useful in making insmod talk to the kernel about the exception tables
(Björn? Jacques?), please contact Richard <> about this.

Note that the lack of exception data in modules does _not_ mean that modules
don't work. It only means that modules can't handle user space address
exceptions, and thus can't recover gracefully from EFAULT errors. As such you
can still load and use the modules (assuming you have the other 2.1.x fixes
for insmod module loading), but I'd suggest against it on any system with
untrusted users that you expect to do nasty things just for fun.

Apart from the new clever exceptions, the other changes in 2.1.7 are:
- baycom driver is a real network driver instead of a strange character
- soundmodem driver. You don't want to know what perversions people are
up to ;) (If you _do_ want to know, read the docs)
- various drivers which had boo-boo's with the new exception code fixed
up (ie ftape/md/cdrom/eql should work again)
- isdn silly problems should be fixed
- scc driver update
- tulip driver multicast lists
- aha1740 should work again (virtual/physical address probs on x86,
funnily it worked on alpha)
- quota unmount bug should be fixed in 2.1.x too

Anyway, I finally think the exception stuff is starting to be stable (apart
from the issues on module loading), and I think I'll try to start integrating
some of the other patches in the next few weeks. So expect to start seeing
ipv6/PPC/Sparc/m68k/ARM etc patches any week now (and my apologies to the
developers of those things for being slow to react - you're all in my queue
of things to handle, I've just been slow to get everything else cleared up).


 \ /
  Last update: 2005-03-22 13:37    [W:0.140 / U:0.504 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site