Xref: utzoo comp.unix.wizards:10664 comp.os.misc:485 Path: utzoo!attcan!uunet!peregrine!ccicpg!goshen From: goshen@ccicpg.UUCP (Shmuel Goshen) Newsgroups: comp.unix.wizards,comp.os.misc Subject: Reducing system calls overhead Message-ID: <21606@ccicpg.UUCP> Date: 24 Aug 88 18:42:25 GMT Organization: CCI (Commercial Products Division), Irvine CA Lines: 25 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