It's not really a question whether to save registers during system calls
but rather the amount of TLB flushing and restoring at virtual address
switch. If instead of the whole TLB only a few entries are changed, a
lot of performance could be won since changing an individual entry in
the TLB is a lot cheaper than flushing and reloading the TLB.
This method however requires small objects and Linux doesn't know about
small objects since the objects can assume whole virtual address space.
An alternative operating system model that favours the small address
space is a pure capabilities based one. Note that since faster address
space switching means that the border of authority is becoming cheaper
to cross, it doesn't really matter that much anymore how often we cross
the border. Such a change would result in small system objects that
could provide a virtually arbitrarily fine-grained control while still
gaining us some performance.
Andrej
-- Andrej Presern, andrejp@luz.fe.uni-lj.si
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu