NetBSD/sys/sys
ad d991fcb3b6 More changes to improve kern_descrip.c.
- Avoid atomics in more places.
- Remove the per-descriptor mutex, and just use filedesc_t::fd_lock.
  It was only being used to synchronize close, and in any case we needed
  to take fd_lock to free the descriptor slot.
- Optimize certain paths for the <NDFDFILE case.
- Sprinkle more comments and assertions.
- Cache more stuff in filedesc_t.
- Fix numerous minor bugs spotted along the way.
- Restructure how the open files array is maintained, for clarity and so
  that we can eliminate the membar_consumer() call in fd_getfile().  This is
  mostly syntactic sugar; the main functional change is that fd_nfiles now
  lives alongside the open file array.

Some measurements with libmicro:

- simple file syscalls are like close() are between 1 to 10% faster.
- some nice improvements, e.g. poll(1000) which is ~50% faster.
2009-05-24 21:41:25 +00:00
..
Makefile
acct.h
agpio.h
aio.h
ansi.h
ataio.h
atomic.h
audioio.h
bitops.h
blist.h
boot_flag.h
bootblock.h
bswap.h
buf.h
bufq.h
bufq_impl.h
bus.h
bus_proto.h
callback.h
callout.h
cctr.h
cdefs.h
cdefs_aout.h
cdefs_elf.h
cdio.h
chio.h
clockctl.h
condvar.h
conf.h
core.h
cpu.h
cpu_data.h
cpuio.h
debug.h
device.h
devmon.h
dir.h
dirent.h
dirhash.h
disk.h
disklabel.h
disklabel_acorn.h
disklabel_gpt.h
dkbad.h
dkio.h
dkstat.h
domain.h
drvctlio.h
dvdio.h
endian.h
envsys.h
errno.h
evcnt.h
event.h
eventvar.h
exec.h
exec_aout.h
exec_coff.h
exec_ecoff.h
exec_elf.h
exec_macho.h
exec_script.h
extattr.h
extent.h
fcntl.h
fd_set.h
fdio.h
featuretest.h
file.h
fileassoc.h
filedesc.h More changes to improve kern_descrip.c. 2009-05-24 21:41:25 +00:00
filio.h
float_ieee754.h
fstrans.h
fstypes.h
gcq.h
gennameih.awk
gmon.h
gpio.h
hash.h
idle.h
ieee754.h
intr.h
inttypes.h
ioccom.h
ioctl.h
ioctl_compat.h
iostat.h
ipc.h
joystick.h
kauth.h
kcore.h
kernel.h
kgdb.h
kmem.h
kobj.h
kobj_impl.h
kprintf.h
ksem.h
ksyms.h
kthread.h
ktrace.h
localedef.h
lock.h
lockdebug.h
lockf.h
lwp.h
lwpctl.h
malloc.h
mallocvar.h
mbuf.h
md4.h
md5.h
midiio.h
mman.h
module.h
mount.h
mqueue.h
msg.h
msgbuf.h
mtio.h
mutex.h
namei.h
namei.src
null.h
once.h
optstr.h
param.h
pax.h
pcq.h
percpu.h
percpu_types.h
pipe.h
pmc.h
pmf.h
poll.h
pool.h
power.h
proc.h
prot.h
protosw.h
pset.h
ptrace.h
ptree.h
pty.h
queue.h
radioio.h
ras.h
rb.h
reboot.h
resource.h
resourcevar.h
rmd160.h
rnd.h
rpst.h
rwlock.h
sa.h
satypes.h
savar.h
scanio.h
sched.h
scsiio.h
select.h
selinfo.h
sem.h
sha1.h
sha2.h
shm.h
siginfo.h
signal.h
signalvar.h
sigtypes.h
simplelock.h
sleepq.h
socket.h
socketvar.h
sockio.h
specificdata.h
spl.h
stat.h
statvfs.h
stdint.h
swap.h
syncobj.h
syscall.h
syscall_stats.h
syscallargs.h
syscallvar.h
sysctl.h
syslimits.h
syslog.h
systm.h
tape.h
termios.h
time.h
timeb.h
timepps.h
times.h
timetc.h
timevar.h
timex.h
tprintf.h
trace.h
tree.h
tty.h
ttychars.h
ttycom.h
ttydefaults.h
ttydev.h
types.h
ucontext.h
ucred.h
uidinfo.h
uio.h
un.h
unistd.h
unpcb.h
user.h
userconf.h
userret.h
utsname.h
uuid.h
vadvise.h
verified_exec.h
vfs_syscalls.h
videoio.h
vmem.h
vmmeter.h
vnode.h
vnode_if.h
wait.h
wapbl.h
wapbl_replay.h
wdog.h
workqueue.h
xattr.h
xcall.h