Reducing system calls overhead

Shmuel Goshen goshen at ccicpg.UUCP
Thu Aug 25 04:42:25 AEST 1988


I have been looking recently at ways to reduce the system call overhead.
One approach would be to move *simple* system calls form the kernel out
to the user. This is quite limited since many kernel data structures
cannot be accessed from User Mode.

The second approach would be to introduce a simple and quick interface
for "light weight" system calls (like getpid(), umask() etc'), which 
perform simple tasks and never sleep.  This quick interface will run 
in kernel mode, thus enabling access to kernel data structures, but 
will not include operations like saving the context (setjmp), signal 
delivery and allowing rescheduling upon return from the call. 
The net effect is almost as having the system call run in user mode. 

I am looking for opinions on these approaches. My main concern is side 
effects caused by eliminating signal delivery and rescheduling until 
a "software forced exception" or a *heavy* system call is executed 
by the process. (Consider, for example, a program running getpid() 
calls in a loop).

-- 

Shmuel Goshen				(714) 951-8053	
Computer Consoles Inc.			(714) 458-7282
Irvine, CA.		  {allegra!hplabs!felix,seismo!rlgvax}!ccicpg!goshen



More information about the Comp.unix.wizards mailing list