NetBSD/sys/kern
thorpej 26a25a87b2 Optimization of soqinsque() and soqremque():
Keep queue of pending sockets in a double linked list.  Previously,
a singly linked list was used, giving O(N) insertion/deletion times,
and was a major time consumer for sockets with large pending queues.
The double linked list give O(C) insertion/deletion times with only
a small cost in complexity.

Since a socket can be on, at most, one queue at a time, both so_q and
so_q0 can safely be used as (forward and backward, respectively) queue
pointers.

Submitted my Matt Thomas <matt@3am-software.com>, a long time ago.
(Geez, I've been running with this patch for _months_, and had completely
forgotten about it!)
1996-11-10 05:58:37 +00:00
..
Make.tags.inc from 4.4-Lite. probably don't work yet. 1994-12-03 07:42:51 +00:00
Makefile Do not build vnode_if.[ch] for each kernel. Build them once, like the 1996-02-29 20:54:58 +00:00
exec_aout.c fix some typos and clean up some comments. 1996-09-26 23:34:46 +00:00
exec_conf.c allow a.out executable support to be optional (conditioned on EXEC_AOUT), 1996-10-02 05:29:29 +00:00
exec_ecoff.c clean up a comment (in code derived from the a.out code, where i cleaned 1996-09-27 03:38:27 +00:00
exec_elf32.c deal more sanely with ELF binaries with only a single program header 1996-10-13 22:54:52 +00:00
exec_elf64.c add support and reorganize for 64-bit ELF, included by EXEC_ELF64 1996-09-26 20:51:03 +00:00
exec_elf_common.c don't include <machine/exec.h> explicitly. No other changes needed, since 1996-10-07 21:43:02 +00:00
exec_script.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
exec_subr.c exec vnode locking protocol changes: in a nutshell, don't keep vnodes 1996-09-30 23:18:43 +00:00
init_main.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
init_sysent.c renamed sys_getlogin to sys___getlogin. required by libc namespace conventions 1996-09-19 04:52:12 +00:00
kern_acct.c First pass at prototyping 1996-02-04 02:15:01 +00:00
kern_clock.c Fix unused variable warning for an "int i" left over from the old disk 1996-07-24 16:13:04 +00:00
kern_descrip.c Eliminate kern_conf.h 1996-03-30 22:24:38 +00:00
kern_exec.c exec vnode locking protocol changes: in a nutshell, don't keep vnodes 1996-09-30 23:18:43 +00:00
kern_exit.c removed #ifdef tahoe 1996-10-17 16:31:54 +00:00
kern_fork.c Use PHOLD() and PRELE() rather than frobbing p_holdcnt directly. 1996-10-09 00:04:39 +00:00
kern_ktrace.c More proto fixes 1996-02-09 18:59:18 +00:00
kern_lkm.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
kern_malloc.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
kern_ntptime.c - Make things compile cleanly after the NTP additions. 1996-03-07 14:31:16 +00:00
kern_physio.c Check user access rights only if `uio_segflg' says it's a user space buffer. 1996-06-13 22:30:18 +00:00
kern_proc.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
kern_prot.c renamed sys_getlogin to sys___getlogin. required by libc namespace conventions 1996-09-19 04:52:12 +00:00
kern_resource.c * In dosetrlimit ensure that rlim_cur and rlim_max are >0. Otherwise 1996-10-23 07:19:38 +00:00
kern_sig.c make coredump() use more sensible error returns (even though they're 1996-10-23 23:13:19 +00:00
kern_subr.c fix uiomove's first argument and remove unnecessary casts 1996-10-13 02:27:52 +00:00
kern_synch.c Fix an inconsistency that came in with Lite: setrq() was renamed to 1996-11-06 20:19:19 +00:00
kern_sysctl.c Add compile-time and run-time control over automatic niceing 1996-07-17 21:54:04 +00:00
kern_time.c replace a construction in sys_setitimer() that was too tricky for its 1996-10-24 04:35:33 +00:00
kern_xxx.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
makesyscalls.sh support nested #if/#else/#endif sets, to allow ULTRIX compat code to handle 1996-03-15 01:25:12 +00:00
subr_autoconf.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
subr_disk.c removed #ifdef tahoe 1996-10-17 16:31:54 +00:00
subr_extent.c Several changes: 1996-10-17 08:27:35 +00:00
subr_log.c Implement poll(2). 1996-09-07 12:40:22 +00:00
subr_prf.c Minor nit in my change regarding const and non-ansi code... 1996-10-27 21:50:33 +00:00
subr_prof.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
subr_rmap.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
subr_xxx.c First pass at prototyping 1996-02-04 02:15:01 +00:00
sys_generic.c Use INFTIM, not -1. 1996-09-07 21:47:23 +00:00
sys_process.c fix obscure problem involving ptrace of init 1996-05-15 06:17:47 +00:00
sys_socket.c Implement poll(2). 1996-09-07 12:40:22 +00:00
syscalls.c renamed sys_getlogin to sys___getlogin. required by libc namespace conventions 1996-09-19 04:52:12 +00:00
syscalls.conf Change reboot(2) to take two arguments: bootopt like normal and also 1996-08-09 10:30:23 +00:00
syscalls.master renamed sys_getlogin to sys___getlogin. required by libc namespace conventions 1996-09-19 04:52:12 +00:00
sysv_ipc.c #include <sys/vnode.h>, for prototypes. 1995-06-03 05:53:28 +00:00
sysv_msg.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
sysv_sem.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
sysv_shm.c Calling shmdt(2) before calling shmat(2) would crash the system because 1996-09-01 22:53:06 +00:00
tty.c don't thow away char_type's 'const'ness via a cast when passing it to scanc(). 1996-10-25 22:11:39 +00:00
tty_conf.c Add line discipline code, initialization, and config support for MosquitoNet's 1996-05-19 17:17:50 +00:00
tty_pty.c Implement poll(2). 1996-09-07 12:40:22 +00:00
tty_subr.c remove duplicate prototypes from tty_subr.c (ndqb, putc, b_to_q), and 1996-10-25 21:20:29 +00:00
tty_tb.c First pass at prototyping 1996-02-04 02:15:01 +00:00
tty_tty.c Implement poll(2). 1996-09-07 12:40:22 +00:00
uipc_domain.c formatting fix only 1996-08-14 05:43:35 +00:00
uipc_mbuf.c if kmem_malloc() fails while trying to allocate an mbuf cluster, try 1996-06-13 17:02:23 +00:00
uipc_proto.c uipc_proto.c: No need for the forward decls anymore; everything is prototyped. 1996-02-13 21:10:43 +00:00
uipc_socket.c This fixes a nasty little bug where traceroute (and other raw-ip sending 1996-08-14 05:53:18 +00:00
uipc_socket2.c Optimization of soqinsque() and soqremque(): 1996-11-10 05:58:37 +00:00
uipc_syscalls.c avoid unnecessary checks of m_get/MGET/etc.'s return values. When 1996-06-14 22:21:12 +00:00
uipc_usrreq.c Oops. Add missing label. 1996-05-23 17:07:03 +00:00
vfs_bio.c curproc was being used directly for ru_{in,ou}block counting. Instead 1996-10-15 23:06:27 +00:00
vfs_cache.c First pass at prototyping 1996-02-04 02:17:43 +00:00
vfs_cluster.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
vfs_conf.c ffs -> ufs 1995-11-11 22:00:15 +00:00
vfs_init.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
vfs_lockf.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
vfs_lookup.c make the namei struct members ni_dirp and ni_next, and the componentname 1996-10-25 23:13:58 +00:00
vfs_subr.c backout previous kprintf change 1996-10-13 02:32:29 +00:00
vfs_syscalls.c permit MNT_NOCOREDUMP as a generic mount flag. 1996-10-23 23:07:08 +00:00
vfs_vnops.c Implement poll(2). 1996-09-07 12:40:22 +00:00
vnode_if.c Regen. 1996-09-07 12:56:49 +00:00
vnode_if.sh Do not build vnode_if.[ch] for each kernel. Build them once, like the 1996-02-29 20:54:58 +00:00
vnode_if.src Implement poll(2). 1996-09-07 12:40:22 +00:00