Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys



Module Name:    src
Committed By:   ad
Date:           Fri Mar 21 21:53:35 UTC 2008

Modified Files:
        src/sys/kern: kern_descrip.c kern_event.c
        src/sys/sys: event.h eventvar.h file.h filedesc.h
Added Files:
        src/sys/kern: sys_descrip.c

Log Message:
File descriptor changes, discussed on tech-kern:

- Redo reference counting to be sane.  LWPs accessing files take a short
  term reference on the local file descriptor.  This is the most common
  case.  While a file is in a process descriptor table, a reference is
  held to the file.  The file reference count only changes during control
  operations like open() or close().  Code that comes at files from an
  unusual direction (i.e. foreign to the process) like procfs or sysctl
  takes a reference on the file (f_count), and not on a descriptor.

- Remove knowledge of reference counting and locking from most code that
  deals with files.

- Make the usual case of file descriptor lookup lockless.

- Make kqueue MP and MT safe. PR kern/38098, PR kern/38137.

- Fix numerous file handling bugs, and bugs in the descriptor code that
  affected multithreaded processes.

- Split descriptor system calls out into sys_descrip.c.

- A few stylistic changes: KNF, remove unused casts now that caddr_t is
  gone. Replace dumb gotos with loop control in a few places.

- Don't do redundant pointer passing (struct proc, lwp, filedesc *) unless
  the routine is likely to be inlined.  Most of the time it's about the
  current process.


To generate a diff of this commit:
cvs rdiff -r1.172 -r1.173 src/sys/kern/kern_descrip.c
cvs rdiff -r1.48 -r1.49 src/sys/kern/kern_event.c
cvs rdiff -r0 -r1.1 src/sys/kern/sys_descrip.c
cvs rdiff -r1.19 -r1.20 src/sys/sys/event.h
cvs rdiff -r1.7 -r1.8 src/sys/sys/eventvar.h
cvs rdiff -r1.63 -r1.64 src/sys/sys/file.h
cvs rdiff -r1.45 -r1.46 src/sys/sys/filedesc.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



Home | Main Index | Thread Index | Old Index