d991fcb3b6
- 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. |
||
---|---|---|
.. | ||
files.svr4 | ||
Makefile | ||
svr4_acl.h | ||
svr4_dirent.h | ||
svr4_errno.c | ||
svr4_errno.h | ||
svr4_exec_elf32.c | ||
svr4_exec_elf64.c | ||
svr4_exec.c | ||
svr4_exec.h | ||
svr4_fcntl.c | ||
svr4_fcntl.h | ||
svr4_filio.c | ||
svr4_filio.h | ||
svr4_fuser.h | ||
svr4_hrt.h | ||
svr4_ioctl.c | ||
svr4_ioctl.h | ||
svr4_ipc.c | ||
svr4_ipc.h | ||
svr4_lwp.c | ||
svr4_lwp.h | ||
svr4_misc.c | ||
svr4_mman.h | ||
svr4_mod.c | ||
svr4_net.c | ||
svr4_resource.c | ||
svr4_resource.h | ||
svr4_schedctl.c | ||
svr4_schedctl.h | ||
svr4_siginfo.h | ||
svr4_signal.c | ||
svr4_signal.h | ||
svr4_signo.c | ||
svr4_socket.c | ||
svr4_socket.h | ||
svr4_sockio.c | ||
svr4_sockio.h | ||
svr4_sockmod.h | ||
svr4_stat.c | ||
svr4_stat.h | ||
svr4_statvfs.h | ||
svr4_stream.c | ||
svr4_stropts.h | ||
svr4_syscall.h | ||
svr4_syscallargs.h | ||
svr4_syscalls.c | ||
svr4_sysconfig.h | ||
svr4_sysent.c | ||
svr4_systeminfo.h | ||
svr4_termios.c | ||
svr4_termios.h | ||
svr4_time.h | ||
svr4_timod.h | ||
svr4_ttold.c | ||
svr4_ttold.h | ||
svr4_types.h | ||
svr4_ucontext.h | ||
svr4_ulimit.h | ||
svr4_ustat.h | ||
svr4_util.h | ||
svr4_utsname.h | ||
svr4_wait.h | ||
syscalls.conf | ||
syscalls.master |