freebsd-nq/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
smb_conn.c
smb_conn.h
smb_crypt.c
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
smb_iod.c Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
smb_rq.c
smb_rq.h
smb_smb.c
smb_subr.c
smb_subr.h
smb_tran.h
smb_trantcp.c Refactor select to reduce contention and hide internal implementation 2007-12-16 06:21:20 +00:00
smb_trantcp.h
smb_usr.c
smb.h