freebsd-dev/sys/netsmb
Jeff Roberson ace8398da0 Refactor select to reduce contention and hide internal implementation
details from consumers.

 - Track individual selecters on a per-descriptor basis such that there
   are no longer collisions and after sleeping for events only those
   descriptors which triggered events must be rescaned.
 - Protect the selinfo (per descriptor) structure with a mtx pool mutex.
   mtx pool mutexes were chosen to preserve api compatibility with
   existing code which does nothing but bzero() to setup selinfo
   structures.
 - Use a per-thread wait channel rather than a global wait channel.
 - Hide select implementation details in a seltd structure which is
   opaque to the rest of the kernel.
 - Provide a 'selsocket' interface for those kernel consumers who wish to
   select on a socket when they have no fd so they no longer have to
   be aware of select implementation details.

Tested by:	kris
Reviewed on:	arch
2007-12-16 06:21:20 +00:00
..
netbios.h Allow user to override default port numbers used by communication 2005-10-02 08:32:49 +00:00
smb_conn.c Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
smb_conn.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
smb_crypt.c Fix misalignment bugs caused by invalid type casts of pointers 2006-08-22 03:05:51 +00:00
smb_dev.c Fixing the mount_smbfs(8) hanging by utilising the destroy_dev_sched() KPI. 2007-07-10 09:23:10 +00:00
smb_dev.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
smb_iod.c Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
smb_rq.c Fix misalignment bugs caused by invalid type casts of pointers 2006-08-22 03:05:51 +00:00
smb_rq.h Fix misalignment bugs caused by invalid type casts of pointers 2006-08-22 03:05:51 +00:00
smb_smb.c Initialize some variables that GCC4.2 thinks might possibly be used without 2007-06-15 23:49:54 +00:00
smb_subr.c It seems to be safe to ignore 'file not locked' error 2006-11-05 06:31:08 +00:00
smb_subr.h Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
smb_tran.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
smb_trantcp.c Refactor select to reduce contention and hide internal implementation 2007-12-16 06:21:20 +00:00
smb_trantcp.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
smb_usr.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
smb.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00