Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Dec 2007 06:21:20 +0000 (UTC)
From:      Jeff Roberson <jeff@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/kern kern_event.c kern_thread.c sys_generic.c sys_pipe.c uipc_sockbuf.c src/sys/netncp ncp_rq.c ncp_sock.c ncp_sock.h src/sys/netsmb smb_trantcp.c src/sys/sys proc.h selinfo.h socketvar.h systm.h
Message-ID:  <200712160621.lBG6LLph050771@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jeff        2007-12-16 06:21:20 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             kern_event.c kern_thread.c sys_generic.c 
                         sys_pipe.c uipc_sockbuf.c 
    sys/netncp           ncp_rq.c ncp_sock.c ncp_sock.h 
    sys/netsmb           smb_trantcp.c 
    sys/sys              proc.h selinfo.h socketvar.h systm.h 
  Log:
  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
  
  Revision  Changes    Path
  1.114     +6 -3      src/sys/kern/kern_event.c
  1.264     +2 -0      src/sys/kern/kern_thread.c
  1.160     +414 -168  src/sys/kern/sys_generic.c
  1.194     +6 -3      src/sys/kern/sys_pipe.c
  1.173     +2 -1      src/sys/kern/uipc_sockbuf.c
  1.16      +9 -3      src/sys/netncp/ncp_rq.c
  1.20      +0 -105    src/sys/netncp/ncp_sock.c
  1.7       +0 -3      src/sys/netncp/ncp_sock.h
  1.27      +1 -79     src/sys/netsmb/smb_trantcp.c
  1.498     +2 -3      src/sys/sys/proc.h
  1.19      +8 -8      src/sys/sys/selinfo.h
  1.159     +2 -0      src/sys/sys/socketvar.h
  1.263     +0 -4      src/sys/sys/systm.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200712160621.lBG6LLph050771>