LLL: asm version
Mike Prince
mprince@crl.com
Wed, 2 Nov 1994 18:25:21 -0800 (PST)
On Thu, 3 Nov 1994, Francois-Rene Rideau wrote:
[talking about fat binaries...]
> I'll stick to this philosophy. Multiple versions are useful; we must support
> them. But again, they are only needed for small routines where performance is
> foremost and optimizers are not enough. Such routines are rare, but may be
> added anytime by users as the system evolves;
I don't have the answers yet. But I have a gut feeling about kernel
based tool boxes (tool boxes that appear when the kernel is activated).
This is the only way our OS and code can be safe. By only allowing "fat"
binaries to be used by the kernel that spawned them.
In a distributed system it should not (I would argue cannot) be allowed
to move binary level code around; you have no idea what it does. The
only safe thing to do is move our LLL and have the kernel control the the
final compilation.
By saying the user may have to add it later makes me queasy. On a
persitent system it just doesn't seem right that someone can come along
and make the kernel chew binary, just who is this person? If the only
binary to come along is at the start from the kernel itself, we are
living in a much safer world.
Another reason to control this binary thing is the way in which I propose
to relocate tool boxes with agents inside. The final compiler puts sync
instructions in the binary code, that causes the agents, during context
switches to stop at points which can be matched on another machine with a
different architecture. The spacing of these sync instructions may vary
between systems; very close in real-time systems, or far apart in overall
speed critical systems. Additionally, the frequency of sync points would
be directly proportional to a buffer placed between the top of the stack
down. Only at sync points could execution stop when this buffer was
violated. Less sync points, the larger a buffer would have to be.
Don't get me wrong, the agents don't stop on sync points, they are just
maskable interrupt instructions. If there's no reason to stop, the agent
keeps chugging away.
Why do we have to organize? I'm having more fun just throwing ideas around!
Mike