Re: Don't save registers during system calls

ralf@uni-koblenz.de
Mon, 20 Apr 1998 22:48:14 +0200


On Mon, Apr 20, 1998 at 12:59:48AM -0700, Richard Henderson wrote:

> OSF/1 defines a system call to operate just like a function call
> in terms of what registers it clobbers. We currently save all of
> them, but we need tecnically only save 6. Due to syscall restart
> issues it turns out we need to save about 8 or 9 more, but all in
> all we currently save 13 more registers than we need to.
>
> I'd once done some patches to implement this, and fix up other bits
> of uglyness, but I didn't get things quite right, in that I didn't
> really see much of a speed up. Linus suggested that the memory write
> pattern was now fragmented, and that the reads required to satisfy
> non-full cacheline writes was where my performance was leaking off.

If you're measuring syscall latencies using lmbench you have the special
case of almost 100% cache hits. I think the optimization is tricky to
measure due to this. Whatever, various time measurements on the Indy and
other considerations show that the syscall path as measured by lmbench does
have any primary cache misses.

Ralf

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu